@basemaps/cli-vector 8.6.0 → 8.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli/cli.create.js +82 -70
- package/build/cli/cli.create.js.map +1 -1
- package/build/modify/layers/place_labels.d.ts +1 -9
- package/build/modify/layers/place_labels.js +11 -81
- package/build/modify/layers/place_labels.js.map +1 -1
- package/build/modify/parser.d.ts +6 -10
- package/build/modify/parser.js +5 -14
- package/build/modify/parser.js.map +1 -1
- package/build/util.js +1 -1
- package/build/util.js.map +1 -1
- package/dist/index.cjs +4035 -1218
- package/package.json +5 -5
- package/build/modify/schema.d.ts +0 -15
- package/build/modify/schema.js +0 -2
- package/build/modify/schema.js.map +0 -1
package/build/cli/cli.create.js
CHANGED
|
@@ -108,18 +108,24 @@ async function downloadSourceFile({ stac, tmpPaths }, logger) {
|
|
|
108
108
|
throw new Error(`Stac file missing linz_basemaps:options ${stac.id}`);
|
|
109
109
|
const layer = options.layer;
|
|
110
110
|
logger.info({ source: layer.source, id: layer.id, name: layer.name }, 'DownloadSourceFile: Start');
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
try {
|
|
112
|
+
if (!(await fsa.exists(tmpPaths.source.path))) {
|
|
113
|
+
// TODO: We don't acturally need to head file from lds-cache here.
|
|
114
|
+
// As the fsa.stream doesn't retry to register roles, we need head to register it.
|
|
115
|
+
// We could delete this once that is fixed.
|
|
116
|
+
const stats = await fsa.head(new URL(layer.source));
|
|
117
|
+
logger.debug({ size: stats?.size, ContentType: stats?.contentType, LastModified: stats?.lastModified }, 'DownloadSourceFile: stats');
|
|
118
|
+
const stream = fsa.readStream(new URL(layer.source));
|
|
119
|
+
await fsa.write(tmpPaths.source.path, stream.pipe(createGunzip()), {
|
|
120
|
+
contentType: tmpPaths.source.contentType,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
logger.info({ destination: tmpPaths.source.path, id: layer.id, name: layer.name }, 'DownloadSourceFile: End');
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
logger.error({ source: layer.source, id: layer.id, name: layer.name }, 'DownloadSourceFile: Error');
|
|
127
|
+
throw error;
|
|
121
128
|
}
|
|
122
|
-
logger.info({ destination: tmpPaths.source.path, id: layer.id, name: layer.name }, 'DownloadSourceFile: End');
|
|
123
129
|
}
|
|
124
130
|
/**
|
|
125
131
|
* Generates an Mbtiles file from the given VectorStacItem's source file. Steps:
|
|
@@ -144,68 +150,74 @@ async function createMbtilesFile({ stac, tmpPaths }, logger) {
|
|
|
144
150
|
if (tileMatrix == null)
|
|
145
151
|
throw new Error(`Tile matrix ${options.tileMatrix} is not supported`);
|
|
146
152
|
logger.info({ shortbreadLayer, dataset: layer.name }, 'CreateMbtilesFile: Start');
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
await
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
await
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
await fsa.write(tmpPaths.mbtilesCopy, fsa.readStream(tmpPaths.mbtiles));
|
|
180
|
-
// Ensure the mbtiles file was copied successfully
|
|
153
|
+
try {
|
|
154
|
+
/**
|
|
155
|
+
* Convert the source file into an ndjson
|
|
156
|
+
*/
|
|
157
|
+
logger.info({ source: tmpPaths.source.path, dataset: layer.name }, '[1/5] Convert source file to ndjson: Start');
|
|
158
|
+
if (!(await fsa.exists(tmpPaths.ndjson))) {
|
|
159
|
+
await ogr2ogrNDJson(tmpPaths.source.path, tmpPaths.ndjson, layer, logger);
|
|
160
|
+
}
|
|
161
|
+
logger.info({ destination: tmpPaths.ndjson, dataset: layer.name }, '[1/5] Convert source file to ndjson: End');
|
|
162
|
+
/**
|
|
163
|
+
* Parse the ndjson file and apply the generalization options
|
|
164
|
+
*/
|
|
165
|
+
logger.info({ source: tmpPaths.ndjson, dataset: layer.name }, '[2/5] Generalise ndjson features: Start');
|
|
166
|
+
let metrics = null;
|
|
167
|
+
if (!(await fsa.exists(tmpPaths.genNdjson))) {
|
|
168
|
+
metrics = await generalize(tmpPaths.ndjson, tmpPaths.genNdjson, tileMatrix, options, logger);
|
|
169
|
+
if (metrics.output === 0)
|
|
170
|
+
throw new Error(`Failed to generalize ndjson file ${tmpPaths.ndjson.href}`);
|
|
171
|
+
}
|
|
172
|
+
logger.info({ destination: tmpPaths.genNdjson, dataset: layer.name }, '[2/5] Generalise ndjson features: End');
|
|
173
|
+
/**
|
|
174
|
+
* Transform the generalized ndjson file to an mbtiles file
|
|
175
|
+
*/
|
|
176
|
+
logger.info({ source: tmpPaths.genNdjson, dataset: layer.name }, '[3/5] Transform generalised ndjson into mbtiles: Start');
|
|
177
|
+
if (!(await fsa.exists(tmpPaths.mbtiles))) {
|
|
178
|
+
await tippecanoe(tmpPaths.genNdjson, tmpPaths.mbtiles, layer, tileMatrix, logger);
|
|
179
|
+
}
|
|
180
|
+
logger.info({ destination: tmpPaths.mbtiles, dataset: layer.name }, '[3/5] Transform generalised ndjson into mbtiles: End');
|
|
181
|
+
/**
|
|
182
|
+
* Copy the mbtiles file to the same directory as the Vector Stac Item file
|
|
183
|
+
*/
|
|
184
|
+
logger.info({ source: tmpPaths.mbtiles, dataset: layer.name }, '[4/5] Copy mbtiles to stac location: Start');
|
|
181
185
|
if (!(await fsa.exists(tmpPaths.mbtilesCopy))) {
|
|
182
|
-
|
|
186
|
+
await fsa.write(tmpPaths.mbtilesCopy, fsa.readStream(tmpPaths.mbtiles));
|
|
187
|
+
// Ensure the mbtiles file was copied successfully
|
|
188
|
+
if (!(await fsa.exists(tmpPaths.mbtilesCopy))) {
|
|
189
|
+
throw new Error(`Failed to write the mbtiles file to ${tmpPaths.mbtilesCopy.href}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
logger.info({ destination: tmpPaths.mbtilesCopy, dataset: layer.name }, '[4/5] Copy mbtiles to stac location: End');
|
|
193
|
+
/**
|
|
194
|
+
* Update the Vector Stac Item file
|
|
195
|
+
*/
|
|
196
|
+
logger.info({ source: tmpPaths.origin, dataset: layer.name }, '[5/5] Update stac: Start');
|
|
197
|
+
// Update 'cache' flag to 'true' now that the mbtiles file exists
|
|
198
|
+
layer.cache.exists = true;
|
|
199
|
+
// Assign the 'lds:feature_count' property
|
|
200
|
+
const links = stac.links;
|
|
201
|
+
const ldsLayerIndex = links.findIndex((stacLink) => stacLink.rel === 'lds:layer');
|
|
202
|
+
if (ldsLayerIndex === -1)
|
|
203
|
+
throw new Error('Failed to locate `lds:layer` link object');
|
|
204
|
+
if (links[ldsLayerIndex]['lds:feature_count'] == null) {
|
|
205
|
+
// the 'metrics' variable is only ever null if the gen-ndjson file already exists, i.e.
|
|
206
|
+
// generated in a previous run. In such case, that run would have written the
|
|
207
|
+
// 'lds:feature_count' property to the Vector Stac Item file. If the following error occurs,
|
|
208
|
+
// then the previous run must have failed after creating the gen-ndjson file, but before
|
|
209
|
+
// updating the Vector Stac Item file.
|
|
210
|
+
if (metrics == null)
|
|
211
|
+
throw new Error('Metrics object does not exist');
|
|
212
|
+
links[ldsLayerIndex]['lds:feature_count'] = metrics.input;
|
|
183
213
|
}
|
|
214
|
+
// Overwrite the Vector Stac Item file
|
|
215
|
+
await fsa.write(tmpPaths.origin, JSON.stringify(stac, null, 2));
|
|
216
|
+
logger.info({ destination: tmpPaths.origin }, '[5/5] Update stac: End');
|
|
184
217
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
*/
|
|
189
|
-
logger.info({ source: tmpPaths.origin, dataset: layer.name }, '[5/5] Update stac: Start');
|
|
190
|
-
// Update 'cache' flag to 'true' now that the mbtiles file exists
|
|
191
|
-
layer.cache.exists = true;
|
|
192
|
-
// Assign the 'lds:feature_count' property
|
|
193
|
-
const links = stac.links;
|
|
194
|
-
const ldsLayerIndex = links.findIndex((stacLink) => stacLink.rel === 'lds:layer');
|
|
195
|
-
if (ldsLayerIndex === -1)
|
|
196
|
-
throw new Error('Failed to locate `lds:layer` link object');
|
|
197
|
-
if (links[ldsLayerIndex]['lds:feature_count'] == null) {
|
|
198
|
-
// the 'metrics' variable is only ever null if the gen-ndjson file already exists, i.e.
|
|
199
|
-
// generated in a previous run. In such case, that run would have written the
|
|
200
|
-
// 'lds:feature_count' property to the Vector Stac Item file. If the following error occurs,
|
|
201
|
-
// then the previous run must have failed after creating the gen-ndjson file, but before
|
|
202
|
-
// updating the Vector Stac Item file.
|
|
203
|
-
if (metrics == null)
|
|
204
|
-
throw new Error('Metrics object does not exist');
|
|
205
|
-
links[ldsLayerIndex]['lds:feature_count'] = metrics.input;
|
|
218
|
+
catch (error) {
|
|
219
|
+
logger.error({ source: layer.source, id: layer.id, name: layer.name }, 'CreateMbtilesFile: Failed');
|
|
220
|
+
throw error;
|
|
206
221
|
}
|
|
207
|
-
// Overwrite the Vector Stac Item file
|
|
208
|
-
await fsa.write(tmpPaths.origin, JSON.stringify(stac, null, 2));
|
|
209
|
-
logger.info({ destination: tmpPaths.origin }, '[5/5] Update stac: End');
|
|
210
222
|
}
|
|
211
223
|
//# sourceMappingURL=cli.create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.create.js","sourceRoot":"","sources":["../../src/cli/cli.create.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.create.js","sourceRoot":"","sources":["../../src/cli/cli.create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { LogType } from '@basemaps/shared';
|
|
2
2
|
import { VectorGeoFeature } from '../../types/VectorGeoFeature.js';
|
|
3
|
-
import { VectorGeoPlaceLabelsFeature } from '../schema.js';
|
|
4
|
-
export declare const PlaceLabelsFeatures: Map<string, VectorGeoPlaceLabelsFeature>;
|
|
5
3
|
/**
|
|
6
|
-
* Processes a 'place_labels' layer feature
|
|
7
|
-
*
|
|
8
|
-
* The gazatteer dataset contains multiple features that technically describe the same feature, such that:
|
|
9
|
-
* - 1. Many features have the same `label` value.
|
|
10
|
-
* - a. The 1st feature always contains the properties.
|
|
11
|
-
* - b. The 2nd, 3rd, ... features always define the `label`, `zoom_level` and `style` properties. But, all others properties will be `null`.
|
|
12
|
-
* - 2. All features with the same `label` value have different `zoom_level` values.
|
|
4
|
+
* Processes a 'place_labels' layer feature.
|
|
13
5
|
*
|
|
14
6
|
* @param feature - the feature to process
|
|
15
7
|
* @param options - the layer's options
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { zPlaceLabelsProperties } from '../parser.js';
|
|
3
|
-
export const PlaceLabelsFeatures = new Map();
|
|
4
3
|
/**
|
|
5
|
-
* Processes a 'place_labels' layer feature
|
|
6
|
-
*
|
|
7
|
-
* The gazatteer dataset contains multiple features that technically describe the same feature, such that:
|
|
8
|
-
* - 1. Many features have the same `label` value.
|
|
9
|
-
* - a. The 1st feature always contains the properties.
|
|
10
|
-
* - b. The 2nd, 3rd, ... features always define the `label`, `zoom_level` and `style` properties. But, all others properties will be `null`.
|
|
11
|
-
* - 2. All features with the same `label` value have different `zoom_level` values.
|
|
4
|
+
* Processes a 'place_labels' layer feature.
|
|
12
5
|
*
|
|
13
6
|
* @param feature - the feature to process
|
|
14
7
|
* @param options - the layer's options
|
|
@@ -17,90 +10,27 @@ export const PlaceLabelsFeatures = new Map();
|
|
|
17
10
|
*/
|
|
18
11
|
export function handleLayerPlaceLabels(feature, logger) {
|
|
19
12
|
logger.trace({}, 'HandlePlaceLabels:Start');
|
|
20
|
-
const newFeature = createNewFeature(feature, logger);
|
|
21
|
-
const name = newFeature.properties.name;
|
|
22
|
-
// DATA PROBLEM: Multiple features will have the same `label` value. However, only the first feature will
|
|
23
|
-
// contain all of the expected properties. All other features with the same `label` value will have null
|
|
24
|
-
// values for the expected properties. So, as we encounter each of the 'other' features, we need to copy
|
|
25
|
-
// the expected properties from the first feature to it, before returning it.
|
|
26
|
-
const storedFeature = PlaceLabelsFeatures.get(name);
|
|
27
|
-
if (storedFeature == null) {
|
|
28
|
-
PlaceLabelsFeatures.set(name, newFeature);
|
|
29
|
-
logger.trace({}, 'HandlePlaceLabels:End');
|
|
30
|
-
return newFeature;
|
|
31
|
-
}
|
|
32
|
-
// update the stored feature's 'minzoom' value
|
|
33
|
-
storedFeature.tippecanoe.minzoom = newFeature.tippecanoe.minzoom;
|
|
34
|
-
// update the stored feature's 'maxzoom' value
|
|
35
|
-
storedFeature.tippecanoe.maxzoom = newFeature.tippecanoe.minzoom;
|
|
36
|
-
logger.trace({}, 'HandlePlaceLabels:End');
|
|
37
|
-
return structuredClone(storedFeature);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Parses a 'place_labels' layer feature into a VectorGeoPlaceLabelsFeature object.
|
|
41
|
-
*
|
|
42
|
-
* @param feature - the feature to process
|
|
43
|
-
* @param label - the feature's 'label' property
|
|
44
|
-
* @param zoomLevel - the feature's 'zoom_level' property
|
|
45
|
-
* @param logger - a logger instance
|
|
46
|
-
* @returns a VectorGeoPlaceLabelsFeature object
|
|
47
|
-
*/
|
|
48
|
-
function createNewFeature(feature, logger) {
|
|
49
13
|
try {
|
|
14
|
+
feature = structuredClone(feature);
|
|
50
15
|
const properties = zPlaceLabelsProperties.parse({
|
|
51
16
|
label: feature.properties['label'],
|
|
52
|
-
|
|
53
|
-
style: feature.properties['style'],
|
|
17
|
+
admin_level: feature.properties['adminlevel'],
|
|
54
18
|
natural: feature.properties['natural'],
|
|
55
19
|
place: feature.properties['place'],
|
|
56
20
|
water: feature.properties['water'],
|
|
57
21
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const newFeature = {
|
|
64
|
-
type: feature.type,
|
|
65
|
-
properties: {
|
|
66
|
-
name: properties.label,
|
|
67
|
-
kind: convertStyleToKind(properties.style, tippecanoe.minzoom),
|
|
68
|
-
natural: properties.natural,
|
|
69
|
-
place: properties.place,
|
|
70
|
-
water: properties.water,
|
|
71
|
-
},
|
|
72
|
-
geometry: feature.geometry,
|
|
73
|
-
tippecanoe,
|
|
74
|
-
};
|
|
75
|
-
return newFeature;
|
|
22
|
+
feature.properties = properties;
|
|
23
|
+
// TODO: once we finalise the new style entries, we will update the desired `minzoom` and `maxzoom` values.
|
|
24
|
+
feature.tippecanoe.minzoom = properties.admin_level;
|
|
25
|
+
logger.trace({}, 'HandlePlaceLabels:End');
|
|
26
|
+
return feature;
|
|
76
27
|
}
|
|
77
28
|
catch (e) {
|
|
29
|
+
// discard the handful of features with null-valued `label` properties.
|
|
78
30
|
if (e instanceof z.ZodError) {
|
|
79
|
-
logger.trace({ properties: feature.properties }, 'Failed to parse required properties.');
|
|
31
|
+
logger.trace({ properties: feature.properties }, 'Failed to parse required properties. Discarding feature.');
|
|
80
32
|
}
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Determines a feature's 'kind' based on its 'styles' property.
|
|
86
|
-
*
|
|
87
|
-
* @param style - the feature's 'style' property
|
|
88
|
-
*/
|
|
89
|
-
function convertStyleToKind(style, minzoom) {
|
|
90
|
-
if (style.startsWith('ANT'))
|
|
91
|
-
return 'ant';
|
|
92
|
-
if (style.startsWith('GEO'))
|
|
93
|
-
return 'geo';
|
|
94
|
-
if (style.startsWith('TWN')) {
|
|
95
|
-
if (minzoom <= 8)
|
|
96
|
-
return 'city';
|
|
97
|
-
if (style === 'TWN1')
|
|
98
|
-
return 'suburb';
|
|
99
|
-
if (style === 'TWN2')
|
|
100
|
-
return 'town';
|
|
101
|
-
if (style === 'TWN3')
|
|
102
|
-
return 'city';
|
|
33
|
+
return null;
|
|
103
34
|
}
|
|
104
|
-
return '';
|
|
105
35
|
}
|
|
106
36
|
//# sourceMappingURL=place_labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place_labels.js","sourceRoot":"","sources":["../../../src/modify/layers/place_labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"place_labels.js","sourceRoot":"","sources":["../../../src/modify/layers/place_labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAyB,EAAE,MAAe;IAC/E,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC;YAC9C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAClC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;YAC7C,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YACtC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;SACnC,CAAC,CAAC;QAEH,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,2GAA2G;QAC3G,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uEAAuE;QACvE,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,0DAA0D,CAAC,CAAC;QAC/G,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/build/modify/parser.d.ts
CHANGED
|
@@ -2,27 +2,23 @@ import { z } from 'zod';
|
|
|
2
2
|
export declare const zPlaceLabelsProperties: z.ZodObject<{
|
|
3
3
|
/** @example "Kaitaia" */
|
|
4
4
|
label: z.ZodString;
|
|
5
|
-
/** @example
|
|
6
|
-
|
|
7
|
-
/** @example "
|
|
8
|
-
style: z.ZodString;
|
|
9
|
-
/** @example "cape" */
|
|
5
|
+
/** @example 7 */
|
|
6
|
+
admin_level: z.ZodNumber;
|
|
7
|
+
/** @example "peak" */
|
|
10
8
|
natural: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
|
|
11
9
|
/** @example "city" */
|
|
12
10
|
place: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
|
|
13
|
-
/** @example "
|
|
11
|
+
/** @example "sea" */
|
|
14
12
|
water: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, unknown>;
|
|
15
13
|
}, "strip", z.ZodTypeAny, {
|
|
16
|
-
style: string;
|
|
17
14
|
label: string;
|
|
18
|
-
|
|
15
|
+
admin_level: number;
|
|
19
16
|
natural?: string | undefined;
|
|
20
17
|
place?: string | undefined;
|
|
21
18
|
water?: string | undefined;
|
|
22
19
|
}, {
|
|
23
|
-
style: string;
|
|
24
20
|
label: string;
|
|
25
|
-
|
|
21
|
+
admin_level: number;
|
|
26
22
|
natural?: unknown;
|
|
27
23
|
place?: unknown;
|
|
28
24
|
water?: unknown;
|
package/build/modify/parser.js
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
const optionalString = z.preprocess((value) =>
|
|
3
|
-
if (value === '0' || value === null) {
|
|
4
|
-
return undefined;
|
|
5
|
-
}
|
|
6
|
-
else {
|
|
7
|
-
return value;
|
|
8
|
-
}
|
|
9
|
-
}, z.string().optional());
|
|
2
|
+
const optionalString = z.preprocess((value) => (value == null ? undefined : value), z.string().optional());
|
|
10
3
|
export const zPlaceLabelsProperties = z.object({
|
|
11
4
|
/** @example "Kaitaia" */
|
|
12
5
|
label: z.string(),
|
|
13
|
-
/** @example
|
|
14
|
-
|
|
15
|
-
/** @example "
|
|
16
|
-
style: z.string(),
|
|
17
|
-
/** @example "cape" */
|
|
6
|
+
/** @example 7 */
|
|
7
|
+
admin_level: z.number(),
|
|
8
|
+
/** @example "peak" */
|
|
18
9
|
natural: optionalString,
|
|
19
10
|
/** @example "city" */
|
|
20
11
|
place: optionalString,
|
|
21
|
-
/** @example "
|
|
12
|
+
/** @example "sea" */
|
|
22
13
|
water: optionalString,
|
|
23
14
|
});
|
|
24
15
|
//# sourceMappingURL=parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/modify/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/modify/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE3G,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,yBAAyB;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IAEjB,iBAAiB;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IAEvB,sBAAsB;IACtB,OAAO,EAAE,cAAc;IAEvB,sBAAsB;IACtB,KAAK,EAAE,cAAc;IAErB,qBAAqB;IACrB,KAAK,EAAE,cAAc;CACtB,CAAC,CAAC"}
|
package/build/util.js
CHANGED
|
@@ -17,7 +17,7 @@ export function createReadStreamSafe(filename) {
|
|
|
17
17
|
}
|
|
18
18
|
export function prepareTmpPaths(tmpPath, path, layerId, format, shortbreadLayer) {
|
|
19
19
|
/** @example "tmp/create/layers/50248/" */
|
|
20
|
-
const LayersDir = new URL(`layers/${layerId}/`, tmpPath);
|
|
20
|
+
const LayersDir = new URL(`layers/${shortbreadLayer}/${layerId}/`, tmpPath);
|
|
21
21
|
if (!existsSync(LayersDir)) {
|
|
22
22
|
mkdirSync(LayersDir, { recursive: true });
|
|
23
23
|
}
|
package/build/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAc,MAAM,IAAI,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,wBAAwB;IAC9B,GAAG,EAAE,uBAAuB;IAC5B,OAAO,EAAE,sBAAsB;CACvB,CAAC;AAEX,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC7C,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAoCD,MAAM,UAAU,eAAe,CAC7B,OAAY,EACZ,IAAS,EACT,OAAe,EACf,MAAgC,EAChC,eAAuB;IAEvB,0CAA0C;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAc,MAAM,IAAI,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,wBAAwB;IAC9B,GAAG,EAAE,uBAAuB;IAC5B,OAAO,EAAE,sBAAsB;CACvB,CAAC;AAEX,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC9C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC7C,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAoCD,MAAM,UAAU,eAAe,CAC7B,OAAY,EACZ,IAAS,EACT,OAAe,EACf,MAAgC,EAChC,eAAuB;IAEvB,0CAA0C;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,eAAe,IAAI,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,aAAa,eAAe,IAAI,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;IAClF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,IAAI,MAAM,EAAE,EAAE,SAAS,CAAC;YAChD,MAAM;YACN,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC;SACjC;QACD,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,SAAS,EAAE,SAAS,CAAC;QAC/C,SAAS,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,aAAa,EAAE,YAAY,CAAC;QACzD,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,UAAU,EAAE,YAAY,CAAC;QACpD,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;KAC/D,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|