From 0994571895cc7c808e6f2996ae4f79b917356e27 Mon Sep 17 00:00:00 2001 From: csobier Date: Thu, 18 Feb 2016 13:15:28 -0500 Subject: [PATCH 01/18] clean-up portion of Named Maps doc-WIP --- docs/Map-API.md | 4 +- docs/MapConfig-NamedMaps-extension.md | 8 +-- docs/anonymous_maps.md | 6 +-- docs/general_concepts.md | 2 +- docs/named_maps.md | 71 ++++++++++++++------------- docs/quickstart.md | 10 ++-- docs/static_maps_api.md | 10 ++-- 7 files changed, 57 insertions(+), 54 deletions(-) diff --git a/docs/Map-API.md b/docs/Map-API.md index df411259..c137765f 100644 --- a/docs/Map-API.md +++ b/docs/Map-API.md @@ -4,10 +4,10 @@ The CartoDB Maps API allows you to generate maps based on data hosted in your Ca You can create two types of maps with the Maps API: -- **Anonymous maps** +- **Anonymous Maps** You can create maps using your CartoDB public data. Any client can change the read-only SQL and CartoCSS parameters that generate the map tiles. These maps can be created from a JavaScript application alone and no authenticated calls are needed. See [this CartoDB.js example](/cartodb-platform/cartodb-js/getting-started/). -- **Named maps** +- **Named Maps** There are also maps that have access to your private data. These maps require an owner to setup and modify any SQL and CartoCSS parameters and are not modifiable without new setup calls. ## Documentation diff --git a/docs/MapConfig-NamedMaps-extension.md b/docs/MapConfig-NamedMaps-extension.md index a6418174..2793faec 100644 --- a/docs/MapConfig-NamedMaps-extension.md +++ b/docs/MapConfig-NamedMaps-extension.md @@ -6,7 +6,7 @@ This specification describes an extension for # 2. Changes over specification -This extension introduces a new layer type so it's possible to use a named map by its name as a layer. +This extension introduces a new layer type so it's possible to use a Named Map by its name as a layer. ## 2.1 Named layers definition @@ -21,18 +21,18 @@ This extension introduces a new layer type so it's possible to use a named map b options: { // REQUIRED - // string, the name for the named map to use + // string, the name for the Named Map to use name: "world_borders", // OPTIONAL - // object, the replacement values for the named map's template placeholders + // object, the replacement values for the Named Map's template placeholders // See https://github.com/CartoDB/Windshaft-cartodb/blob/master/docs/Map-API.md#instantiate-1 for more details config: { "color": "#000" }, // OPTIONAL - // string array, the authorized tokens in case the named map has auth method set to `token` + // string array, the authorized tokens in case the Named Map has auth method set to `token` // See https://github.com/CartoDB/Windshaft-cartodb/blob/master/docs/Map-API.md#named-maps-1 for more details auth_tokens: [ "token1", diff --git a/docs/anonymous_maps.md b/docs/anonymous_maps.md index 02d35dc9..cdf6cad4 100644 --- a/docs/anonymous_maps.md +++ b/docs/anonymous_maps.md @@ -1,6 +1,6 @@ # Anonymous Maps -Anonymous maps allows you to instantiate a map given SQL and CartoCSS. It also allows you to add interaction capabilities using [UTF Grid.](https://github.com/mapbox/utfgrid-spec) +Anonymous Maps allows you to instantiate a map given SQL and CartoCSS. It also allows you to add interaction capabilities using [UTF Grid.](https://github.com/mapbox/utfgrid-spec) ## Instantiate @@ -161,7 +161,7 @@ GET /api/v1/map?callback=method Param | Description --- | --- -config | Encoded JSON with the params for creating named maps (the variables defined in the template). +config | Encoded JSON with the params for creating Named maps (the variables defined in the template). lmza | This attribute contains the same as config but LZMA compressed. It cannot be used at the same time as `config`. callback | JSON callback name. @@ -189,4 +189,4 @@ callback({ ## Remove -Anonymous maps cannot be removed by an API call. They will expire after about five minutes but sometimes longer. If an anonymous map expires and tiles are requested from it, an error will be raised. This could happen if a user leaves a map open and after time, returns to the map and attempts to interact with it in a way that requires new tiles (e.g. zoom). The client will need to go through the steps of creating the map again to fix the problem. +Anonymous Maps cannot be removed by an API call. They will expire after about five minutes but sometimes longer. If an Anonymous Map expires and tiles are requested from it, an error will be raised. This could happen if a user leaves a map open and after time, returns to the map and attempts to interact with it in a way that requires new tiles (e.g. zoom). The client will need to go through the steps of creating the map again to fix the problem. diff --git a/docs/general_concepts.md b/docs/general_concepts.md index 859c6df9..506bef87 100644 --- a/docs/general_concepts.md +++ b/docs/general_concepts.md @@ -4,7 +4,7 @@ The following concepts are the same for every endpoint in the API except when it ## Auth -By default, users do not have access to private tables in CartoDB. In order to instantiate a map from private table data an API Key is required. Additionally, to include some endpoints, an API Key must be included (e.g. creating a named map). +By default, users do not have access to private tables in CartoDB. In order to instantiate a map from private table data an API Key is required. Additionally, to include some endpoints, an API Key must be included (e.g. creating a Named Map). To execute an authorized request, `api_key=YOURAPIKEY` should be added to the request URL. The param can be also passed as POST param. Using HTTPS is mandatory when you are performing requests that include your `api_key`. diff --git a/docs/named_maps.md b/docs/named_maps.md index 0b68a408..6a68b73b 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -1,18 +1,20 @@ # Named Maps -Named maps are essentially the same as anonymous maps except the MapConfig is stored on the server, and the map is given a unique name. You can create named maps from private data, and users without an API Key can view your Named Map (while keeping your data private). The Named map workflow consists of making a call to your database, referencing a table, inserting your variables into the template where placeholders are defined, and creating custom queries. +Named Maps are essentially the same as Anonymous Maps except the MapConfig is stored on the server, and the map is given a unique name. You can create Named Maps from private data, and users without an API Key can view your Named Map (while keeping your data private). -The main two differences compared to anonymous maps are: +The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL. The response back from the API provides the name of your MapConfig as a template map; which you can then use to create your Named Map details, or fetch XYZ tiles directly for Named Maps. You can use also the MapConfig that you uploaded to create a map using [CartoDB.js](#use-cartodbjs-to-create-named-maps) for Named Maps. -- **auth layer** - This allows you to control who is able to see the map based on a token auth +The main differences, compared to Anonymous Maps, is that Named Maps include: + +- **auth token** + This allows you to control who is able to see the map based on an auth token, and create a secure Named Map with password-protection. - **templates** - Since the MapConfig is static it can contain some variables so the client can modify the map's appearance using those variables. + The MapConfig generated template map is static and contains placeholders, enabling you to modify your map's appearance by using variables. Templates maps are persistent with no preset expiration. They can only be created, or deleted, by a CartoDB user with a valid API KEY (See [auth argument](#arguments)). -Template maps are persistent with no preset expiration. They can only be created or deleted by a CartoDB user with a valid API_KEY (see auth section). + Uploading a MapConfig produces a template map for your Named Maps. Such as MapConfigs are uploaded to the server, "template".json files are uploaded to the server for Named Maps. -**Note:** There is a limit of 4,096 named maps allowed per account. If you need to create more Named maps, it is recommended to use templates. +**Note:** There is a limit of 4,096 Named Maps allowed per account. If you need to create more Named Maps, it is recommended to use template maps instead of uploading multiple [Named Map MapConfigs](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#named-map-layer-options). ## Create @@ -30,6 +32,8 @@ api_key | is required #### template.json +The response back from the API provides the name of your MapConfig as a template, enabling you to create the Named Map details by inserting your variables into the template where placeholders are defined, and create custom queries using SQL. The `name` argument defines how to name this "template_name".json. Note that there are some requirements for how to name a Named Map template. See the [`name`](#arguments) argument description for details. + ```javascript { "version": "0.0.1", @@ -84,16 +88,15 @@ api_key | is required Params | Description --- | --- -name | There can be at most _one_ template with the same name for any user. Valid names start with a letter or a number, and only contain letters, numbers, dashes (-) or underscores (_). +name | There can only be _one_ template with the same name for any user. Valid names start with a letter or a number, and only contain letters, numbers, dashes (-), or underscores (_). This is specific to the name of your Named Map [template.json](#templatejson). auth | --- | --- -|_ method | `"token"` or `"open"` (the default if no `"method"` is given). -|_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the named map. -placeholders | Variables not listed here are not substituted. Variables not provided at instantiation time trigger an error. A default is required for optional variables. Type specification is used for quoting, to avoid injections see template format section below. -layergroup | the layer list definition. This is the MapConfig explained in anonymous maps. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more info. - -view (optional) | extra keys to specify the compelling area for the map. It can be used to have a static preview of a named map without having to instantiate it. It is possible to specify it with `center` + `zoom` or with a bounding box `bbox`. Center+zoom takes precedence over bounding box. +|_ method | `"token"` or `"open"` (`"open"` is the default if no method is specified. Use `"token"` to password-protect your map). +|_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the Named Map. See this [example](http://docs.cartodb.com/faqs/manipulating-your-data/#how-to-create-a-password-protected-named-map) for how to create a password-protected map. +placeholders | Placeholders are variables that can be placed in your template.json file's SQL or CartoCSS. +layergroup | the layergroup configurations, as specified in the MapConfig. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more information. +view (optional) | extra keys to specify the view area for the map. It can be used to have a static preview of a Named Map without having to instantiate it. It is possible to specify it with `center` + `zoom` or with a bounding box `bbox`. Center+zoom takes precedence over bounding box. --- | --- |_ zoom | The zoom level to use @@ -109,9 +112,9 @@ view (optional) | extra keys to specify the compelling area for the map. It can |_ |_ east | UpperCorner longitude for the bounding box, in decimal degrees (aka most eastern) |_ |_ north | UpperCorner latitude for the bounding box, in decimal degrees (aka most northern) -### Template Format +### Placeholder Format -A templated `layergroup` allows the use of placeholders in the "cartocss" and "sql" elements of the "option" object in any "layer" of a `layergroup` configuration +Placeholders are variables that can be placed in your MapConfig, and template.json file's, SQL or CartoCSS options. Placeholders need to be defined with a `type` and a default value for MapConfigs. See details about defining a MapConfig `type` for [Layergoup configurations](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations). Valid placeholder names start with a letter and can only contain letters, numbers, or underscores. They have to be written between the `<%=` and `%>` strings in order to be replaced. @@ -121,7 +124,7 @@ Valid placeholder names start with a letter and can only contain letters, number <%= my_color %> ``` -The set of supported placeholders for a template will need to be explicitly defined with a specific type and default value for each. +The set of supported placeholders for a template need to be explicitly defined with a specific type, and default value, for each placeholder. ### Placeholder Types @@ -134,9 +137,9 @@ sql_ident | internal double-quotes will be sql-escaped number | can only contain numerical representation css_color | can only contain color names or hex-values -Placeholder default values will be used whenever new values are not provided as options at the time of creation on the client. They can also be used to test the template by creating a default version with new options provided. +Placeholder default values will be used whenever new values are not provided as options, at the time of creation on the client. They can also be used to test the template by creating a default version with new options provided. -When using templates, be very careful about your selections as they can give broad access to your data if they are defined losely. +When using templates, be very careful about your selections as they can give broad access to your data if they are defined loosely. #### Call @@ -157,7 +160,7 @@ curl -X POST \ ## Instantiate -Instantiating a map allows you to get the information needed to fetch tiles. That temporal map is an anonymous map. +Instantiating a map allows you to get the information needed to fetch tiles. That temporal map is an Anonymous Map. #### Definition @@ -179,15 +182,15 @@ auth_token | optional, but required when `"method"` is set to `"token"` } ``` -The fields you pass as `params.json` depend on the variables allowed by the named map. If there are variables missing it will raise an error (HTTP 400) +The fields you pass as `params.json` depend on the variables allowed by the Named Map. If there are variables missing it will raise an error (HTTP 400) -- **auth_token** *optional* if the named map needs auth +- **auth_token** *optional* if the Named Map needs password-protection ### Example You can initialize a template map by passing all of the required parameters in a POST to `/api/v1/map/named/:template_name`. -Valid credentials will be needed if required by the template. +Valid credentials will be needed, if required by the template. #### Call @@ -216,7 +219,7 @@ curl -X POST \ } ``` -You can then use the `layergroupid` for fetching tiles and grids as you would normally (see anonymous map section). However you'll need to show the `auth_token`, if required by the template. +You can then use the `layergroupid` for fetching tiles and grids as you would normally (see [Anonymous Maps](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/)). However, you will need to show the `auth_token`, if required by the template. ## Using JSONP @@ -233,7 +236,7 @@ GET /api/v1/map/named/:template_name/jsonp Params | Description --- | --- auth_token | optional, but required when `"method"` is set to `"token"` -config | Encoded JSON with the params for creating named maps (the variables defined in the template) +config | Encoded JSON with the params for creating Named Maps (the variables defined in the template) lmza | This attribute contains the same as config but LZMA compressed. It cannot be used at the same time than `config`. callback | JSON callback name @@ -290,9 +293,9 @@ api_key | is required Same as updating a map. -### Other Info +### Other Information -Updating a named map removes all the named map instances so they need to be initialized again. +Updating a Named Map removes all the Named Map instances, so they need to be initialized again. ### Example @@ -325,7 +328,7 @@ If a template with the same name does NOT exist, a 400 HTTP response is generate ## Delete -Delete the specified template map from the server and it disables any previously initialized versions of the map. +Deletes the specified template map from the server, and disables any previously initialized versions of the map. #### Definition @@ -425,7 +428,7 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named/:template_name?a ```javascript { - "template": {...} // see template.json above + "template": {...} // see [template.json](#templatejson) } ``` @@ -438,7 +441,7 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named/:template_name?a ``` ## Use CartoDB.js to Create Named Maps -Named maps can be used with CartoDB.js by specifying a named map in a layer source as follows. Named maps are treated almost the same as other layer source types in most other ways. +Named Maps can be used with CartoDB.js, by specifying a Named Map in a layer source as follows. Named Maps are treated almost the same as other layer source types. ```js var layerSource = { @@ -458,18 +461,18 @@ cartodb.createLayer('map_dom_id',layerSource) ``` -[CartoDB.js](http://docs.cartodb.com/cartodb-platform/cartodb-js/) has methods for accessing your named maps. +[CartoDB.js](http://docs.cartodb.com/cartodb-platform/cartodb-js/) has methods for accessing your Named Maps. 1. [layer.setParams()](http://docs.cartodb.com/cartodb-platform/cartodb-js/api-methods/#layersetparamskey-value) allows you to change the template variables (in the placeholders object) via JavaScript - **Note:** The CartoDB.js `layer.setParams()` function is not supported when using Named maps for Torque. + **Note:** The CartoDB.js `layer.setParams()` function is not supported when using Named Maps for Torque. 2. [layer.setAuthToken()](http://docs.cartodb.com/cartodb-platform/cartodb-js/api-methods/#layersetauthtokenauthtoken) allows you to set the auth tokens to create the layer ### Complete Examples of Named Maps created with CartoDB.js -- [Named map selectors with interaction](http://bl.ocks.org/ohasselblad/515a8af1f99d5e690484) +- [Named Map selectors with interaction](http://bl.ocks.org/ohasselblad/515a8af1f99d5e690484) -- [Named map with interactivity and config file used to create it](http://bl.ocks.org/ohasselblad/d1a45b8ff5e7bd90cd68) +- [Named Map with interactivity and config file used to create it](http://bl.ocks.org/ohasselblad/d1a45b8ff5e7bd90cd68) - [Toggling sublayers in a Named Map](http://bl.ocks.org/ohasselblad/c1a0f4913610eec53cd3) diff --git a/docs/quickstart.md b/docs/quickstart.md index 00f084df..057a74e4 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1,8 +1,8 @@ # Quickstart -## Anonymous maps +## Anonymous Maps -Here is an example of how to create an anonymous map with JavaScript: +Here is an example of how to create an Anonymous Map with JavaScript: ```javascript var mapconfig = { @@ -31,9 +31,9 @@ $.ajax({ }) ``` -## Named maps +## Named Maps -Let's create a named map using some private tables in a CartoDB account. +Let's create a Named Map using some private tables in a CartoDB account. The following map config sets up a map of European countries that have a white fill color: ```javascript @@ -56,7 +56,7 @@ The following map config sets up a map of European countries that have a white f } ``` -The map config needs to be sent to CartoDB's Map API using an authenticated call. Here we will use a command line tool called `curl`. For more info about this tool, see [this blog post](http://quickleft.com/blog/command-line-tutorials-curl), or type `man curl` in bash. Using `curl`, and storing the config from above in a file `mapconfig.json`, the call would look like: +The MapConfig needs to be sent to CartoDB's Map API using an authenticated call. Here we will use a command line tool called `curl`. For more info about this tool, see [this blog post](http://quickleft.com/blog/command-line-tutorials-curl), or type `man curl` in bash. Using `curl`, and storing the config from above in a file `MapConfig.json`, the call would look like: #### Call diff --git a/docs/static_maps_api.md b/docs/static_maps_api.md index 9c3c2d3d..9fc7ae4f 100644 --- a/docs/static_maps_api.md +++ b/docs/static_maps_api.md @@ -1,10 +1,10 @@ # Static Maps API -The Static Maps API can be initiated using both named and anonymous maps using the 'layergroupid' token. The API can be used to create static images of parts of maps and thumbnails for use in web design, graphic design, print, field work, and many other applications that require standard image formats. +The Static Maps API can be initiated using both Named and Anonymous Maps using the 'layergroupid' token. The API can be used to create static images of parts of maps and thumbnails for use in web design, graphic design, print, field work, and many other applications that require standard image formats. ## Maps API endpoints -Begin by instantiating either a named or anonymous map using the `layergroupid token` as demonstrated in the Maps API documentation above. The `layergroupid` token calls to the map and allows for parameters in the definition to generate static images. +Begin by instantiating either a Named or Anonymous Map using the `layergroupid token` as demonstrated in the Maps API documentation above. The `layergroupid` token calls to the map and allows for parameters in the definition to generate static images. ### Zoom + center @@ -60,7 +60,7 @@ Note: you can see this endpoint as GET /api/v1/map/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format` ``` -### Named map +### Named Map #### Definition @@ -72,7 +72,7 @@ GET /api/v1/map/static/named/:name/:width/:height.:format Param | Description --- | --- -:name | the name of the named map +:name | the name of the Named Map :width | the width in pixels for the output image :height | the height in pixels for the output image :height | the height in pixels for the output image @@ -81,7 +81,7 @@ Param | Description --- | --- |_ jpg | will have a default quality of 85. -A named maps static image will get its constraints from the [view in the template](#Arguments), if `view` is not present it will estimate the extent based on the involved tables otherwise it fallback to `"zoom": 1`, `"lng": 0` and `"lat": 0`. +A Named Maps static image will get its constraints from the [`view` argument of the Create Named Map function](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#arguments). If `view` is not defined, it will estimate the extent based on the involved tables, otherwise it fallbacks to `"zoom": 1`, `"lng": 0` and `"lat": 0`. #### Layers From 4d6b4b17551821b142507374fa3f526c40cd22ef Mon Sep 17 00:00:00 2001 From: csobier Date: Thu, 18 Feb 2016 16:58:28 -0500 Subject: [PATCH 02/18] added xyz tile info-first draft --- docs/anonymous_maps.md | 8 +- docs/named_maps.md | 197 ++++++++++++++++++++++++++--------------- 2 files changed, 133 insertions(+), 72 deletions(-) diff --git a/docs/anonymous_maps.md b/docs/anonymous_maps.md index cdf6cad4..76076f55 100644 --- a/docs/anonymous_maps.md +++ b/docs/anonymous_maps.md @@ -72,9 +72,11 @@ curl 'https://documentation.cartodb.com/api/v1/map' -H 'Content-Type: applicatio ### Retrieve resources from the layergroup -#### Mapnik tiles can be accessed using +There are several resources for retrieving layergoup details, such as accessing Mapnik tiles, individual layers, accessing defined Attributes, and blending and layer selection. -These tiles will get just the mapnik layers. To get individual layers see next section. +#### Mapnik tiles + +These tiles will access just the mapnik layers. To get individual layers, see the following section. ```bash https://documentation.cartodb.com/api/v1/map/c01a54877c62831bb51720263f91fb33:0/{z}/{x}/{y}.png @@ -189,4 +191,4 @@ callback({ ## Remove -Anonymous Maps cannot be removed by an API call. They will expire after about five minutes but sometimes longer. If an Anonymous Map expires and tiles are requested from it, an error will be raised. This could happen if a user leaves a map open and after time, returns to the map and attempts to interact with it in a way that requires new tiles (e.g. zoom). The client will need to go through the steps of creating the map again to fix the problem. +Anonymous Maps cannot be removed by an API call. They will expire after about five minutes, or sometimes longer. If an Anonymous Map expires and tiles are requested from it, an error will be raised. This could happen if a user leaves a map open and after time, returns to the map and attempts to interact with it in a way that requires new tiles (e.g. zoom). The client will need to go through the steps of creating the map again to fix the problem. diff --git a/docs/named_maps.md b/docs/named_maps.md index 6a68b73b..d590b63e 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -2,7 +2,7 @@ Named Maps are essentially the same as Anonymous Maps except the MapConfig is stored on the server, and the map is given a unique name. You can create Named Maps from private data, and users without an API Key can view your Named Map (while keeping your data private). -The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL. The response back from the API provides the name of your MapConfig as a template map; which you can then use to create your Named Map details, or fetch XYZ tiles directly for Named Maps. You can use also the MapConfig that you uploaded to create a map using [CartoDB.js](#use-cartodbjs-to-create-named-maps) for Named Maps. +The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL. The response back from the API provides the name of your MapConfig as a template map; which you can then use to create your Named Map details, or [fetch XYZ tiles](#fetching-xyz-tiles-for-named-maps) directly for Named Maps. You can also use the MapConfig that you uploaded to create a map using [CartoDB.js](#use-cartodbjs-to-create-named-maps) for Named Maps. The main differences, compared to Anonymous Maps, is that Named Maps include: @@ -92,7 +92,7 @@ name | There can only be _one_ template with the same name for any user. Valid n auth | --- | --- -|_ method | `"token"` or `"open"` (`"open"` is the default if no method is specified. Use `"token"` to password-protect your map). +|_ method | `"token"` or `"open"` (`"open"` is the default if no method is specified. Use `"token"` to password-protect your map) |_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the Named Map. See this [example](http://docs.cartodb.com/faqs/manipulating-your-data/#how-to-create-a-password-protected-named-map) for how to create a password-protected map. placeholders | Placeholders are variables that can be placed in your template.json file's SQL or CartoCSS. layergroup | the layergroup configurations, as specified in the MapConfig. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more information. @@ -112,6 +112,8 @@ view (optional) | extra keys to specify the view area for the map. It can be use |_ |_ east | UpperCorner longitude for the bounding box, in decimal degrees (aka most eastern) |_ |_ north | UpperCorner latitude for the bounding box, in decimal degrees (aka most northern) +{% comment %}writer note_csobier: Carla - Regarding view (optional) How do you see a Named Map without instantiating it via CartoDB.js/createLayer, is this referring to getting tiles via xyz url? Need an example here.{% endcomment %} + ### Placeholder Format Placeholders are variables that can be placed in your MapConfig, and template.json file's, SQL or CartoCSS options. Placeholders need to be defined with a `type` and a default value for MapConfigs. See details about defining a MapConfig `type` for [Layergoup configurations](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations). @@ -143,6 +145,8 @@ When using templates, be very careful about your selections as they can give bro #### Call +{% comment %}writer note_csobier: Carla - This section seems out of place. Should it come sooner or is it part of Placeholder Types? Also, why is the curl command shown here formatted differently than curl commands listed in the rest of the docs? Perhaps we can use this opportunity to ensure all curl commands in this section are correct?{% endcomment %} + ```html curl -X POST \ -H 'Content-Type: application/json' \ @@ -160,7 +164,9 @@ curl -X POST \ ## Instantiate -Instantiating a map allows you to get the information needed to fetch tiles. That temporal map is an Anonymous Map. +Instantiating a Named Map allows you to fetch the map tiles. You can use the Maps API to instantiate, or use the CartoDB.js `createLayer()` function. The result is an Anonymous Map. + +{% comment %}writer note_csobier: Carla - When do you need to instantiate a named map and when don't you? For example, you don't need to instantiate a named map with cartodb.js if you're using xyz tiles? Are there other ways to instantiate without CartoDB.js? If so, why would you?{% endcomment %} #### Definition @@ -172,25 +178,25 @@ POST /api/v1/map/named/:template_name Param | Description --- | --- -auth_token | optional, but required when `"method"` is set to `"token"` +auth_token | `"token"` or `"open"` (`"open"` is the default if not specified. Use `"token"` to password-protect your map) ```javascript -// params.json +// params.json, this is required { "color": "#ff0000", "cartodb_id": 3 } ``` -The fields you pass as `params.json` depend on the variables allowed by the Named Map. If there are variables missing it will raise an error (HTTP 400) +The fields you pass as `params.json` depend on the variables allowed by the Named Map. If there are variables missing, it will raise an error (HTTP 400). -- **auth_token** *optional* if the Named Map needs password-protection +**Note:** It is required that you include a `params.json` file to instantiate a Named Map, even if you have no fields to pass and the JSON is empty. -### Example +#### Example You can initialize a template map by passing all of the required parameters in a POST to `/api/v1/map/named/:template_name`. -Valid credentials will be needed, if required by the template. +Valid auth token will be needed, if required by the template. #### Call @@ -219,61 +225,7 @@ curl -X POST \ } ``` -You can then use the `layergroupid` for fetching tiles and grids as you would normally (see [Anonymous Maps](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/)). However, you will need to show the `auth_token`, if required by the template. - -## Using JSONP - -There is also a special endpoint to be able to initialize a map using JSONP (for old browsers). - -#### Definition - -```bash -GET /api/v1/map/named/:template_name/jsonp -``` - -#### Params - -Params | Description ---- | --- -auth_token | optional, but required when `"method"` is set to `"token"` -config | Encoded JSON with the params for creating Named Maps (the variables defined in the template) -lmza | This attribute contains the same as config but LZMA compressed. It cannot be used at the same time than `config`. -callback | JSON callback name - -#### Call - -```bash -curl 'https://documentation.cartodb.com/api/v1/map/named/:template_name/jsonp?auth_token=AUTH_TOKEN&callback=callback&config=template_params_json' -``` - -#### Response - -```javascript -callback({ - "layergroupid":"c01a54877c62831bb51720263f91fb33:0", - "last_updated":"1970-01-01T00:00:00.000Z" - "cdn_url": { - "http": "http://cdb.com", - "https": "https://cdb.com" - } -}) -``` - -This takes the `callback` function (required), `auth_token` if the template needs auth, and `config` which is the variable for the template (in cases where it has variables). - -```javascript -url += "config=" + encodeURIComponent( -JSON.stringify({ color: 'red' }); -``` - -The response is in this format: - -```javascript -callback({ - layergroupid: "dev@744bd0ed9b047f953fae673d56a47b4d:1390844463021.1401", - last_updated: "2014-01-27T17:41:03.021Z" -}) -``` +You can then use the `layergroupid` for fetching tiles and grids as you would normally (see [Anonymous Maps](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/)). ## Update @@ -400,7 +352,7 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named?api_key=APIKEY' } ``` -## Getting a Specific Template +## Get Specific Templates This gets the definition of a template. @@ -440,8 +392,63 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named/:template_name?a } ``` -## Use CartoDB.js to Create Named Maps -Named Maps can be used with CartoDB.js, by specifying a Named Map in a layer source as follows. Named Maps are treated almost the same as other layer source types. +## JSONP for Named Maps + +If using a [JSONP](https://en.wikipedia.org/wiki/JSONP) (for old browsers) request, there is a special endpoint used to initialize and create a Named Map. + +#### Definition + +```bash +GET /api/v1/map/named/:template_name/jsonp +``` + +#### Params + +Params | Description +--- | --- +auth_token | `"token"` or `"open"` (`"open"` is the default if no method is specified. Use `"token"` to password-protect your map) +params | Encoded JSON with the params (variables) needed for the Named Map +lmza | You can use an LZMA compressed file instead of a params JSON file +callback | JSON callback name + +#### Call + +```bash +curl 'https://documentation.cartodb.com/api/v1/map/named/:template_name/jsonp?auth_token=AUTH_TOKEN&callback=callback&config=template_params_json' +``` +{% comment %}writer note_csobier: Carla - Michelle tested the above curl command and it did not work. Can you confirm if this is written correctly? Should it just be "=params_json" and not "=template_params_json"? Also, need you to confirm if the Response below is still correct.{% endcomment %} + +#### Response + +```javascript +callback({ + "layergroupid":"c01a54877c62831bb51720263f91fb33:0", + "last_updated":"1970-01-01T00:00:00.000Z" + "cdn_url": { + "http": "http://cdb.com", + "https": "https://cdb.com" + } +}) +``` + +This takes the `callback` function (required), `auth_token` if the template needs auth, and `config` which is the variable for the template (in cases where it has variables). + +```javascript +url += "config=" + encodeURIComponent( +JSON.stringify({ color: 'red' }); +``` + +The response is in this format: + +```javascript +callback({ + layergroupid: "dev@744bd0ed9b047f953fae673d56a47b4d:1390844463021.1401", + last_updated: "2014-01-27T17:41:03.021Z" +}) +``` + +## CartoDB.js for Named Maps +Named Maps can be used with CartoDB.js, by specifying a Named Map in a layer source as follows. ```js var layerSource = { @@ -461,6 +468,8 @@ cartodb.createLayer('map_dom_id',layerSource) ``` +**Note:** Instantiating a Named Map over a `createLayer` does not require an API Key and by default, does not include auth tokens. _If_ you defined auth tokens for the Named Map configuration, then you will have to include them. + [CartoDB.js](http://docs.cartodb.com/cartodb-platform/cartodb-js/) has methods for accessing your Named Maps. 1. [layer.setParams()](http://docs.cartodb.com/cartodb-platform/cartodb-js/api-methods/#layersetparamskey-value) allows you to change the template variables (in the placeholders object) via JavaScript @@ -469,10 +478,60 @@ cartodb.createLayer('map_dom_id',layerSource) 2. [layer.setAuthToken()](http://docs.cartodb.com/cartodb-platform/cartodb-js/api-methods/#layersetauthtokenauthtoken) allows you to set the auth tokens to create the layer -### Complete Examples of Named Maps created with CartoDB.js +#### Examples of Named Maps created with CartoDB.js - [Named Map selectors with interaction](http://bl.ocks.org/ohasselblad/515a8af1f99d5e690484) -- [Named Map with interactivity and config file used to create it](http://bl.ocks.org/ohasselblad/d1a45b8ff5e7bd90cd68) +- [Named Map with interactivity](http://bl.ocks.org/ohasselblad/d1a45b8ff5e7bd90cd68) - [Toggling sublayers in a Named Map](http://bl.ocks.org/ohasselblad/c1a0f4913610eec53cd3) + +### Fetching XYZ tiles for Named Maps + +Optionally, you can fetch projected tiles for your Named Map. This does not require an API Key. There are several ways to fetch XYZ tiles. + +#### Get Template + +If fetching XYZ tiles with the [`function getTemplate`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps_admin.js#L103) call, _it requires an auth token_. + +```javascript +function getTemplate(err, authenticated) { + ifUnauthenticated(authenticated, 'Only authenticated users can get template maps'); +``` + +#### List Templates + +If fetching XYZ tiles with the [`function listTemplates`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps_admin.js#L166) call, _it requires an auth token_. + +```javascript +function listTemplates(err, authenticated) { + ifUnauthenticated(authenticated, 'Only authenticated user can list templated maps'); +``` + +#### Get Mapnik Retina Tiles + +This method of fetching XYZ tiles ignores the Named Map template name and obtains the [Layergroup `srid`](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations) as the key value used to initialize the map. Note that it obtains the retina tiles that are not related to basemaps. + +```javascript +GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y@:scale_factor?x.:format {:user(f),:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1) +Notes: Mapnik retina tiles [0] +``` +**Tip:** This is the code defined as "Mapnik retina tiles" in the [Windshaft-cartodb Routes list](https://github.com/CartoDB/Windshaft-cartodb/blob/723dc59490f774c680efb74ab19fa2a556c66d9d/docs/Routes.md#routes-list). + +#### Fetch XYZ tiles directly + +This method uses XYZ-based URLs to fetch tiles directly, and instantiates the Named Map as part of the request to your application. You do not have to do any other steps to initialize your map. This is done with the [`NamedMapsController`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps.js#L31) base url value for your app. + +{% comment %}writer note_csobier: Carla - Is it true that if you're using xyz urls to get tiles, that does instantiation for you? so you don't need to do any other steps to instantiate?{% endcomment %} + +```javascript +NamedMapsController.prototype.register = function(app) { +app.get(app.base_url_templated + + '/:template_id/:layer/:z/:x/:y.(:format)', cors(), userMiddleware, + this.tile.bind(this)); + +app.get(app.base_url_mapconfig + + '/static/named/:template_id/:width/:height.:format', cors(), userMiddleware, + this.staticMap.bind(this)); +}; +``` From cfa2714dbb1572828cb8fda519c0b8b032d7ebb1 Mon Sep 17 00:00:00 2001 From: csobier Date: Fri, 19 Feb 2016 11:45:06 -0500 Subject: [PATCH 03/18] added fetch tile in for Maps API --- docs/named_maps.md | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index d590b63e..7c5b4b7c 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -29,6 +29,7 @@ POST /api/v1/map/named Params | Description --- | --- api_key | is required +MapConfig | a [Named Map MapConfig](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#named-map-layer-options) is required to create a Named Map #### template.json @@ -352,7 +353,7 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named?api_key=APIKEY' } ``` -## Get Specific Templates +## Get Specified Template Definition This gets the definition of a template. @@ -448,26 +449,33 @@ callback({ ``` ## CartoDB.js for Named Maps -Named Maps can be used with CartoDB.js, by specifying a Named Map in a layer source as follows. +You can initialize your Named Map using CartoDB.js, by specifying a Named Map template in a [layer source object](http://docs.cartodb.com/cartodb-platform/cartodb-js/layer-source-object/#named-maps-layer-source-object-type-namedmap). -```js -var layerSource = { - user_name: '{your_user_name}', - type: 'namedmap', +```javascript +{ + user_name: 'your_user_name', // Required + type: 'namedmap', // Required named_map: { - name: '{template_name}', - layers: [{ - layer_name: "layer1", + name: 'name_of_map', // Required + // Optional + layers: [{ + layer_name: "sublayer0", // Optional + interactivity: "column1, column2, ..." // Optional + }, + { + layer_name: "sublayer1", interactivity: "column1, column2, ..." - }] + }, + ... + ], + // Optional + params: { + color: "hex_value", + num: 2 + } } } - -cartodb.createLayer('map_dom_id',layerSource) - .addTo(map_object); - ``` - **Note:** Instantiating a Named Map over a `createLayer` does not require an API Key and by default, does not include auth tokens. _If_ you defined auth tokens for the Named Map configuration, then you will have to include them. [CartoDB.js](http://docs.cartodb.com/cartodb-platform/cartodb-js/) has methods for accessing your Named Maps. From adefa8b8193d45039560b2fbf0a3a855201de273 Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 22 Feb 2016 09:01:04 -0500 Subject: [PATCH 04/18] applied Carla's edits to date --- docs/anonymous_maps.md | 8 ++++---- docs/named_maps.md | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/anonymous_maps.md b/docs/anonymous_maps.md index 76076f55..35d8747a 100644 --- a/docs/anonymous_maps.md +++ b/docs/anonymous_maps.md @@ -76,7 +76,7 @@ There are several resources for retrieving layergoup details, such as accessing #### Mapnik tiles -These tiles will access just the mapnik layers. To get individual layers, see the following section. +These tiles will get just the Mapnik layers. To get individual layers, see the following section. ```bash https://documentation.cartodb.com/api/v1/map/c01a54877c62831bb51720263f91fb33:0/{z}/{x}/{y}.png @@ -141,8 +141,8 @@ https://documentation.cartodb.com/api/v1/map/c01a54877c62831bb51720263f91fb33:0/ Some notes about filtering: - Invalid index values or out of bounds indexes will end in `Invalid layer filtering` errors. - - Once a mapnik layer is selected, all mapnik layers will get blended. As this may change in the future **it is - recommended** to always select all mapnik layers if you want to select at least one so you will get a consistent + - Once a Mapnik layer is selected, all Mapnik layers will get blended. As this may change in the future **it is + recommended** to always select all Mapnik layers if you want to select at least one so you will get a consistent behavior in the future. - Ordering is not considered. So right now filtering layers 0,3,4 is the very same thing as filtering 3,4,0. As this may change in the future **it is recommended** to always select the layers in ascending order so you will get a @@ -163,7 +163,7 @@ GET /api/v1/map?callback=method Param | Description --- | --- -config | Encoded JSON with the params for creating Named maps (the variables defined in the template). +config | Encoded JSON with the params for creating Named Maps (the variables defined in the template). lmza | This attribute contains the same as config but LZMA compressed. It cannot be used at the same time as `config`. callback | JSON callback name. diff --git a/docs/named_maps.md b/docs/named_maps.md index 7c5b4b7c..ee5e73d3 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -2,7 +2,7 @@ Named Maps are essentially the same as Anonymous Maps except the MapConfig is stored on the server, and the map is given a unique name. You can create Named Maps from private data, and users without an API Key can view your Named Map (while keeping your data private). -The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL. The response back from the API provides the name of your MapConfig as a template map; which you can then use to create your Named Map details, or [fetch XYZ tiles](#fetching-xyz-tiles-for-named-maps) directly for Named Maps. You can also use the MapConfig that you uploaded to create a map using [CartoDB.js](#use-cartodbjs-to-create-named-maps) for Named Maps. +The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL, and specifying the CartoCSS for your map. The response back from the API provides the name of your MapConfig as a template map; which you can then use to create your Named Map details, or [fetch XYZ tiles](#fetching-xyz-tiles-for-named-maps) directly for Named Maps. You can also use the MapConfig that you uploaded to create a map using [CartoDB.js](#use-cartodbjs-to-create-named-maps) for Named Maps. The main differences, compared to Anonymous Maps, is that Named Maps include: @@ -10,9 +10,9 @@ The main differences, compared to Anonymous Maps, is that Named Maps include: This allows you to control who is able to see the map based on an auth token, and create a secure Named Map with password-protection. - **templates** - The MapConfig generated template map is static and contains placeholders, enabling you to modify your map's appearance by using variables. Templates maps are persistent with no preset expiration. They can only be created, or deleted, by a CartoDB user with a valid API KEY (See [auth argument](#arguments)). + The MapConfig generated template map is static and may contain placeholders, enabling you to modify your map's appearance by using variables. Templates maps are persistent with no preset expiration. They can only be created, or deleted, by a CartoDB user with a valid API KEY (See [auth argument](#arguments)). - Uploading a MapConfig produces a template map for your Named Maps. Such as MapConfigs are uploaded to the server, "template".json files are uploaded to the server for Named Maps. + Uploading a MapConfig produces a template map for your Named Maps. Such as MapConfigs are uploaded to the server, "template".json files are uploaded to the server for Named Maps. The template.json files contain the [MapConfig specifications](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/). **Note:** There is a limit of 4,096 Named Maps allowed per account. If you need to create more Named Maps, it is recommended to use template maps instead of uploading multiple [Named Map MapConfigs](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#named-map-layer-options). @@ -89,13 +89,13 @@ The response back from the API provides the name of your MapConfig as a template Params | Description --- | --- -name | There can only be _one_ template with the same name for any user. Valid names start with a letter or a number, and only contain letters, numbers, dashes (-), or underscores (_). This is specific to the name of your Named Map [template.json](#templatejson). +name | There can only be _one_ template with the same name for any user. Valid names start with a letter or a number, and only contain letters, numbers, dashes (-), or underscores (_). _This is specific to the name of your Named Map that is specified in the `name` property of the template file_. auth | --- | --- |_ method | `"token"` or `"open"` (`"open"` is the default if no method is specified. Use `"token"` to password-protect your map) |_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the Named Map. See this [example](http://docs.cartodb.com/faqs/manipulating-your-data/#how-to-create-a-password-protected-named-map) for how to create a password-protected map. -placeholders | Placeholders are variables that can be placed in your template.json file's SQL or CartoCSS. +placeholders | Placeholders are variables that can be placed in your MapConfig template.json file's SQL or CartoCSS. layergroup | the layergroup configurations, as specified in the MapConfig. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more information. view (optional) | extra keys to specify the view area for the map. It can be used to have a static preview of a Named Map without having to instantiate it. It is possible to specify it with `center` + `zoom` or with a bounding box `bbox`. Center+zoom takes precedence over bounding box. --- | --- @@ -117,7 +117,7 @@ view (optional) | extra keys to specify the view area for the map. It can be use ### Placeholder Format -Placeholders are variables that can be placed in your MapConfig, and template.json file's, SQL or CartoCSS options. Placeholders need to be defined with a `type` and a default value for MapConfigs. See details about defining a MapConfig `type` for [Layergoup configurations](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations). +Placeholders are variables that can be placed in your MapConfig template.json file. Placeholders need to be defined with a `type` and a default value for MapConfigs. See details about defining a MapConfig `type` for [Layergoup configurations](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations). Valid placeholder names start with a letter and can only contain letters, numbers, or underscores. They have to be written between the `<%=` and `%>` strings in order to be replaced. @@ -182,7 +182,7 @@ Param | Description auth_token | `"token"` or `"open"` (`"open"` is the default if not specified. Use `"token"` to password-protect your map) ```javascript -// params.json, this is required +// params.json, this is required if the Named Map allows variables (if placeholders were defined in the MapConfig/template.json by the user) { "color": "#ff0000", "cartodb_id": 3 @@ -191,7 +191,7 @@ auth_token | `"token"` or `"open"` (`"open"` is the default if not specified. Us The fields you pass as `params.json` depend on the variables allowed by the Named Map. If there are variables missing, it will raise an error (HTTP 400). -**Note:** It is required that you include a `params.json` file to instantiate a Named Map, even if you have no fields to pass and the JSON is empty. +**Note:** It is required that you include a `params.json` file to instantiate a Named Map that contains variables, even if you have no fields to pass and the JSON is empty. (This is specific to when a Named Map allows variables (if placeholders were defined in the MapConfig/template.json by the user). #### Example From 14f58e12bbf47c79fc216804a4d9e19622cb8514 Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 22 Feb 2016 11:41:06 -0500 Subject: [PATCH 05/18] moved response info from template.json section to the related Response section, and left the name description as part of the template.json description --- docs/named_maps.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index ee5e73d3..8afbb35c 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -33,7 +33,7 @@ MapConfig | a [Named Map MapConfig](http://docs.cartodb.com/cartodb-platform/map #### template.json -The response back from the API provides the name of your MapConfig as a template, enabling you to create the Named Map details by inserting your variables into the template where placeholders are defined, and create custom queries using SQL. The `name` argument defines how to name this "template_name".json. Note that there are some requirements for how to name a Named Map template. See the [`name`](#arguments) argument description for details. +The `name` argument defines how to name this "template_name".json. Note that there are some requirements for how to name a Named Map template. See the [`name`](#arguments) argument description for details. ```javascript { @@ -157,6 +157,8 @@ curl -X POST \ #### Response +The response back from the API provides the name of your MapConfig as a template, enabling you to create the Named Map details by inserting your variables into the template where placeholders are defined, and create custom queries using SQL. + ```javascript { "template_id":"name", From 2f038f006b68e3ec0d9fb26980c0283da8876541 Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 7 Mar 2016 09:08:38 -0500 Subject: [PATCH 06/18] applied consistent terminology and applied rest of Carla's edits --- docs/anonymous_maps.md | 2 +- docs/named_maps.md | 50 ++++++++++++++++++++---------------------- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/docs/anonymous_maps.md b/docs/anonymous_maps.md index 35d8747a..0769d0fc 100644 --- a/docs/anonymous_maps.md +++ b/docs/anonymous_maps.md @@ -72,7 +72,7 @@ curl 'https://documentation.cartodb.com/api/v1/map' -H 'Content-Type: applicatio ### Retrieve resources from the layergroup -There are several resources for retrieving layergoup details, such as accessing Mapnik tiles, individual layers, accessing defined Attributes, and blending and layer selection. +When you have a layergroup, there are several resources for retrieving layergoup details such as, accessing Mapnik tiles, getting individual layers, accessing defined Attributes, and blending and layer selection. #### Mapnik tiles diff --git a/docs/named_maps.md b/docs/named_maps.md index 8afbb35c..67ee0e8f 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -2,17 +2,21 @@ Named Maps are essentially the same as Anonymous Maps except the MapConfig is stored on the server, and the map is given a unique name. You can create Named Maps from private data, and users without an API Key can view your Named Map (while keeping your data private). -The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL, and specifying the CartoCSS for your map. The response back from the API provides the name of your MapConfig as a template map; which you can then use to create your Named Map details, or [fetch XYZ tiles](#fetching-xyz-tiles-for-named-maps) directly for Named Maps. You can also use the MapConfig that you uploaded to create a map using [CartoDB.js](#use-cartodbjs-to-create-named-maps) for Named Maps. +The Named Map workflow consists of uploading a MapConfig file to CartoDB servers, to select data from your CartoDB user database by using SQL, and specifying the CartoCSS for your map. + +The response back from the API provides the template_id of your Named Map as the `name` (the identifier of your Named Map), which is the name that you specified in the MapConfig. You can which you can then use to create your Named Map details, or [fetch XYZ tiles](#fetching-xyz-tiles-for-named-maps) directly for Named Maps. + +**Tip:** You can also use a Named Map that you created (which is defined by its `name`), to create a map using CartoDB.js. This is achieved by adding the [`namedmap` type](http://docs.cartodb.com/cartodb-platform/cartodb-js/layer-source-object/#named-maps-layer-source-object-type-namedmap) layer source object to draw the Named Map. The main differences, compared to Anonymous Maps, is that Named Maps include: - **auth token** This allows you to control who is able to see the map based on an auth token, and create a secure Named Map with password-protection. -- **templates** - The MapConfig generated template map is static and may contain placeholders, enabling you to modify your map's appearance by using variables. Templates maps are persistent with no preset expiration. They can only be created, or deleted, by a CartoDB user with a valid API KEY (See [auth argument](#arguments)). +- **template map** + The template map is static and may contain placeholders, enabling you to modify your maps appearance by using variables. Templates maps are persistent with no preset expiration. They can only be created, or deleted, by a CartoDB user with a valid API KEY (See [auth argument](#arguments)). - Uploading a MapConfig produces a template map for your Named Maps. Such as MapConfigs are uploaded to the server, "template".json files are uploaded to the server for Named Maps. The template.json files contain the [MapConfig specifications](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/). + Uploading a MapConfig creates a Named Map. MapConfigs are uploaded to the server by sending the server a "template".json file, which contain the [MapConfig specifications](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/). **Note:** There is a limit of 4,096 Named Maps allowed per account. If you need to create more Named Maps, it is recommended to use template maps instead of uploading multiple [Named Map MapConfigs](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#named-map-layer-options). @@ -95,8 +99,8 @@ auth | --- | --- |_ method | `"token"` or `"open"` (`"open"` is the default if no method is specified. Use `"token"` to password-protect your map) |_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the Named Map. See this [example](http://docs.cartodb.com/faqs/manipulating-your-data/#how-to-create-a-password-protected-named-map) for how to create a password-protected map. -placeholders | Placeholders are variables that can be placed in your MapConfig template.json file's SQL or CartoCSS. -layergroup | the layergroup configurations, as specified in the MapConfig. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more information. +placeholders | Placeholders are variables that can be placed in your template.json file's SQL or CartoCSS. +layergroup | the layergroup configurations, as specified in the template. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more information. view (optional) | extra keys to specify the view area for the map. It can be used to have a static preview of a Named Map without having to instantiate it. It is possible to specify it with `center` + `zoom` or with a bounding box `bbox`. Center+zoom takes precedence over bounding box. --- | --- |_ zoom | The zoom level to use @@ -113,11 +117,10 @@ view (optional) | extra keys to specify the view area for the map. It can be use |_ |_ east | UpperCorner longitude for the bounding box, in decimal degrees (aka most eastern) |_ |_ north | UpperCorner latitude for the bounding box, in decimal degrees (aka most northern) -{% comment %}writer note_csobier: Carla - Regarding view (optional) How do you see a Named Map without instantiating it via CartoDB.js/createLayer, is this referring to getting tiles via xyz url? Need an example here.{% endcomment %} ### Placeholder Format -Placeholders are variables that can be placed in your MapConfig template.json file. Placeholders need to be defined with a `type` and a default value for MapConfigs. See details about defining a MapConfig `type` for [Layergoup configurations](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations). +Placeholders are variables that can be placed in your template.json file. Placeholders need to be defined with a `type` and a default value for MapConfigs. See details about defining a MapConfig `type` for [Layergoup configurations](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations). Valid placeholder names start with a letter and can only contain letters, numbers, or underscores. They have to be written between the `<%=` and `%>` strings in order to be replaced. @@ -146,9 +149,9 @@ When using templates, be very careful about your selections as they can give bro #### Call -{% comment %}writer note_csobier: Carla - This section seems out of place. Should it come sooner or is it part of Placeholder Types? Also, why is the curl command shown here formatted differently than curl commands listed in the rest of the docs? Perhaps we can use this opportunity to ensure all curl commands in this section are correct?{% endcomment %} +This is the call for creating the Named Map. It is sending the template.json file to the service, and the server responds with the template id. -```html +```bash curl -X POST \ -H 'Content-Type: application/json' \ -d @template.json \ @@ -157,7 +160,7 @@ curl -X POST \ #### Response -The response back from the API provides the name of your MapConfig as a template, enabling you to create the Named Map details by inserting your variables into the template where placeholders are defined, and create custom queries using SQL. +The response back from the API provides the name of your MapConfig as a template, enabling you to edit the Named Map details by inserting your variables into the template where placeholders are defined, and create custom queries using SQL. ```javascript { @@ -169,8 +172,6 @@ The response back from the API provides the name of your MapConfig as a template Instantiating a Named Map allows you to fetch the map tiles. You can use the Maps API to instantiate, or use the CartoDB.js `createLayer()` function. The result is an Anonymous Map. -{% comment %}writer note_csobier: Carla - When do you need to instantiate a named map and when don't you? For example, you don't need to instantiate a named map with cartodb.js if you're using xyz tiles? Are there other ways to instantiate without CartoDB.js? If so, why would you?{% endcomment %} - #### Definition ```html @@ -184,7 +185,7 @@ Param | Description auth_token | `"token"` or `"open"` (`"open"` is the default if not specified. Use `"token"` to password-protect your map) ```javascript -// params.json, this is required if the Named Map allows variables (if placeholders were defined in the MapConfig/template.json by the user) +// params.json, this is required if the Named Map allows variables (if placeholders were defined in the template.json by the user) { "color": "#ff0000", "cartodb_id": 3 @@ -193,7 +194,7 @@ auth_token | `"token"` or `"open"` (`"open"` is the default if not specified. Us The fields you pass as `params.json` depend on the variables allowed by the Named Map. If there are variables missing, it will raise an error (HTTP 400). -**Note:** It is required that you include a `params.json` file to instantiate a Named Map that contains variables, even if you have no fields to pass and the JSON is empty. (This is specific to when a Named Map allows variables (if placeholders were defined in the MapConfig/template.json by the user). +**Note:** It is required that you include a `params.json` file to instantiate a Named Map that contains variables, even if you have no fields to pass and the JSON is empty. (This is specific to when a Named Map allows variables (if placeholders were defined in the template.json by the user). #### Example @@ -355,9 +356,9 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named?api_key=APIKEY' } ``` -## Get Specified Template Definition +## Get Template Definition -This gets the definition of a template. +This gets the definition of a requested template. #### Definition @@ -419,7 +420,6 @@ callback | JSON callback name ```bash curl 'https://documentation.cartodb.com/api/v1/map/named/:template_name/jsonp?auth_token=AUTH_TOKEN&callback=callback&config=template_params_json' ``` -{% comment %}writer note_csobier: Carla - Michelle tested the above curl command and it did not work. Can you confirm if this is written correctly? Should it just be "=params_json" and not "=template_params_json"? Also, need you to confirm if the Response below is still correct.{% endcomment %} #### Response @@ -441,7 +441,7 @@ url += "config=" + encodeURIComponent( JSON.stringify({ color: 'red' }); ``` -The response is in this format: +The response is: ```javascript callback({ @@ -451,14 +451,14 @@ callback({ ``` ## CartoDB.js for Named Maps -You can initialize your Named Map using CartoDB.js, by specifying a Named Map template in a [layer source object](http://docs.cartodb.com/cartodb-platform/cartodb-js/layer-source-object/#named-maps-layer-source-object-type-namedmap). +You can use a Named Map that you created (which is defined by its `name`), to create a map using CartoDB.js. This is achieved by adding the [`namedmap` type](http://docs.cartodb.com/cartodb-platform/cartodb-js/layer-source-object/#named-maps-layer-source-object-type-namedmap) layer source object to draw the Named Map. ```javascript { - user_name: 'your_user_name', // Required + user_name: '{your_user_name}', // Required type: 'namedmap', // Required named_map: { - name: 'name_of_map', // Required + name: '{name_of_map}', // Required, the 'name' of the Named Map that you have created // Optional layers: [{ layer_name: "sublayer0", // Optional @@ -502,7 +502,7 @@ Optionally, you can fetch projected tiles for your Named Map. This does not requ #### Get Template -If fetching XYZ tiles with the [`function getTemplate`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps_admin.js#L103) call, _it requires an auth token_. +If fetching XYZ tiles with the `function getTemplate` call, _it requires an auth token_. ```javascript function getTemplate(err, authenticated) { @@ -511,7 +511,7 @@ function getTemplate(err, authenticated) { #### List Templates -If fetching XYZ tiles with the [`function listTemplates`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps_admin.js#L166) call, _it requires an auth token_. +If fetching XYZ tiles with the `function listTemplates` call, _it requires an auth token_. ```javascript function listTemplates(err, authenticated) { @@ -532,8 +532,6 @@ Notes: Mapnik retina tiles [0] This method uses XYZ-based URLs to fetch tiles directly, and instantiates the Named Map as part of the request to your application. You do not have to do any other steps to initialize your map. This is done with the [`NamedMapsController`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps.js#L31) base url value for your app. -{% comment %}writer note_csobier: Carla - Is it true that if you're using xyz urls to get tiles, that does instantiation for you? so you don't need to do any other steps to instantiate?{% endcomment %} - ```javascript NamedMapsController.prototype.register = function(app) { app.get(app.base_url_templated + From 32223baaef423e85c7749df799a8bc51dc1b92e9 Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 7 Mar 2016 10:53:51 -0500 Subject: [PATCH 07/18] removed internal code, displayed somexyz examples --- docs/named_maps.md | 58 +++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 32 deletions(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 67ee0e8f..6fe63a4e 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -18,7 +18,7 @@ The main differences, compared to Anonymous Maps, is that Named Maps include: Uploading a MapConfig creates a Named Map. MapConfigs are uploaded to the server by sending the server a "template".json file, which contain the [MapConfig specifications](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/). -**Note:** There is a limit of 4,096 Named Maps allowed per account. If you need to create more Named Maps, it is recommended to use template maps instead of uploading multiple [Named Map MapConfigs](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#named-map-layer-options). +**Note:** There is a limit of 4,096 Named Maps allowed per account. If you need to create more Named Maps, it is recommended to use a single Named Map and change the variables using [placeholders](#placeholder-format), instead of uploading multiple [Named Map MapConfigs](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#named-map-layer-options). ## Create @@ -498,48 +498,42 @@ You can use a Named Map that you created (which is defined by its `name`), to cr ### Fetching XYZ tiles for Named Maps -Optionally, you can fetch projected tiles for your Named Map. This does not require an API Key. There are several ways to fetch XYZ tiles. +Optionally, authenticated users can fetch projected tiles (XYZ tiles or Mapnik Retina tiles) for your Named Map. This does not require an API Key. -#### Get Template +#### Fetch XYZ tiles directly with a URL -If fetching XYZ tiles with the `function getTemplate` call, _it requires an auth token_. +Authenticated users, with an auth token, can use XYZ-based URLs to fetch tiles directly, and instantiate the Named Map as part of the request to your application. You do not have to do any other steps to initialize your map. -```javascript -function getTemplate(err, authenticated) { - ifUnauthenticated(authenticated, 'Only authenticated users can get template maps'); -``` +To call a template_id in a URL: -#### List Templates +`/:template_id/:layer/:z/:x/:y.(:format)` -If fetching XYZ tiles with the `function listTemplates` call, _it requires an auth token_. +For example, a complete URL might appear as: + +"https://{your user name}.cartodb.com/api/v1/map/named/{template_id/{layer}/{z}/{x}/{y}.png" + +The placeholders indicate the following: + +- [`template_id`](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response)) is the response of your Named Map. +- layers can be a number (referring to the # layer of your map), all layers of your map, or a list of layers. + - To show just the basemap layer, enter the number value `0` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/`0`/{z}/{x}/{y}.png" + - To show the first layer, enter the number value `1` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/`1`/{z}/{x}/{y}.png" + - To show all layers, enter the value `all` for the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/all/{z}/{x}/{y}.png" + - To show a [list of layers](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/#blending-and-layer-selection), enter the comma separated layer value as `0,1,2` in the layer placeholder. For example, to show the basemap and the first layer, "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/`0,1`/{z}/{x}/{y}.png" -```javascript -function listTemplates(err, authenticated) { - ifUnauthenticated(authenticated, 'Only authenticated user can list templated maps'); -``` #### Get Mapnik Retina Tiles -This method of fetching XYZ tiles ignores the Named Map template name and obtains the [Layergroup `srid`](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations) as the key value used to initialize the map. Note that it obtains the retina tiles that are not related to basemaps. +Mapnik Retina tiles ignore the Named Map template_id and obtains the [Layergroup `srid`](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations) as the key value used to initialize the map. Note that it obtains the retina tiles that are not related to basemaps. + + To get this layergroup token from your template_id, you need to instantiate the map with the JSONP call: + + `:token/:z/:x/:y@:scale_factor?x.:format` + +For example, a complete JSONP call might appear as: ```javascript -GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y@:scale_factor?x.:format {:user(f),:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1) +GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/{token}/{z}/{x}/{y@:scale_factor?x.}{format}{:user(f),:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1) Notes: Mapnik retina tiles [0] ``` **Tip:** This is the code defined as "Mapnik retina tiles" in the [Windshaft-cartodb Routes list](https://github.com/CartoDB/Windshaft-cartodb/blob/723dc59490f774c680efb74ab19fa2a556c66d9d/docs/Routes.md#routes-list). - -#### Fetch XYZ tiles directly - -This method uses XYZ-based URLs to fetch tiles directly, and instantiates the Named Map as part of the request to your application. You do not have to do any other steps to initialize your map. This is done with the [`NamedMapsController`](https://github.com/CartoDB/Windshaft-cartodb/blob/9449642773ed284d3855b08f0358c634f6634d59/lib/cartodb/controllers/named_maps.js#L31) base url value for your app. - -```javascript -NamedMapsController.prototype.register = function(app) { -app.get(app.base_url_templated + - '/:template_id/:layer/:z/:x/:y.(:format)', cors(), userMiddleware, - this.tile.bind(this)); - -app.get(app.base_url_mapconfig + - '/static/named/:template_id/:width/:height.:format', cors(), userMiddleware, - this.staticMap.bind(this)); -}; -``` From f75ba9d2c37f7d06757fc887608bff2e5e90f9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 14 Mar 2016 14:42:40 +0100 Subject: [PATCH 08/18] Release 2.29.0 --- NEWS.md | 8 +- npm-shrinkwrap.json | 496 ++++++++++++++++++++++---------------------- package.json | 4 +- 3 files changed, 256 insertions(+), 252 deletions(-) diff --git a/NEWS.md b/NEWS.md index c7fd8afd..caedeb39 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,11 @@ # Changelog -## 2.28.1 +## 2.29.0 -Released 2016-mm-dd +Released 2016-03-14 + +Announcements: + - Upgrades windshaft to [1.14.0](https://github.com/CartoDB/Windshaft/releases/tag/1.14.0) ## 2.28.0 @@ -12,6 +15,7 @@ Released 2016-03-14 New features: - Added [turbo-cartocss](https://github.com/CartoDB/turbo-cartocss) to preprocess CartoCSS. + ## 2.27.0 Released 2016-03-09 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index a302cea6..98454bc3 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,101 +1,101 @@ { "name": "windshaft-cartodb", - "version": "2.27.0", + "version": "2.28.1", "dependencies": { "body-parser": { "version": "1.14.2", - "from": "body-parser@>=1.14.0 <1.15.0", + "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { "version": "2.2.0", - "from": "bytes@2.2.0", + "from": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "depd": { "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "statuses@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "iconv-lite": { "version": "0.4.13", - "from": "iconv-lite@0.4.13", + "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "on-finished": { "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", + "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "ee-first@1.1.1", + "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { "version": "5.2.0", - "from": "qs@5.2.0", + "from": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { "version": "2.1.6", - "from": "raw-body@>=2.1.5 <2.2.0", + "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", "dependencies": { "bytes": { "version": "2.3.0", - "from": "bytes@2.3.0", + "from": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz" }, "unpipe": { "version": "1.0.0", - "from": "unpipe@1.0.0", + "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.12", - "from": "type-is@>=1.6.10 <1.7.0", + "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "media-typer@0.3.0", + "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.10", - "from": "mime-types@>=2.1.10 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } @@ -106,22 +106,22 @@ }, "cartodb-psql": { "version": "0.4.0", - "from": "cartodb-psql@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", "dependencies": { "pg": { "version": "2.6.2-cdb1", - "from": "git://github.com/CartoDB/node-postgres.git#2.6.2-cdb1", + "from": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", "resolved": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", "dependencies": { "generic-pool": { "version": "2.0.3", - "from": "generic-pool@2.0.3", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz" }, "buffer-writer": { "version": "1.0.0", - "from": "buffer-writer@1.0.0", + "from": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" } } @@ -130,42 +130,42 @@ }, "cartodb-query-tables": { "version": "0.1.0", - "from": "cartodb-query-tables@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz", "resolved": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz" }, "cartodb-redis": { "version": "0.13.0", - "from": "cartodb-redis@>=0.13.0 <0.14.0", + "from": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { "redis-mpool": { "version": "0.1.0", - "from": "git://github.com/CartoDB/node-redis-mpool.git#0.1.0", + "from": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", "resolved": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "redis@>=0.12.1 <0.13.0", + "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "hiredis@>=0.1.17 <0.2.0", + "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "bindings@*", + "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "nan@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -176,228 +176,228 @@ }, "debug": { "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", + "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "ms@0.7.1", + "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "dot": { "version": "1.0.3", - "from": "dot@>=1.0.2 <1.1.0", + "from": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz", "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" }, "express": { "version": "4.13.4", - "from": "express@>=4.13.3 <4.14.0", + "from": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "dependencies": { "accepts": { "version": "1.2.13", - "from": "accepts@>=1.2.12 <1.3.0", + "from": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { "version": "2.1.10", - "from": "mime-types@>=2.1.6 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } }, "negotiator": { "version": "0.5.3", - "from": "negotiator@0.5.3", + "from": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" } } }, "array-flatten": { "version": "1.1.1", - "from": "array-flatten@1.1.1", + "from": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, "content-disposition": { "version": "0.5.1", - "from": "content-disposition@0.5.1", + "from": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" }, "content-type": { "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "cookie": { "version": "0.1.5", - "from": "cookie@0.1.5", + "from": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" }, "cookie-signature": { "version": "1.0.6", - "from": "cookie-signature@1.0.6", + "from": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" }, "depd": { "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "escape-html": { "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", + "from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "etag": { "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", + "from": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" }, "finalhandler": { "version": "0.4.1", - "from": "finalhandler@0.4.1", + "from": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "fresh": { "version": "0.3.0", - "from": "fresh@0.3.0", + "from": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" }, "merge-descriptors": { "version": "1.0.1", - "from": "merge-descriptors@1.0.1", + "from": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" }, "methods": { "version": "1.1.2", - "from": "methods@>=1.1.2 <1.2.0", + "from": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "on-finished": { "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", + "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "ee-first@1.1.1", + "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "parseurl": { "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" }, "path-to-regexp": { "version": "0.1.7", - "from": "path-to-regexp@0.1.7", + "from": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "proxy-addr": { "version": "1.0.10", - "from": "proxy-addr@>=1.0.10 <1.1.0", + "from": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", - "from": "forwarded@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { "version": "1.0.5", - "from": "ipaddr.js@1.0.5", + "from": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, "qs": { "version": "4.0.0", - "from": "qs@4.0.0", + "from": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" }, "range-parser": { "version": "1.0.3", - "from": "range-parser@>=1.0.3 <1.1.0", + "from": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" }, "send": { "version": "0.13.1", - "from": "send@0.13.1", + "from": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "dependencies": { "destroy": { "version": "1.0.4", - "from": "destroy@>=1.0.4 <1.1.0", + "from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "mime": { "version": "1.3.4", - "from": "mime@1.3.4", + "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" }, "ms": { "version": "0.7.1", - "from": "ms@0.7.1", + "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "statuses@>=1.2.1 <1.3.0", + "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "serve-static": { "version": "1.10.2", - "from": "serve-static@>=1.10.2 <1.11.0", + "from": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz" }, "type-is": { "version": "1.6.12", - "from": "type-is@>=1.6.6 <1.7.0", + "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "media-typer@0.3.0", + "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.10", - "from": "mime-types@>=2.1.6 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } @@ -406,19 +406,19 @@ }, "utils-merge": { "version": "1.0.0", - "from": "utils-merge@1.0.0", + "from": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" }, "vary": { "version": "1.0.1", - "from": "vary@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" } } }, "fastly-purge": { "version": "1.0.1", - "from": "fastly-purge@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz" }, "log4js": { @@ -428,96 +428,96 @@ "dependencies": { "async": { "version": "0.2.10", - "from": "async@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "readable-stream": { "version": "1.0.33", - "from": "readable-stream@>=1.0.2 <1.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "semver": { "version": "4.3.6", - "from": "semver@>=4.3.3 <4.4.0", + "from": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "underscore": { "version": "1.8.2", - "from": "underscore@1.8.2", + "from": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" } } }, "lru-cache": { "version": "2.6.5", - "from": "lru-cache@2.6.5", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" }, "lzma": { "version": "1.3.7", - "from": "lzma@>=1.3.7 <1.4.0", + "from": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz", "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" }, "node-statsd": { "version": "0.0.7", - "from": "node-statsd@>=0.0.7 <0.1.0", + "from": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz", "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" }, "queue-async": { "version": "1.0.7", - "from": "queue-async@>=1.0.7 <1.1.0", + "from": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz", "resolved": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz" }, "redis-mpool": { "version": "0.4.0", - "from": "redis-mpool@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "resolved": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "redis@>=0.12.1 <0.13.0", + "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "hiredis@>=0.1.17 <0.2.0", + "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "bindings@*", + "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "nan@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -526,47 +526,47 @@ }, "request": { "version": "2.62.0", - "from": "request@>=2.62.0 <2.63.0", + "from": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "dependencies": { "bl": { "version": "1.0.3", - "from": "bl@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "dependencies": { "readable-stream": { "version": "2.0.5", - "from": "readable-stream@>=2.0.5 <2.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "process-nextick-args": { "version": "1.0.6", - "from": "process-nextick-args@>=1.0.6 <1.1.0", + "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -575,254 +575,254 @@ }, "caseless": { "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "extend": { "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", + "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "forever-agent@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc3", - "from": "form-data@>=1.0.0-rc1 <1.1.0", + "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "async@>=1.4.0 <2.0.0", + "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "json-stringify-safe": { "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.0 <5.1.0", + "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.10", - "from": "mime-types@>=2.1.10 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "node-uuid@>=1.4.0 <1.5.0", + "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "qs": { "version": "5.1.0", - "from": "qs@>=5.1.0 <5.2.0", + "from": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { "version": "0.4.2", - "from": "tunnel-agent@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tough-cookie": { "version": "2.2.1", - "from": "tough-cookie@>=0.12.0", + "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" }, "http-signature": { "version": "0.11.0", - "from": "http-signature@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", - "from": "assert-plus@>=0.1.5 <0.2.0", + "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, "asn1": { "version": "0.1.11", - "from": "asn1@0.1.11", + "from": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, "ctype": { "version": "0.5.3", - "from": "ctype@0.5.3", + "from": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" } } }, "oauth-sign": { "version": "0.8.1", - "from": "oauth-sign@>=0.8.0 <0.9.0", + "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "hawk": { "version": "3.1.3", - "from": "hawk@>=3.1.0 <3.2.0", + "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { "version": "0.5.0", - "from": "aws-sign2@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, "stringstream": { "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", + "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "combined-stream@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "isstream": { "version": "0.1.2", - "from": "isstream@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "har-validator": { "version": "1.8.0", - "from": "har-validator@>=1.6.1 <2.0.0", + "from": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { "version": "2.10.2", - "from": "bluebird@>=2.9.30 <3.0.0", + "from": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.1", - "from": "chalk@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.2.0", - "from": "ansi-styles@>=2.1.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", "dependencies": { "color-convert": { "version": "1.0.0", - "from": "color-convert@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz" } } }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "commander@>=2.8.1 <3.0.0", + "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", + "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.0 <3.0.0", + "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "jsonpointer@2.0.0", + "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", + "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } @@ -833,164 +833,164 @@ }, "step": { "version": "0.0.6", - "from": "step@>=0.0.6 <0.1.0", + "from": "https://registry.npmjs.org/step/-/step-0.0.6.tgz", "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" }, "step-profiler": { "version": "0.2.1", - "from": "step-profiler@>=0.2.1 <0.3.0", + "from": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz", "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz" }, "turbo-cartocss": { "version": "0.4.0", - "from": "turbo-cartocss@0.4.0", + "from": "https://registry.npmjs.org/turbo-cartocss/-/turbo-cartocss-0.4.0.tgz", "resolved": "https://registry.npmjs.org/turbo-cartocss/-/turbo-cartocss-0.4.0.tgz", "dependencies": { "browser-request": { "version": "0.3.3", - "from": "browser-request@>=0.3.3 <0.4.0", + "from": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz" }, "colorbrewer": { "version": "0.0.2", - "from": "colorbrewer@0.0.2", + "from": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-0.0.2.tgz", "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-0.0.2.tgz" }, "es6-promise": { "version": "3.1.2", - "from": "es6-promise@>=3.0.2 <4.0.0", + "from": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.1.2.tgz", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.1.2.tgz" }, "less": { "version": "2.6.1", - "from": "less@>=2.5.3 <3.0.0", + "from": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", "resolved": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", "dependencies": { "errno": { "version": "0.1.4", - "from": "errno@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "dependencies": { "prr": { "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", + "from": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" } } }, "graceful-fs": { "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", + "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" }, "image-size": { "version": "0.4.0", - "from": "image-size@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz" }, "mime": { "version": "1.3.4", - "from": "mime@>=1.2.11 <2.0.0", + "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" }, "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "minimist@0.0.8", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "promise": { "version": "7.1.1", - "from": "promise@>=7.1.1 <8.0.0", + "from": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", "dependencies": { "asap": { "version": "2.0.3", - "from": "asap@>=2.0.3 <2.1.0", + "from": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" } } }, "source-map": { "version": "0.5.3", - "from": "source-map@>=0.5.3 <0.6.0", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" } } }, "postcss": { "version": "5.0.19", - "from": "postcss@>=5.0.13 <6.0.0", + "from": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz", "dependencies": { "supports-color": { "version": "3.1.2", - "from": "supports-color@>=3.1.2 <4.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "dependencies": { "has-flag": { "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" } } }, "source-map": { "version": "0.5.3", - "from": "source-map@>=0.5.1 <0.6.0", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" }, "js-base64": { "version": "2.1.9", - "from": "js-base64@>=2.1.9 <3.0.0", + "from": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" } } }, "postcss-value-parser": { "version": "3.3.0", - "from": "postcss-value-parser@>=3.2.3 <4.0.0", + "from": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" }, "querystring": { "version": "0.2.0", - "from": "querystring@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" }, "request": { "version": "2.69.0", - "from": "request@>=2.67.0 <3.0.0", + "from": "https://registry.npmjs.org/request/-/request-2.69.0.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz", "dependencies": { "aws-sign2": { "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { "version": "1.3.2", - "from": "aws4@>=1.2.1 <2.0.0", + "from": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", "dependencies": { "lru-cache": { "version": "4.0.0", - "from": "lru-cache@>=4.0.0 <5.0.0", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", "dependencies": { "pseudomap": { "version": "1.0.2", - "from": "pseudomap@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" }, "yallist": { "version": "2.0.0", - "from": "yallist@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" } } @@ -999,42 +999,42 @@ }, "bl": { "version": "1.0.3", - "from": "bl@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "dependencies": { "readable-stream": { "version": "2.0.5", - "from": "readable-stream@>=2.0.5 <2.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "process-nextick-args": { "version": "1.0.6", - "from": "process-nextick-args@>=1.0.6 <1.1.0", + "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -1043,155 +1043,155 @@ }, "caseless": { "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", + "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "extend": { "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", + "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", + "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc3", - "from": "form-data@>=1.0.0-rc3 <1.1.0", + "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "async@>=1.4.0 <2.0.0", + "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "har-validator": { "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", + "from": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "dependencies": { "chalk": { "version": "1.1.1", - "from": "chalk@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.2.0", - "from": "ansi-styles@>=2.1.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", "dependencies": { "color-convert": { "version": "1.0.0", - "from": "color-convert@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz" } } }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", + "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", + "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", + "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "jsonpointer@2.0.0", + "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", + "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } }, "pinkie-promise": { "version": "2.0.0", - "from": "pinkie-promise@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", "dependencies": { "pinkie": { "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" } } @@ -1200,103 +1200,103 @@ }, "hawk": { "version": "3.1.3", - "from": "hawk@>=3.1.0 <3.2.0", + "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "http-signature": { "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "dependencies": { "assert-plus": { "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" }, "jsprim": { "version": "1.2.2", - "from": "jsprim@>=1.2.2 <2.0.0", + "from": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", "dependencies": { "extsprintf": { "version": "1.0.2", - "from": "extsprintf@1.0.2", + "from": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" }, "json-schema": { "version": "0.2.2", - "from": "json-schema@0.2.2", + "from": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" }, "verror": { "version": "1.3.6", - "from": "verror@1.3.6", + "from": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" } } }, "sshpk": { "version": "1.7.4", - "from": "sshpk@>=1.7.0 <2.0.0", + "from": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz", "dependencies": { "asn1": { "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", + "from": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" }, "dashdash": { "version": "1.13.0", - "from": "dashdash@>=1.10.1 <2.0.0", + "from": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", "dependencies": { "assert-plus": { "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" } } }, "jsbn": { "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" }, "tweetnacl": { "version": "0.14.1", - "from": "tweetnacl@>=0.13.0 <1.0.0", + "from": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.1.tgz", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.1.tgz" }, "jodid25519": { "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" }, "ecc-jsbn": { "version": "0.1.1", - "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "from": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" } } @@ -1305,59 +1305,59 @@ }, "is-typedarray": { "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" }, "isstream": { "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", + "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "json-stringify-safe": { "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", + "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.10", - "from": "mime-types@>=2.1.7 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "node-uuid@>=1.4.7 <1.5.0", + "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "oauth-sign": { "version": "0.8.1", - "from": "oauth-sign@>=0.8.0 <0.9.0", + "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "qs": { "version": "6.0.2", - "from": "qs@>=6.0.2 <6.1.0", + "from": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" }, "stringstream": { "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", + "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "tough-cookie": { "version": "2.2.1", - "from": "tough-cookie@>=2.2.0 <2.3.0", + "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" }, "tunnel-agent": { "version": "0.4.2", - "from": "tunnel-agent@>=0.4.1 <0.5.0", + "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" } } @@ -1366,13 +1366,13 @@ }, "underscore": { "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", + "from": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.13.2", - "from": "windshaft@1.13.2", - "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.13.2.tgz", + "version": "1.14.0", + "from": "windshaft@1.14.0", + "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.14.0.tgz", "dependencies": { "abaculus": { "version": "1.1.0-cdb4", diff --git a/package.json b/package.json index 348482bd..65f82c6b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.28.1", + "version": "2.29.0", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" @@ -26,7 +26,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "1.13.2", + "windshaft": "1.14.0", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From e7da9a151b207b8f4cdbfd54e0e5c0f09af91a4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 14 Mar 2016 14:47:02 +0100 Subject: [PATCH 09/18] Stubs next version --- NEWS.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index caedeb39..baeb5761 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.29.1 + +Released 2016-mm-dd + + ## 2.29.0 Released 2016-03-14 diff --git a/package.json b/package.json index 65f82c6b..92954cc6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.29.0", + "version": "2.29.1", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From d52d3d909f14e4a2f63670e6aa80b3da5e52e7fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 14 Mar 2016 15:25:56 +0100 Subject: [PATCH 10/18] Fixed double-check error in turbo-cartocss preprocesing. --- lib/cartodb/models/mapconfig/named_map_provider.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/models/mapconfig/named_map_provider.js b/lib/cartodb/models/mapconfig/named_map_provider.js index a31bda13..ebf1f55c 100644 --- a/lib/cartodb/models/mapconfig/named_map_provider.js +++ b/lib/cartodb/models/mapconfig/named_map_provider.js @@ -97,7 +97,11 @@ NamedMapMapConfigProvider.prototype.getMapConfig = function(callback) { var next = this; self.turboCartoCssAdapter.getLayers(self.owner, _mapConfig.layers, function (err, layers) { - if (!err && layers) { + if (err) { + return next(err); + } + + if (layers) { _mapConfig.layers = layers; } From 5cc3e914fa5501c48d48d0ae1e8c389d865ca290 Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 14 Mar 2016 11:34:52 -0400 Subject: [PATCH 11/18] added missing bracket, removed note about API key --- docs/named_maps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 6fe63a4e..14149cad 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -498,7 +498,7 @@ You can use a Named Map that you created (which is defined by its `name`), to cr ### Fetching XYZ tiles for Named Maps -Optionally, authenticated users can fetch projected tiles (XYZ tiles or Mapnik Retina tiles) for your Named Map. This does not require an API Key. +Optionally, authenticated users can fetch projected tiles (XYZ tiles or Mapnik Retina tiles) for your Named Map. #### Fetch XYZ tiles directly with a URL @@ -510,7 +510,7 @@ To call a template_id in a URL: For example, a complete URL might appear as: -"https://{your user name}.cartodb.com/api/v1/map/named/{template_id/{layer}/{z}/{x}/{y}.png" +"https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/{layer}/{z}/{x}/{y}.png" The placeholders indicate the following: From 86232eb239b3cfe2608612e0a02f0ac7a73631a1 Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 14 Mar 2016 11:51:07 -0400 Subject: [PATCH 12/18] clarified mapnik description and removed unnecessary content, as instructed by Carla --- docs/named_maps.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 14149cad..d111ea97 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -516,24 +516,16 @@ The placeholders indicate the following: - [`template_id`](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response)) is the response of your Named Map. - layers can be a number (referring to the # layer of your map), all layers of your map, or a list of layers. - - To show just the basemap layer, enter the number value `0` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/`0`/{z}/{x}/{y}.png" - - To show the first layer, enter the number value `1` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/`1`/{z}/{x}/{y}.png" + - To show just the basemap layer, enter the number value `0` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/0/{z}/{x}/{y}.png" + - To show the first layer, enter the number value `1` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/1/{z}/{x}/{y}.png" - To show all layers, enter the value `all` for the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/all/{z}/{x}/{y}.png" - - To show a [list of layers](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/#blending-and-layer-selection), enter the comma separated layer value as `0,1,2` in the layer placeholder. For example, to show the basemap and the first layer, "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/`0,1`/{z}/{x}/{y}.png" + - To show a [list of layers](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/#blending-and-layer-selection), enter the comma separated layer value as 0,1,2 in the layer placeholder. For example, to show the basemap and the first layer, "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/0,1/{z}/{x}/{y}.png" #### Get Mapnik Retina Tiles -Mapnik Retina tiles ignore the Named Map template_id and obtains the [Layergroup `srid`](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations) as the key value used to initialize the map. Note that it obtains the retina tiles that are not related to basemaps. +Mapnik Retina tiles are not directly supported for Named Maps, so you cannot use the Named Map template_id. To get Mapnik Retina tiles, use the [Layergroup `srid`](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations) as the key value used to initialize the map. - To get this layergroup token from your template_id, you need to instantiate the map with the JSONP call: + To get this layergroup token from your template_id, you need to instantiate the map with this request: `:token/:z/:x/:y@:scale_factor?x.:format` - -For example, a complete JSONP call might appear as: - -```javascript -GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/{token}/{z}/{x}/{y@:scale_factor?x.}{format}{:user(f),:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1) -Notes: Mapnik retina tiles [0] -``` -**Tip:** This is the code defined as "Mapnik retina tiles" in the [Windshaft-cartodb Routes list](https://github.com/CartoDB/Windshaft-cartodb/blob/723dc59490f774c680efb74ab19fa2a556c66d9d/docs/Routes.md#routes-list). From c6085779a4e9901ddc83919e4ff0493504a976fe Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 14 Mar 2016 12:25:59 -0400 Subject: [PATCH 13/18] use the layergroupid, not SRID, as the mapnik token --- docs/named_maps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index d111ea97..3994cfb7 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -524,8 +524,8 @@ The placeholders indicate the following: #### Get Mapnik Retina Tiles -Mapnik Retina tiles are not directly supported for Named Maps, so you cannot use the Named Map template_id. To get Mapnik Retina tiles, use the [Layergroup `srid`](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/#layergroup-configurations) as the key value used to initialize the map. +Mapnik Retina tiles are not directly supported for Named Maps, so you cannot use the Named Map template_id. To fetch Mapnik Retina tiles, get the [layergroupid](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response-1) to initialize the map. - To get this layergroup token from your template_id, you need to instantiate the map with this request: +Instantiate the map by using the `layergroupid` as the token value: `:token/:z/:x/:y@:scale_factor?x.:format` From 35cb652c6c064e46bfa1319c8f2c04776213721b Mon Sep 17 00:00:00 2001 From: csobier Date: Mon, 14 Mar 2016 13:01:10 -0400 Subject: [PATCH 14/18] edited token placeholder for consistency --- docs/named_maps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 3994cfb7..0cc30bec 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -526,6 +526,6 @@ The placeholders indicate the following: Mapnik Retina tiles are not directly supported for Named Maps, so you cannot use the Named Map template_id. To fetch Mapnik Retina tiles, get the [layergroupid](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response-1) to initialize the map. -Instantiate the map by using the `layergroupid` as the token value: +Instantiate the map by using your `layergroupid` in the token placeholder: `:token/:z/:x/:y@:scale_factor?x.:format` From 2ebab4c89e7c5598f3003c8fa520d2117911e516 Mon Sep 17 00:00:00 2001 From: csobier Date: Tue, 15 Mar 2016 09:08:28 -0400 Subject: [PATCH 15/18] moved fetch tiles section up one heading level --- docs/named_maps.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 0cc30bec..c933693a 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -496,11 +496,11 @@ You can use a Named Map that you created (which is defined by its `name`), to cr - [Toggling sublayers in a Named Map](http://bl.ocks.org/ohasselblad/c1a0f4913610eec53cd3) -### Fetching XYZ tiles for Named Maps +## Fetching XYZ Tiles for Named Maps Optionally, authenticated users can fetch projected tiles (XYZ tiles or Mapnik Retina tiles) for your Named Map. -#### Fetch XYZ tiles directly with a URL +### Fetch XYZ Tiles Directly with a URL Authenticated users, with an auth token, can use XYZ-based URLs to fetch tiles directly, and instantiate the Named Map as part of the request to your application. You do not have to do any other steps to initialize your map. @@ -514,7 +514,7 @@ For example, a complete URL might appear as: The placeholders indicate the following: -- [`template_id`](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response)) is the response of your Named Map. +- [`template_id`](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response) is the response of your Named Map. - layers can be a number (referring to the # layer of your map), all layers of your map, or a list of layers. - To show just the basemap layer, enter the number value `0` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/0/{z}/{x}/{y}.png" - To show the first layer, enter the number value `1` in the layer placeholder "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/1/{z}/{x}/{y}.png" @@ -522,7 +522,7 @@ The placeholders indicate the following: - To show a [list of layers](http://docs.cartodb.com/cartodb-platform/maps-api/anonymous-maps/#blending-and-layer-selection), enter the comma separated layer value as 0,1,2 in the layer placeholder. For example, to show the basemap and the first layer, "https://{your user name}.cartodb.com/api/v1/map/named/{template_id}/0,1/{z}/{x}/{y}.png" -#### Get Mapnik Retina Tiles +### Get Mapnik Retina Tiles Mapnik Retina tiles are not directly supported for Named Maps, so you cannot use the Named Map template_id. To fetch Mapnik Retina tiles, get the [layergroupid](http://docs.cartodb.com/cartodb-platform/maps-api/named-maps/#response-1) to initialize the map. From 4089e8537ac47d3dd53fb4d6c692b3bf4dea1ec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Tue, 15 Mar 2016 17:35:13 +0100 Subject: [PATCH 16/18] Upgraded windshaft to version 1.15.0 --- npm-shrinkwrap.json | 520 ++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 261 insertions(+), 261 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 98454bc3..19fee67b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,101 +1,101 @@ { "name": "windshaft-cartodb", - "version": "2.28.1", + "version": "2.29.1", "dependencies": { "body-parser": { "version": "1.14.2", - "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", + "from": "body-parser@>=1.14.0 <1.15.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { "version": "2.2.0", - "from": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", + "from": "bytes@2.2.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.1", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "depd": { "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "from": "depd@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "from": "statuses@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "iconv-lite": { "version": "0.4.13", - "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "from": "iconv-lite@0.4.13", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "on-finished": { "version": "2.3.0", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { "version": "5.2.0", - "from": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", + "from": "qs@5.2.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { "version": "2.1.6", - "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", + "from": "raw-body@>=2.1.5 <2.2.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", "dependencies": { "bytes": { "version": "2.3.0", - "from": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", + "from": "bytes@2.3.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz" }, "unpipe": { "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "from": "unpipe@1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.12", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", + "from": "type-is@>=1.6.10 <1.7.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "from": "media-typer@0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.10", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", + "from": "mime-types@>=2.1.10 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", + "from": "mime-db@>=1.22.0 <1.23.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } @@ -106,22 +106,22 @@ }, "cartodb-psql": { "version": "0.4.0", - "from": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", + "from": "cartodb-psql@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", "dependencies": { "pg": { "version": "2.6.2-cdb1", - "from": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", + "from": "git://github.com/CartoDB/node-postgres.git#2.6.2-cdb1", "resolved": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", "dependencies": { "generic-pool": { "version": "2.0.3", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz", + "from": "generic-pool@2.0.3", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz" }, "buffer-writer": { "version": "1.0.0", - "from": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz", + "from": "buffer-writer@1.0.0", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" } } @@ -130,42 +130,42 @@ }, "cartodb-query-tables": { "version": "0.1.0", - "from": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz", + "from": "cartodb-query-tables@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz" }, "cartodb-redis": { "version": "0.13.0", - "from": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", + "from": "cartodb-redis@>=0.13.0 <0.14.0", "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { "redis-mpool": { "version": "0.1.0", - "from": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", + "from": "git://github.com/CartoDB/node-redis-mpool.git#0.1.0", "resolved": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", + "from": "redis@>=0.12.1 <0.13.0", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", + "from": "hiredis@>=0.1.17 <0.2.0", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "from": "bindings@*", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", + "from": "nan@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -176,228 +176,228 @@ }, "debug": { "version": "2.2.0", - "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "from": "debug@>=2.2.0 <2.3.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "dot": { "version": "1.0.3", - "from": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz", + "from": "dot@>=1.0.2 <1.1.0", "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" }, "express": { "version": "4.13.4", - "from": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", + "from": "express@>=4.13.3 <4.14.0", "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "dependencies": { "accepts": { "version": "1.2.13", - "from": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "from": "accepts@>=1.2.12 <1.3.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { "version": "2.1.10", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", + "from": "mime-db@>=1.22.0 <1.23.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } }, "negotiator": { "version": "0.5.3", - "from": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "from": "negotiator@0.5.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" } } }, "array-flatten": { "version": "1.1.1", - "from": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "from": "array-flatten@1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, "content-disposition": { "version": "0.5.1", - "from": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", + "from": "content-disposition@0.5.1", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" }, "content-type": { "version": "1.0.1", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "cookie": { "version": "0.1.5", - "from": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz", + "from": "cookie@0.1.5", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" }, "cookie-signature": { "version": "1.0.6", - "from": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "from": "cookie-signature@1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" }, "depd": { "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "from": "depd@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "escape-html": { "version": "1.0.3", - "from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "from": "escape-html@>=1.0.3 <1.1.0", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "etag": { "version": "1.7.0", - "from": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "from": "etag@>=1.7.0 <1.8.0", "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" }, "finalhandler": { "version": "0.4.1", - "from": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", + "from": "finalhandler@0.4.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "from": "unpipe@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "fresh": { "version": "0.3.0", - "from": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "from": "fresh@0.3.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" }, "merge-descriptors": { "version": "1.0.1", - "from": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "from": "merge-descriptors@1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" }, "methods": { "version": "1.1.2", - "from": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "from": "methods@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "on-finished": { "version": "2.3.0", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "parseurl": { "version": "1.3.1", - "from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "from": "parseurl@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" }, "path-to-regexp": { "version": "0.1.7", - "from": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "from": "path-to-regexp@0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "proxy-addr": { "version": "1.0.10", - "from": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", + "from": "proxy-addr@>=1.0.10 <1.1.0", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", - "from": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "from": "forwarded@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { "version": "1.0.5", - "from": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", + "from": "ipaddr.js@1.0.5", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, "qs": { "version": "4.0.0", - "from": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "from": "qs@4.0.0", "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" }, "range-parser": { "version": "1.0.3", - "from": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "from": "range-parser@>=1.0.3 <1.1.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" }, "send": { "version": "0.13.1", - "from": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", + "from": "send@0.13.1", "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "dependencies": { "destroy": { "version": "1.0.4", - "from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "from": "destroy@>=1.0.4 <1.1.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, "http-errors": { "version": "1.3.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "mime": { "version": "1.3.4", - "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "from": "mime@1.3.4", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" }, "ms": { "version": "0.7.1", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "from": "statuses@>=1.2.1 <1.3.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "serve-static": { "version": "1.10.2", - "from": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz", + "from": "serve-static@>=1.10.2 <1.11.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz" }, "type-is": { "version": "1.6.12", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", + "from": "type-is@>=1.6.6 <1.7.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "from": "media-typer@0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.10", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", + "from": "mime-db@>=1.22.0 <1.23.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } @@ -406,19 +406,19 @@ }, "utils-merge": { "version": "1.0.0", - "from": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "from": "utils-merge@1.0.0", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" }, "vary": { "version": "1.0.1", - "from": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "from": "vary@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" } } }, "fastly-purge": { "version": "1.0.1", - "from": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz", + "from": "fastly-purge@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz" }, "log4js": { @@ -428,96 +428,96 @@ "dependencies": { "async": { "version": "0.2.10", - "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "from": "async@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "readable-stream": { "version": "1.0.33", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "from": "readable-stream@>=1.0.2 <1.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "from": "isarray@0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "semver": { "version": "4.3.6", - "from": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "from": "semver@>=4.3.3 <4.4.0", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "underscore": { "version": "1.8.2", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz", + "from": "underscore@1.8.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" } } }, "lru-cache": { "version": "2.6.5", - "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", + "from": "lru-cache@2.6.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" }, "lzma": { "version": "1.3.7", - "from": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz", + "from": "lzma@>=1.3.7 <1.4.0", "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" }, "node-statsd": { "version": "0.0.7", - "from": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz", + "from": "node-statsd@>=0.0.7 <0.1.0", "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" }, "queue-async": { "version": "1.0.7", - "from": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz", + "from": "queue-async@>=1.0.7 <1.1.0", "resolved": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz" }, "redis-mpool": { "version": "0.4.0", - "from": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", + "from": "redis-mpool@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", + "from": "redis@>=0.12.1 <0.13.0", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", + "from": "hiredis@>=0.1.17 <0.2.0", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "from": "bindings@*", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", + "from": "nan@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -526,47 +526,47 @@ }, "request": { "version": "2.62.0", - "from": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", + "from": "request@>=2.62.0 <2.63.0", "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "dependencies": { "bl": { "version": "1.0.3", - "from": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "from": "bl@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "dependencies": { "readable-stream": { - "version": "2.0.5", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", + "version": "2.0.6", + "from": "readable-stream@>=2.0.5 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "version": "1.0.0", + "from": "isarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "process-nextick-args": { "version": "1.0.6", - "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", + "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { "version": "1.0.2", - "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "from": "util-deprecate@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -575,254 +575,254 @@ }, "caseless": { "version": "0.11.0", - "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "from": "caseless@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "extend": { "version": "3.0.0", - "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "from": "extend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "from": "forever-agent@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc3", - "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "from": "form-data@>=1.0.0-rc1 <1.1.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "from": "async@>=1.4.0 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "json-stringify-safe": { "version": "5.0.1", - "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "from": "json-stringify-safe@>=5.0.0 <5.1.0", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.10", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", + "from": "mime-types@>=2.1.2 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", + "from": "mime-db@>=1.22.0 <1.23.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", + "from": "node-uuid@>=1.4.0 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "qs": { "version": "5.1.0", - "from": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "from": "qs@>=5.1.0 <5.2.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { "version": "0.4.2", - "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz", + "from": "tunnel-agent@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tough-cookie": { - "version": "2.2.1", - "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + "version": "2.2.2", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "http-signature": { "version": "0.11.0", - "from": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "from": "http-signature@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "from": "assert-plus@>=0.1.5 <0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, "asn1": { "version": "0.1.11", - "from": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "from": "asn1@0.1.11", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, "ctype": { "version": "0.5.3", - "from": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "from": "ctype@0.5.3", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" } } }, "oauth-sign": { "version": "0.8.1", - "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz", + "from": "oauth-sign@>=0.8.0 <0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "hawk": { "version": "3.1.3", - "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "from": "hawk@>=3.1.0 <3.2.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "from": "hoek@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "from": "cryptiles@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "from": "sntp@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { "version": "0.5.0", - "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "from": "aws-sign2@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, "stringstream": { "version": "0.0.5", - "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "from": "stringstream@>=0.0.4 <0.1.0", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "from": "combined-stream@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "from": "delayed-stream@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "isstream": { "version": "0.1.2", - "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "from": "isstream@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "har-validator": { "version": "1.8.0", - "from": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "from": "har-validator@>=1.6.1 <2.0.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { "version": "2.10.2", - "from": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", + "from": "bluebird@>=2.9.30 <3.0.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.1", - "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.2.0", - "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", + "from": "ansi-styles@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", "dependencies": { "color-convert": { "version": "1.0.0", - "from": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz", + "from": "color-convert@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz" } } }, "escape-string-regexp": { "version": "1.0.5", - "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "from": "has-ansi@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "from": "commander@>=2.8.1 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "from": "graceful-readlink@>=1.0.0", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.13.1", - "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", + "from": "is-my-json-valid@>=2.12.0 <3.0.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "from": "generate-function@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "from": "generate-object-property@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", + "from": "jsonpointer@2.0.0", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } @@ -833,164 +833,164 @@ }, "step": { "version": "0.0.6", - "from": "https://registry.npmjs.org/step/-/step-0.0.6.tgz", + "from": "step@>=0.0.6 <0.1.0", "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" }, "step-profiler": { "version": "0.2.1", - "from": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz", + "from": "step-profiler@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz" }, "turbo-cartocss": { "version": "0.4.0", - "from": "https://registry.npmjs.org/turbo-cartocss/-/turbo-cartocss-0.4.0.tgz", + "from": "turbo-cartocss@0.4.0", "resolved": "https://registry.npmjs.org/turbo-cartocss/-/turbo-cartocss-0.4.0.tgz", "dependencies": { "browser-request": { "version": "0.3.3", - "from": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", + "from": "browser-request@>=0.3.3 <0.4.0", "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz" }, "colorbrewer": { "version": "0.0.2", - "from": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-0.0.2.tgz", + "from": "colorbrewer@0.0.2", "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-0.0.2.tgz" }, "es6-promise": { "version": "3.1.2", - "from": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.1.2.tgz", + "from": "es6-promise@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.1.2.tgz" }, "less": { "version": "2.6.1", - "from": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", + "from": "less@>=2.5.3 <3.0.0", "resolved": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", "dependencies": { "errno": { "version": "0.1.4", - "from": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "from": "errno@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "dependencies": { "prr": { "version": "0.0.0", - "from": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "from": "prr@>=0.0.0 <0.1.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" } } }, "graceful-fs": { "version": "4.1.3", - "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz", + "from": "graceful-fs@>=4.1.2 <5.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" }, "image-size": { "version": "0.4.0", - "from": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz", + "from": "image-size@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz" }, "mime": { "version": "1.3.4", - "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "from": "mime@>=1.2.11 <2.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" }, "mkdirp": { "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "from": "mkdirp@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "promise": { "version": "7.1.1", - "from": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", + "from": "promise@>=7.1.1 <8.0.0", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", "dependencies": { "asap": { "version": "2.0.3", - "from": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz", + "from": "asap@>=2.0.3 <2.1.0", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" } } }, "source-map": { "version": "0.5.3", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz", + "from": "source-map@>=0.5.3 <0.6.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" } } }, "postcss": { "version": "5.0.19", - "from": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz", + "from": "postcss@>=5.0.13 <6.0.0", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz", "dependencies": { "supports-color": { "version": "3.1.2", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "from": "supports-color@>=3.1.2 <4.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "dependencies": { "has-flag": { "version": "1.0.0", - "from": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "from": "has-flag@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" } } }, "source-map": { "version": "0.5.3", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz", + "from": "source-map@>=0.5.1 <0.6.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" }, "js-base64": { "version": "2.1.9", - "from": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "from": "js-base64@>=2.1.9 <3.0.0", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" } } }, "postcss-value-parser": { "version": "3.3.0", - "from": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "from": "postcss-value-parser@>=3.2.3 <4.0.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" }, "querystring": { "version": "0.2.0", - "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "from": "querystring@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" }, "request": { "version": "2.69.0", - "from": "https://registry.npmjs.org/request/-/request-2.69.0.tgz", + "from": "request@>=2.67.0 <3.0.0", "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz", "dependencies": { "aws-sign2": { "version": "0.6.0", - "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "from": "aws-sign2@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { "version": "1.3.2", - "from": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", + "from": "aws4@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", "dependencies": { "lru-cache": { "version": "4.0.0", - "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", + "from": "lru-cache@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", "dependencies": { "pseudomap": { "version": "1.0.2", - "from": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "from": "pseudomap@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" }, "yallist": { "version": "2.0.0", - "from": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz", + "from": "yallist@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" } } @@ -999,42 +999,42 @@ }, "bl": { "version": "1.0.3", - "from": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "from": "bl@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "dependencies": { "readable-stream": { - "version": "2.0.5", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", + "version": "2.0.6", + "from": "readable-stream@>=2.0.5 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "version": "1.0.0", + "from": "isarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "process-nextick-args": { "version": "1.0.6", - "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", + "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { "version": "1.0.2", - "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "from": "util-deprecate@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -1043,155 +1043,155 @@ }, "caseless": { "version": "0.11.0", - "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "from": "caseless@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "from": "combined-stream@>=1.0.5 <1.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "from": "delayed-stream@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "extend": { "version": "3.0.0", - "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "from": "extend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "from": "forever-agent@>=0.6.1 <0.7.0", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc3", - "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "from": "form-data@>=1.0.0-rc3 <1.1.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "from": "async@>=1.4.0 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "har-validator": { "version": "2.0.6", - "from": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "from": "har-validator@>=2.0.6 <2.1.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "dependencies": { "chalk": { "version": "1.1.1", - "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "from": "chalk@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.2.0", - "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", + "from": "ansi-styles@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz", "dependencies": { "color-convert": { "version": "1.0.0", - "from": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz", + "from": "color-convert@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz" } } }, "escape-string-regexp": { "version": "1.0.5", - "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "from": "has-ansi@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "from": "commander@>=2.9.0 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "from": "graceful-readlink@>=1.0.0", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.13.1", - "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", + "from": "is-my-json-valid@>=2.12.4 <3.0.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "from": "generate-function@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "from": "generate-object-property@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", + "from": "jsonpointer@2.0.0", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } }, "pinkie-promise": { "version": "2.0.0", - "from": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", + "from": "pinkie-promise@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", "dependencies": { "pinkie": { "version": "2.0.4", - "from": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "from": "pinkie@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" } } @@ -1200,103 +1200,103 @@ }, "hawk": { "version": "3.1.3", - "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "from": "hawk@>=3.1.0 <3.2.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "from": "hoek@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "from": "cryptiles@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "from": "sntp@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "http-signature": { "version": "1.1.1", - "from": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "from": "http-signature@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "dependencies": { "assert-plus": { "version": "0.2.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "from": "assert-plus@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" }, "jsprim": { "version": "1.2.2", - "from": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", + "from": "jsprim@>=1.2.2 <2.0.0", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", "dependencies": { "extsprintf": { "version": "1.0.2", - "from": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "from": "extsprintf@1.0.2", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" }, "json-schema": { "version": "0.2.2", - "from": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz", + "from": "json-schema@0.2.2", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" }, "verror": { "version": "1.3.6", - "from": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "from": "verror@1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" } } }, "sshpk": { "version": "1.7.4", - "from": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz", + "from": "sshpk@>=1.7.0 <2.0.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz", "dependencies": { "asn1": { "version": "0.2.3", - "from": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "from": "asn1@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" }, "dashdash": { "version": "1.13.0", - "from": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", + "from": "dashdash@>=1.10.1 <2.0.0", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", "dependencies": { "assert-plus": { "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" } } }, "jsbn": { "version": "0.1.0", - "from": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", + "from": "jsbn@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" }, "tweetnacl": { "version": "0.14.1", - "from": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.1.tgz", + "from": "tweetnacl@>=0.13.0 <1.0.0", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.1.tgz" }, "jodid25519": { "version": "1.0.2", - "from": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "from": "jodid25519@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" }, "ecc-jsbn": { "version": "0.1.1", - "from": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" } } @@ -1305,59 +1305,59 @@ }, "is-typedarray": { "version": "1.0.0", - "from": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "from": "is-typedarray@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" }, "isstream": { "version": "0.1.2", - "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "from": "isstream@>=0.1.2 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "json-stringify-safe": { "version": "5.0.1", - "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "from": "json-stringify-safe@>=5.0.1 <5.1.0", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.10", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", + "from": "mime-types@>=2.1.7 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", "dependencies": { "mime-db": { "version": "1.22.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz", + "from": "mime-db@>=1.22.0 <1.23.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", + "from": "node-uuid@>=1.4.7 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "oauth-sign": { "version": "0.8.1", - "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz", + "from": "oauth-sign@>=0.8.0 <0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "qs": { "version": "6.0.2", - "from": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz", + "from": "qs@>=6.0.2 <6.1.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" }, "stringstream": { "version": "0.0.5", - "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "from": "stringstream@>=0.0.4 <0.1.0", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "tough-cookie": { - "version": "2.2.1", - "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + "version": "2.2.2", + "from": "tough-cookie@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "tunnel-agent": { "version": "0.4.2", - "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz", + "from": "tunnel-agent@>=0.4.1 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" } } @@ -1366,13 +1366,13 @@ }, "underscore": { "version": "1.6.0", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "from": "underscore@>=1.6.0 <1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.14.0", - "from": "windshaft@1.14.0", - "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.14.0.tgz", + "version": "1.15.0", + "from": "windshaft@1.15.0", + "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.15.0.tgz", "dependencies": { "abaculus": { "version": "1.1.0-cdb4", diff --git a/package.json b/package.json index 92954cc6..c5c33490 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "1.14.0", + "windshaft": "1.15.0", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From 8d5551343b00508efcb6f041ee95663d0b470fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Tue, 15 Mar 2016 17:40:26 +0100 Subject: [PATCH 17/18] Release 2.30.0 --- NEWS.md | 7 +++++-- package.json | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/NEWS.md b/NEWS.md index baeb5761..475c9884 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,11 @@ # Changelog -## 2.29.1 +## 2.30.0 -Released 2016-mm-dd +Released 2016-03-15 + +Announcements: + - Upgrades windshaft to [1.15.0](https://github.com/CartoDB/Windshaft/releases/tag/1.15.0) ## 2.29.0 diff --git a/package.json b/package.json index c5c33490..63226176 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.29.1", + "version": "2.30.0", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From c0370c57037ca10813d26d72873518f6f7bca9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Tue, 15 Mar 2016 17:45:50 +0100 Subject: [PATCH 18/18] Stubs next version --- NEWS.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 475c9884..aeb01d2c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.30.1 + +Released 2016-mm-dd + + ## 2.30.0 Released 2016-03-15 diff --git a/package.json b/package.json index 63226176..e91d0f13 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.30.0", + "version": "2.30.1", "description": "A map tile server for CartoDB", "keywords": [ "cartodb"