open-index/open-npm huggingface dataset:
npm package: @kartotherian/autogen
Description: Tile source to dynamically create tiles if its missing in the storage
Author: Yuri Astrakhan
Latest version: 1.0.1-wmf.0

[![Build Status](https://travis-ci.org/kartotherian/autogen.svg?branch=master)](https://travis-ci.org/kartotherian/autogen)

# @kartotherian/autogen
Tile source to dynamically create tiles if its missing in the storage

## Usage examples

Scenario: Tiles are stored in a storage (e.g. Cassandra), but not all zoom levels are done. This source will attempt
 to get the tile from the storage, but if its not available, will get the tile from the generator source, and save
 it in the storage.

```
store:
  uri: cassandra://...

gen:
  uri: bridge://
  xml:
    npm: ["osm-bright-source", "data.xml"]

dyn:
  uri: autogen://
  params:
    storage: {ref: store}
    generator: {ref: gen}
    # Optional:
    mingen: 10  # Only generate tiles if missing within this zoom range
    maxgen: 18
    minstore: 10  # if generated, only store them if within this zoom range 
    maxstore: 15
```

See https://github.com/kartotherian/kartotherian
npm package: @kartotherian/babel
Description: Tile source to support multilingual maps
Author: Yuri Astrakhan
Latest version: 1.0.1-wmf.0

[![Build Status](https://travis-ci.org/kartotherian/babel.svg?branch=master)](https://travis-ci.org/kartotherian/babel)
[![Coverage Status](https://coveralls.io/repos/github/kartotherian/babel/badge.svg)](https://coveralls.io/github/kartotherian/babel)

# @kartotherian/babel
Tile source to restructure vector PBFs for multilingual usecases, such as convert a single JSON object into multiple key/values, or to replace all language key/value names with a single one.  

## Usage examples

Tile is generated with 'name_' field set a JSON-encoded key-value object.
Babel can be used to convert that tile to a tile, with each value in the object becoming
a tag of its own, e.g. 'name_en', 'name_fr', ... . Also, babel can be used to replace
multiple 'name_lang' tags with a single 'name_' tag right before rendering it, choosing the best
language based on the fallback rules, but only if it is different from the 'name' tag.

```yaml
# Process tiles from 'gen' source, expanding json string into multiple tags
json2tags:
  uri: json2tags://
  params:
    source: {ref: gen}
    tag: name   # optional, 'name' is the default
```


```yaml
# Process tiles from 'store' source, replacing all 'name_*' tags with a single 'name' tag
babel:
  uri: babel://
  params:
    source: {ref: store}
    
    # optional, 'name' is the default
    tag: name
    
    # optional, used by default if no 'lang' code is passed to getAsync()
    defaultLanguage: 'en' 
    
    # optional map of fallback values. Can be a json file or an object value
    languageMap: '/my/path/fallback.json'
    
    # -- OR --
    
    languageMap:
      en: ['fr', 'es', 'de']
      ru: ['be']
```

## Language resolution
For `babel://`, the language of the `name_` is chosen based on these rules:

`getAsync({z,x,y, lang:'xx')`:
 * `name_xx`
 * Use explicitly set fallbacks from the languageMap
 * Use any `name_yy-Script` where `Script` is the script of `xx`. E.g. if `lang=ru`, pick any `lang_yy-Cyrl`.
 * If `xx` uses the Latin script, use any `name_zz_rm`
 * `name`

## Scripts

Babel gets the CLDR defined script name (Latn, Cyrl, ... ) based on the language code. It also uses a few overrides from the `overrides.json`. This file should be updated with any language IDs found in OSM data.
npm package: @kartotherian/cassandra
Description: Cassandra tile storage for Kartotherian map tile server
Author: Yuri Astrakhan
Latest version: 1.0.1-wmf.0

[![Build Status](https://travis-ci.org/kartotherian/cassandra.svg?branch=master)](https://travis-ci.org/kartotherian/cassandra)

# @kartotherian/cassandra
Cassandra tile storage for Kartotherian map tile server

See https://github.com/kartotherian/kartotherian
npm package: @kartotherian/demultiplexer
Description: Tile source that directs tile requests to different tile sources depending on the zoom level
Author: Yuri Astrakhan
Latest version: 0.0.10

[![Build Status](https://travis-ci.org/kartotherian/demultiplexer.svg?branch=master)](https://travis-ci.org/kartotherian/demultiplexer)

# @kartotherian/demultiplexer
Tile source that directs tile requests to different tile sources depending on the zoom level

## Usage examples

Scenario: There are two different tile sources, one with the low-zoom earth imagery, and another with the detailed vector-based high-zoom data. Demultiplexer would allow us to return low zoom tiles (e.g. before zoom 6) from one source, and high zoom tiles from another.

```
storeLow:
  uri: cassandra://...

storeHigh:
  uri: cassandra://...

mix:
  uri: demultiplexer://
  params:
    source1: {ref: storeLow}
    from1: 0
    before1: 6
    source2: {ref: storeHigh}
    from2: 6
    before2: 18
```

fromN is inclusive, beforeN is exclusive. Configuration must specify a non-duplicate source for every zoom level between minimum and maximum, but minimum may be non-zero.

See https://github.com/kartotherian/kartotherian