@basemaps/config-loader 7.1.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.
Files changed (35) hide show
  1. package/LICENSE +21 -0
  2. package/build/index.d.ts +2 -0
  3. package/build/index.js +3 -0
  4. package/build/index.js.map +1 -0
  5. package/build/json/__tests__/config.loader.test.d.ts +1 -0
  6. package/build/json/__tests__/config.loader.test.js +105 -0
  7. package/build/json/__tests__/config.loader.test.js.map +1 -0
  8. package/build/json/__tests__/tiff.config.test.d.ts +1 -0
  9. package/build/json/__tests__/tiff.config.test.js +53 -0
  10. package/build/json/__tests__/tiff.config.test.js.map +1 -0
  11. package/build/json/__tests__/tiff.load.test.d.ts +1 -0
  12. package/build/json/__tests__/tiff.load.test.js +143 -0
  13. package/build/json/__tests__/tiff.load.test.js.map +1 -0
  14. package/build/json/imagery.config.cache.d.ts +7 -0
  15. package/build/json/imagery.config.cache.js +45 -0
  16. package/build/json/imagery.config.cache.js.map +1 -0
  17. package/build/json/json.config.d.ts +39 -0
  18. package/build/json/json.config.js +319 -0
  19. package/build/json/json.config.js.map +1 -0
  20. package/build/json/log.d.ts +17 -0
  21. package/build/json/log.js +2 -0
  22. package/build/json/log.js.map +1 -0
  23. package/build/json/parse.provider.d.ts +149 -0
  24. package/build/json/parse.provider.js +31 -0
  25. package/build/json/parse.provider.js.map +1 -0
  26. package/build/json/parse.style.d.ts +30 -0
  27. package/build/json/parse.style.js +13 -0
  28. package/build/json/parse.style.js.map +1 -0
  29. package/build/json/parse.tile.set.d.ts +252 -0
  30. package/build/json/parse.tile.set.js +47 -0
  31. package/build/json/parse.tile.set.js.map +1 -0
  32. package/build/json/tiff.config.d.ts +113 -0
  33. package/build/json/tiff.config.js +430 -0
  34. package/build/json/tiff.config.js.map +1 -0
  35. package/package.json +36 -0
@@ -0,0 +1,319 @@
1
+ import { ConfigId, ConfigPrefix, ConfigProviderMemory, parseRgba, sha256base58, TileSetType, } from '@basemaps/config';
2
+ import { TileMatrixSets } from '@basemaps/geo';
3
+ import { Cotar, fsa, stringToUrlFolder, Tiff, TiffTag } from '@basemaps/shared';
4
+ import ulid from 'ulid';
5
+ import { zProviderConfig } from './parse.provider.js';
6
+ import { zStyleJson } from './parse.style.js';
7
+ import { zTileSetConfig } from './parse.tile.set.js';
8
+ import { initImageryFromTiffUrl } from './tiff.config.js';
9
+ export function matchUri(a, b) {
10
+ const UrlA = new URL(a.endsWith('/') ? a : a + '/');
11
+ const UrlB = new URL(b.endsWith('/') ? b : b + '/');
12
+ if (UrlA.href === UrlB.href)
13
+ return true;
14
+ return false;
15
+ }
16
+ export function guessIdFromUri(uri) {
17
+ const parts = uri.split('/');
18
+ const id = uri.endsWith('/') ? parts.at(-2) : parts.at(-1);
19
+ if (id == null)
20
+ return null;
21
+ try {
22
+ const date = new Date(ulid.decodeTime(id));
23
+ if (date.getUTCFullYear() < 2015)
24
+ return null;
25
+ if (date.getUTCFullYear() > new Date().getUTCFullYear() + 1)
26
+ return null;
27
+ return id;
28
+ }
29
+ catch (e) {
30
+ return null;
31
+ }
32
+ }
33
+ const IsEmptyCheckSizeBytes = 512 * 1024;
34
+ /**
35
+ * Check to see if this tiff has any data
36
+ *
37
+ * This looks at tiff tile offset arrays see if any internal tiff tiles contain any data
38
+ *
39
+ * @param toCheck Path or tiff check
40
+ * @returns true if the tiff is empty, false otherwise
41
+ */
42
+ export async function isEmptyTiff(toCheck) {
43
+ const isUrl = toCheck instanceof URL;
44
+ const tiff = isUrl ? await Tiff.create(fsa.source(toCheck)) : toCheck;
45
+ try {
46
+ // Only check the tiff for empty if the size is less than IsEmptyCheckSizeBytes
47
+ const tiffSize = tiff.source.metadata?.size ?? 0;
48
+ if (tiffSize > IsEmptyCheckSizeBytes)
49
+ return false;
50
+ // Starting the smallest tiff overview greatly reduces the amount of data needing to be read
51
+ // if the tiff contains data.
52
+ for (let i = tiff.images.length - 1; i >= 0; i--) {
53
+ const tileOffsets = await tiff.images[i].fetch(TiffTag.TileByteCounts);
54
+ // Tiff is not tiled, so cannot know if its empty from tile offsets
55
+ if (tileOffsets == null)
56
+ return false;
57
+ // If any tile offset is above 0 then there is data at that offset.
58
+ for (const offset of tileOffsets) {
59
+ // There exists a tile that contains some data, so this tiff is not empty
60
+ if (offset > 0)
61
+ return false;
62
+ }
63
+ }
64
+ return true;
65
+ }
66
+ finally {
67
+ // If the tiff was created here, it needs to be closed
68
+ if (isUrl)
69
+ await tiff.source.close?.();
70
+ }
71
+ }
72
+ export class ConfigJson {
73
+ constructor(url, Q, log, imageryConfigCache) {
74
+ Object.defineProperty(this, "mem", {
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ value: void 0
79
+ });
80
+ Object.defineProperty(this, "url", {
81
+ enumerable: true,
82
+ configurable: true,
83
+ writable: true,
84
+ value: void 0
85
+ });
86
+ Object.defineProperty(this, "cache", {
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true,
90
+ value: new Map()
91
+ });
92
+ Object.defineProperty(this, "logger", {
93
+ enumerable: true,
94
+ configurable: true,
95
+ writable: true,
96
+ value: void 0
97
+ });
98
+ Object.defineProperty(this, "Q", {
99
+ enumerable: true,
100
+ configurable: true,
101
+ writable: true,
102
+ value: void 0
103
+ });
104
+ Object.defineProperty(this, "imageryConfigCache", {
105
+ enumerable: true,
106
+ configurable: true,
107
+ writable: true,
108
+ value: void 0
109
+ });
110
+ this.url = url;
111
+ this.mem = new ConfigProviderMemory();
112
+ this.imageryConfigCache = imageryConfigCache;
113
+ this.logger = log;
114
+ this.Q = Q;
115
+ }
116
+ /** Import configuration from a base path */
117
+ static async fromUrl(basePath, Q, log, imageryConfigCache) {
118
+ if (basePath.pathname.endsWith('.json') || basePath.pathname.endsWith('.json.gz')) {
119
+ const config = await fsa.readJson(basePath);
120
+ if (config.id && config.id.startsWith('cb_')) {
121
+ // We have been given a config bundle just load that instead!
122
+ return ConfigProviderMemory.fromJson(config);
123
+ }
124
+ }
125
+ const cfg = new ConfigJson(basePath, Q, log, imageryConfigCache);
126
+ const files = await fsa.toArray(fsa.list(basePath));
127
+ const todo = files.map(async (filePath) => {
128
+ if (!filePath.pathname.endsWith('.json'))
129
+ return;
130
+ const bc = await fsa.readJson(filePath);
131
+ const prefix = ConfigId.getPrefix(bc.id);
132
+ if (prefix) {
133
+ log.debug({ path: filePath, type: prefix, config: bc.id }, 'Config:Load');
134
+ switch (prefix) {
135
+ case ConfigPrefix.TileSet:
136
+ cfg.mem.put(await cfg.tileSet(bc));
137
+ break;
138
+ case ConfigPrefix.Provider:
139
+ cfg.mem.put(await cfg.provider(bc));
140
+ break;
141
+ case ConfigPrefix.Style:
142
+ cfg.mem.put(await cfg.style(bc));
143
+ break;
144
+ }
145
+ }
146
+ else {
147
+ log.warn({ path: filePath }, 'Config:Invalid');
148
+ }
149
+ });
150
+ await Promise.all(todo);
151
+ return cfg.mem;
152
+ }
153
+ async provider(obj) {
154
+ const pv = zProviderConfig.parse(obj);
155
+ this.logger.info({ config: pv.id }, 'Config:Loaded:Provider');
156
+ return {
157
+ id: pv.id,
158
+ name: ConfigId.unprefix(ConfigPrefix.Provider, pv.id),
159
+ serviceIdentification: pv.serviceIdentification,
160
+ serviceProvider: pv.serviceProvider,
161
+ updatedAt: Date.now(),
162
+ version: 1,
163
+ };
164
+ }
165
+ async style(obj) {
166
+ const st = zStyleJson.parse(obj);
167
+ this.logger.info({ config: st.id }, 'Config:Loaded:Style');
168
+ return {
169
+ id: st.id,
170
+ name: st.name,
171
+ style: st,
172
+ updatedAt: Date.now(),
173
+ };
174
+ }
175
+ async tileSet(obj) {
176
+ const ts = zTileSetConfig.parse(obj);
177
+ this.logger.info({ config: ts.id }, 'Config:Loaded:TileSet');
178
+ const imageryFetch = [];
179
+ if (ts.type === TileSetType.Raster) {
180
+ for (const layer of ts.layers) {
181
+ if (layer[2193] != null) {
182
+ imageryFetch.push(this.loadImagery(stringToUrlFolder(layer[2193]), layer.name, layer.title));
183
+ }
184
+ if (layer[3857] != null) {
185
+ imageryFetch.push(this.loadImagery(stringToUrlFolder(layer[3857]), layer.name, layer.title));
186
+ }
187
+ }
188
+ }
189
+ const imagery = await Promise.all(imageryFetch);
190
+ const layers = [];
191
+ const tileSet = {
192
+ type: ts.type,
193
+ id: ts.id,
194
+ name: ConfigId.unprefix(ConfigPrefix.TileSet, ts.id),
195
+ title: ts.title,
196
+ layers,
197
+ };
198
+ function updateLayerUri(layer, uri, logger) {
199
+ if (uri == null)
200
+ return uri;
201
+ if (uri.startsWith(ConfigPrefix.Imagery))
202
+ return uri;
203
+ const record = imagery.find((f) => matchUri(f.uri, uri)); ///
204
+ if (record == null)
205
+ throw new Error('Unable to find imagery id for uri:' + uri);
206
+ if (record.title && record.title !== layer.title) {
207
+ logger.warn({ layer: layer.name, imageryTitle: record.title, layerTitle: layer.title }, 'Imagery:Title:Missmatch');
208
+ }
209
+ record.title = layer.title;
210
+ if (layer.category) {
211
+ if (record.category && record.category !== layer.category) {
212
+ logger.warn({ layer: layer.name, imageryCategory: record.category, layerCategory: layer.category }, 'Imagery:Category:Missmatch');
213
+ }
214
+ record.category = layer.category;
215
+ }
216
+ return record.id;
217
+ }
218
+ // Map the configuration sources into imagery ids
219
+ for (const l of ts.layers) {
220
+ const layer = { ...l };
221
+ layers.push(layer);
222
+ if (tileSet.type === TileSetType.Raster) {
223
+ if (layer[2193])
224
+ layer[2193] = updateLayerUri(layer, layer[2193], this.logger);
225
+ if (layer[3857])
226
+ layer[3857] = updateLayerUri(layer, layer[3857], this.logger);
227
+ }
228
+ }
229
+ if (ts.description)
230
+ tileSet.description = ts.description;
231
+ if (ts.category)
232
+ tileSet.category = ts.category;
233
+ if (ts.minZoom)
234
+ tileSet.minZoom = ts.minZoom;
235
+ if (ts.maxZoom)
236
+ tileSet.maxZoom = ts.maxZoom;
237
+ if (tileSet.type === TileSetType.Raster) {
238
+ if (ts.outputs)
239
+ tileSet.outputs = ts.outputs;
240
+ if (ts.background) {
241
+ tileSet.background = parseRgba(ts.background);
242
+ }
243
+ }
244
+ if (ts.format) {
245
+ tileSet.format = ts.format;
246
+ }
247
+ else {
248
+ tileSet.format = ts.type === TileSetType.Vector ? 'pbf' : 'webp';
249
+ }
250
+ return tileSet;
251
+ }
252
+ loadImagery(url, name, title) {
253
+ let existing = this.cache.get(url.href);
254
+ if (existing == null) {
255
+ existing = this._loadImagery(url, name, title);
256
+ this.cache.set(url.href, existing);
257
+ }
258
+ return existing;
259
+ }
260
+ async _loadImagery(url, name, title) {
261
+ // TODO is there a better way of guessing the imagery id & tile matrix?
262
+ const imageId = guessIdFromUri(url.href) ?? sha256base58(url.href);
263
+ const id = ConfigId.prefix(ConfigPrefix.Imagery, imageId);
264
+ this.logger.trace({ url: url.href, imageId: id }, 'Imagery:Fetch');
265
+ const img = await initImageryFromTiffUrl(url, this.Q, this.imageryConfigCache, this.logger);
266
+ img.id = id; // TODO could we use img.collection.id for this?
267
+ // TODO should we be overwriting the name and title when it is loaded from the STAC metadata?
268
+ img.name = name;
269
+ img.title = title;
270
+ // TODO should we store the STAC collection somewhere?
271
+ delete img.collection;
272
+ this.mem.put(img);
273
+ return img;
274
+ }
275
+ static async findImageryOverviews(cfg) {
276
+ if (cfg.overviews)
277
+ throw new Error('Overviews exist already for config: ' + cfg.id);
278
+ const targetOverviews = new URL('overviews.tar.co', fsa.toUrl(cfg.uri));
279
+ const exists = await fsa.exists(targetOverviews);
280
+ if (!exists)
281
+ return;
282
+ const tileMatrix = TileMatrixSets.find(cfg.tileMatrix);
283
+ if (tileMatrix == null)
284
+ throw new Error('Missing tileMatrix for imagery:' + cfg.id);
285
+ const cotar = await Cotar.fromTar(fsa.source(targetOverviews));
286
+ // When the cotars are made a WMTSCapabilties is added so it easy to view in something like QGIS
287
+ // We can use the WMTSCapabitities to figure out the tileMatrix and zoom levels
288
+ const wmtsRaw = await cotar.get('WMTSCapabilities.xml');
289
+ if (wmtsRaw == null)
290
+ return;
291
+ const wmts = Buffer.from(wmtsRaw).toString();
292
+ const zoomLevels = zoomLevelsFromWmts(wmts, tileMatrix);
293
+ if (zoomLevels == null)
294
+ return;
295
+ return { path: 'overviews.tar.co', minZoom: zoomLevels.minZoom, maxZoom: zoomLevels.maxZoom };
296
+ }
297
+ }
298
+ /** Attempt to parse a cotar WMTSCapabilties to figure out what zoom levels are applicable */
299
+ export function zoomLevelsFromWmts(wmts, tileMatrix) {
300
+ const owsIds = wmts
301
+ .split('\n')
302
+ .filter((f) => f.includes('ows:Identifier'))
303
+ .map((c) => c.trim().replace('<ows:Identifier>', '').replace('</ows:Identifier>', ''));
304
+ const tileMatrixOffset = owsIds.indexOf(tileMatrix.identifier);
305
+ if (tileMatrixOffset === -1)
306
+ return null;
307
+ const minZoom = Number(owsIds[tileMatrixOffset + 1]);
308
+ const maxZoom = Number(owsIds[owsIds.length - 1]);
309
+ if (isNaN(minZoom))
310
+ return null;
311
+ if (isNaN(maxZoom))
312
+ return null;
313
+ if (maxZoom < minZoom)
314
+ return null;
315
+ if (maxZoom === 0)
316
+ return null;
317
+ return { minZoom, maxZoom };
318
+ }
319
+ //# sourceMappingURL=json.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.config.js","sourceRoot":"","sources":["../../src/json/json.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface LogFunc {
2
+ (msg: string): void;
3
+ (obj: Record<string, unknown>, msg: string): void;
4
+ }
5
+ /**
6
+ * Expose log type so functions that do not have direct access to pino have access to the log type
7
+ */
8
+ export interface LogType {
9
+ level: string;
10
+ trace: LogFunc;
11
+ debug: LogFunc;
12
+ info: LogFunc;
13
+ warn: LogFunc;
14
+ error: LogFunc;
15
+ fatal: LogFunc;
16
+ child: (obj: Record<string, unknown>) => LogType;
17
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/json/log.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ import { z } from 'zod';
2
+ export declare const zProviderConfig: z.ZodObject<{
3
+ id: z.ZodString;
4
+ serviceIdentification: z.ZodObject<{
5
+ title: z.ZodString;
6
+ description: z.ZodString;
7
+ fees: z.ZodString;
8
+ accessConstraints: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ title: string;
11
+ description: string;
12
+ fees: string;
13
+ accessConstraints: string;
14
+ }, {
15
+ title: string;
16
+ description: string;
17
+ fees: string;
18
+ accessConstraints: string;
19
+ }>;
20
+ serviceProvider: z.ZodObject<{
21
+ name: z.ZodString;
22
+ site: z.ZodString;
23
+ contact: z.ZodObject<{
24
+ individualName: z.ZodString;
25
+ position: z.ZodString;
26
+ phone: z.ZodString;
27
+ address: z.ZodObject<{
28
+ deliveryPoint: z.ZodString;
29
+ city: z.ZodString;
30
+ postalCode: z.ZodString;
31
+ country: z.ZodString;
32
+ email: z.ZodString;
33
+ }, "strip", z.ZodTypeAny, {
34
+ deliveryPoint: string;
35
+ city: string;
36
+ postalCode: string;
37
+ country: string;
38
+ email: string;
39
+ }, {
40
+ deliveryPoint: string;
41
+ city: string;
42
+ postalCode: string;
43
+ country: string;
44
+ email: string;
45
+ }>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ individualName: string;
48
+ position: string;
49
+ phone: string;
50
+ address: {
51
+ deliveryPoint: string;
52
+ city: string;
53
+ postalCode: string;
54
+ country: string;
55
+ email: string;
56
+ };
57
+ }, {
58
+ individualName: string;
59
+ position: string;
60
+ phone: string;
61
+ address: {
62
+ deliveryPoint: string;
63
+ city: string;
64
+ postalCode: string;
65
+ country: string;
66
+ email: string;
67
+ };
68
+ }>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ name: string;
71
+ site: string;
72
+ contact: {
73
+ individualName: string;
74
+ position: string;
75
+ phone: string;
76
+ address: {
77
+ deliveryPoint: string;
78
+ city: string;
79
+ postalCode: string;
80
+ country: string;
81
+ email: string;
82
+ };
83
+ };
84
+ }, {
85
+ name: string;
86
+ site: string;
87
+ contact: {
88
+ individualName: string;
89
+ position: string;
90
+ phone: string;
91
+ address: {
92
+ deliveryPoint: string;
93
+ city: string;
94
+ postalCode: string;
95
+ country: string;
96
+ email: string;
97
+ };
98
+ };
99
+ }>;
100
+ }, "strip", z.ZodTypeAny, {
101
+ id: string;
102
+ serviceIdentification: {
103
+ title: string;
104
+ description: string;
105
+ fees: string;
106
+ accessConstraints: string;
107
+ };
108
+ serviceProvider: {
109
+ name: string;
110
+ site: string;
111
+ contact: {
112
+ individualName: string;
113
+ position: string;
114
+ phone: string;
115
+ address: {
116
+ deliveryPoint: string;
117
+ city: string;
118
+ postalCode: string;
119
+ country: string;
120
+ email: string;
121
+ };
122
+ };
123
+ };
124
+ }, {
125
+ id: string;
126
+ serviceIdentification: {
127
+ title: string;
128
+ description: string;
129
+ fees: string;
130
+ accessConstraints: string;
131
+ };
132
+ serviceProvider: {
133
+ name: string;
134
+ site: string;
135
+ contact: {
136
+ individualName: string;
137
+ position: string;
138
+ phone: string;
139
+ address: {
140
+ deliveryPoint: string;
141
+ city: string;
142
+ postalCode: string;
143
+ country: string;
144
+ email: string;
145
+ };
146
+ };
147
+ };
148
+ }>;
149
+ export type ProviderConfigSchema = z.infer<typeof zProviderConfig>;
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ const zServiceIdentification = z.object({
3
+ title: z.string(),
4
+ description: z.string(),
5
+ fees: z.string(),
6
+ accessConstraints: z.string(),
7
+ });
8
+ const zAddress = z.object({
9
+ deliveryPoint: z.string(),
10
+ city: z.string(),
11
+ postalCode: z.string(),
12
+ country: z.string(),
13
+ email: z.string(),
14
+ });
15
+ const zContact = z.object({
16
+ individualName: z.string(),
17
+ position: z.string(),
18
+ phone: z.string(),
19
+ address: zAddress,
20
+ });
21
+ const zServiceProvider = z.object({
22
+ name: z.string(),
23
+ site: z.string(),
24
+ contact: zContact,
25
+ });
26
+ export const zProviderConfig = z.object({
27
+ id: z.string(),
28
+ serviceIdentification: zServiceIdentification,
29
+ serviceProvider: zServiceProvider,
30
+ });
31
+ //# sourceMappingURL=parse.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.provider.js","sourceRoot":"","sources":["../../src/json/parse.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,qBAAqB,EAAE,sBAAsB;IAC7C,eAAe,EAAE,gBAAgB;CAClC,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ export declare const zStyleJson: z.ZodObject<{
3
+ id: z.ZodString;
4
+ version: z.ZodNumber;
5
+ name: z.ZodString;
6
+ metadata: z.ZodOptional<z.ZodUnknown>;
7
+ sprite: z.ZodOptional<z.ZodString>;
8
+ glyphs: z.ZodOptional<z.ZodString>;
9
+ sources: z.ZodUnknown;
10
+ layers: z.ZodArray<z.ZodUnknown, "many">;
11
+ }, "strip", z.ZodTypeAny, {
12
+ name: string;
13
+ id: string;
14
+ version: number;
15
+ layers: unknown[];
16
+ metadata?: unknown;
17
+ sprite?: string | undefined;
18
+ glyphs?: string | undefined;
19
+ sources?: unknown;
20
+ }, {
21
+ name: string;
22
+ id: string;
23
+ version: number;
24
+ layers: unknown[];
25
+ metadata?: unknown;
26
+ sprite?: string | undefined;
27
+ glyphs?: string | undefined;
28
+ sources?: unknown;
29
+ }>;
30
+ export type StyleJsonConfigSchema = z.infer<typeof zStyleJson>;
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export const zStyleJson = z.object({
3
+ id: z.string(),
4
+ version: z.number(),
5
+ name: z.string(),
6
+ metadata: z.unknown().optional(),
7
+ sprite: z.string().optional(),
8
+ glyphs: z.string().optional(),
9
+ sources: z.unknown(),
10
+ // TODO it would be good to actually validate all the styles
11
+ layers: z.array(z.unknown()),
12
+ });
13
+ //# sourceMappingURL=parse.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.style.js","sourceRoot":"","sources":["../../src/json/parse.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IAEpB,4DAA4D;IAC5D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CAC7B,CAAC,CAAC"}