@basemaps/lambda-tiler 6.33.0 → 6.35.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/CHANGELOG.md +47 -0
- package/build/__tests__/config.data.d.ts +2 -1
- package/build/__tests__/config.data.d.ts.map +1 -1
- package/build/__tests__/config.data.js +14 -1
- package/build/__tests__/config.data.js.map +1 -1
- package/build/__tests__/tile.style.json.test.js +17 -3
- package/build/__tests__/tile.style.json.test.js.map +1 -1
- package/build/__tests__/wmts.capability.test.js +17 -0
- package/build/__tests__/wmts.capability.test.js.map +1 -1
- package/build/__tests__/xyz.util.d.ts +1 -1
- package/build/__tests__/xyz.util.d.ts.map +1 -1
- package/build/__tests__/xyz.util.js +2 -2
- package/build/__tests__/xyz.util.js.map +1 -1
- package/build/arcgis/__tests__/arcgis.style.json.test.d.ts +2 -0
- package/build/arcgis/__tests__/arcgis.style.json.test.d.ts.map +1 -0
- package/build/arcgis/__tests__/arcgis.style.json.test.js +131 -0
- package/build/arcgis/__tests__/arcgis.style.json.test.js.map +1 -0
- package/build/arcgis/__tests__/vector.tiler.server.test.d.ts +2 -0
- package/build/arcgis/__tests__/vector.tiler.server.test.d.ts.map +1 -0
- package/build/arcgis/__tests__/vector.tiler.server.test.js +54 -0
- package/build/arcgis/__tests__/vector.tiler.server.test.js.map +1 -0
- package/build/arcgis/arcgis.info.d.ts +3 -0
- package/build/arcgis/arcgis.info.d.ts.map +1 -0
- package/build/arcgis/arcgis.info.js +25 -0
- package/build/arcgis/arcgis.info.js.map +1 -0
- package/build/arcgis/arcgis.style.json.d.ts +9 -0
- package/build/arcgis/arcgis.style.json.d.ts.map +1 -0
- package/build/arcgis/arcgis.style.json.js +75 -0
- package/build/arcgis/arcgis.style.json.js.map +1 -0
- package/build/arcgis/vector.tile.server.d.ts +8 -0
- package/build/arcgis/vector.tile.server.d.ts.map +1 -0
- package/build/arcgis/vector.tile.server.js +73 -0
- package/build/arcgis/vector.tile.server.js.map +1 -0
- package/build/index.d.ts +1 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +15 -4
- package/build/index.js.map +1 -1
- package/build/routes/__tests__/attribution.test.js +3 -2
- package/build/routes/__tests__/attribution.test.js.map +1 -1
- package/build/routes/__tests__/fonts.test.js +46 -29
- package/build/routes/__tests__/fonts.test.js.map +1 -1
- package/build/routes/__tests__/health.test.js +4 -2
- package/build/routes/__tests__/health.test.js.map +1 -1
- package/build/routes/__tests__/sprites.test.js +7 -2
- package/build/routes/__tests__/sprites.test.js.map +1 -1
- package/build/routes/__tests__/tile.json.test.js +24 -2
- package/build/routes/__tests__/tile.json.test.js.map +1 -1
- package/build/routes/__tests__/tile.style.json.test.js +58 -7
- package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
- package/build/routes/__tests__/wmts.test.js +17 -14
- package/build/routes/__tests__/wmts.test.js.map +1 -1
- package/build/routes/__tests__/xyz.test.js +4 -2
- package/build/routes/__tests__/xyz.test.js.map +1 -1
- package/build/routes/attribution.d.ts.map +1 -1
- package/build/routes/attribution.js +20 -10
- package/build/routes/attribution.js.map +1 -1
- package/build/routes/config.d.ts +22 -0
- package/build/routes/config.d.ts.map +1 -0
- package/build/routes/config.js +63 -0
- package/build/routes/config.js.map +1 -0
- package/build/routes/fonts.d.ts +0 -2
- package/build/routes/fonts.d.ts.map +1 -1
- package/build/routes/fonts.js +3 -66
- package/build/routes/fonts.js.map +1 -1
- package/build/routes/health.d.ts.map +1 -1
- package/build/routes/health.js +3 -2
- package/build/routes/health.js.map +1 -1
- package/build/routes/imagery.d.ts.map +1 -1
- package/build/routes/imagery.js +3 -2
- package/build/routes/imagery.js.map +1 -1
- package/build/routes/sprites.d.ts.map +1 -1
- package/build/routes/sprites.js +3 -29
- package/build/routes/sprites.js.map +1 -1
- package/build/routes/tile.json.d.ts.map +1 -1
- package/build/routes/tile.json.js +7 -4
- package/build/routes/tile.json.js.map +1 -1
- package/build/routes/tile.style.json.d.ts +4 -3
- package/build/routes/tile.style.json.d.ts.map +1 -1
- package/build/routes/tile.style.json.js +53 -12
- package/build/routes/tile.style.json.js.map +1 -1
- package/build/routes/tile.wmts.d.ts.map +1 -1
- package/build/routes/tile.wmts.js +7 -4
- package/build/routes/tile.wmts.js.map +1 -1
- package/build/routes/tile.xyz.d.ts.map +1 -1
- package/build/routes/tile.xyz.js +4 -2
- package/build/routes/tile.xyz.js.map +1 -1
- package/build/routes/tile.xyz.raster.d.ts.map +1 -1
- package/build/routes/tile.xyz.raster.js +4 -2
- package/build/routes/tile.xyz.raster.js.map +1 -1
- package/build/util/__test__/config.loader.test.d.ts +2 -0
- package/build/util/__test__/config.loader.test.d.ts.map +1 -0
- package/build/util/__test__/config.loader.test.js +79 -0
- package/build/util/__test__/config.loader.test.js.map +1 -0
- package/build/util/assets.provider.d.ts +24 -0
- package/build/util/assets.provider.d.ts.map +1 -0
- package/build/util/assets.provider.js +69 -0
- package/build/util/assets.provider.js.map +1 -0
- package/build/util/config.cache.d.ts +16 -0
- package/build/util/config.cache.d.ts.map +1 -0
- package/build/util/config.cache.js +40 -0
- package/build/util/config.cache.js.map +1 -0
- package/build/util/config.loader.d.ts +10 -0
- package/build/util/config.loader.d.ts.map +1 -0
- package/build/util/config.loader.js +47 -0
- package/build/util/config.loader.js.map +1 -0
- package/build/util/response.d.ts +2 -1
- package/build/util/response.d.ts.map +1 -1
- package/build/util/response.js +1 -0
- package/build/util/response.js.map +1 -1
- package/build/wmts.capability.d.ts +3 -1
- package/build/wmts.capability.d.ts.map +1 -1
- package/build/wmts.capability.js +5 -15
- package/build/wmts.capability.js.map +1 -1
- package/dist/index.js +68 -68
- package/dist/node_modules/.package-lock.json +4 -4
- package/dist/node_modules/node-abi/abi_registry.json +8 -1
- package/dist/node_modules/node-abi/package.json +1 -1
- package/dist/package-lock.json +8 -8
- package/dist/package.json +1 -1
- package/package.json +8 -9
- package/src/__tests__/config.data.ts +25 -1
- package/src/__tests__/tile.style.json.test.ts +19 -3
- package/src/__tests__/wmts.capability.test.ts +21 -0
- package/src/__tests__/xyz.util.ts +7 -2
- package/src/arcgis/__tests__/arcgis.style.json.test.ts +157 -0
- package/src/arcgis/__tests__/vector.tiler.server.test.ts +70 -0
- package/src/arcgis/arcgis.info.ts +26 -0
- package/src/arcgis/arcgis.style.json.ts +83 -0
- package/src/arcgis/vector.tile.server.ts +81 -0
- package/src/index.ts +18 -5
- package/src/routes/__tests__/attribution.test.ts +4 -2
- package/src/routes/__tests__/fonts.test.ts +54 -32
- package/src/routes/__tests__/health.test.ts +4 -2
- package/src/routes/__tests__/sprites.test.ts +7 -3
- package/src/routes/__tests__/tile.json.test.ts +30 -2
- package/src/routes/__tests__/tile.style.json.test.ts +68 -9
- package/src/routes/__tests__/wmts.test.ts +23 -17
- package/src/routes/__tests__/xyz.test.ts +4 -2
- package/src/routes/attribution.ts +23 -8
- package/src/routes/config.ts +83 -0
- package/src/routes/fonts.ts +4 -64
- package/src/routes/health.ts +4 -2
- package/src/routes/imagery.ts +3 -2
- package/src/routes/sprites.ts +4 -27
- package/src/routes/tile.json.ts +10 -4
- package/src/routes/tile.style.json.ts +58 -12
- package/src/routes/tile.wmts.ts +9 -4
- package/src/routes/tile.xyz.raster.ts +4 -2
- package/src/routes/tile.xyz.ts +5 -2
- package/src/util/__test__/config.loader.test.ts +116 -0
- package/src/util/assets.provider.ts +66 -0
- package/src/util/config.cache.ts +44 -0
- package/src/util/config.loader.ts +50 -0
- package/src/util/response.ts +3 -1
- package/src/wmts.capability.ts +9 -15
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { base58, ConfigProviderMemory } from '@basemaps/config';
|
|
2
2
|
import { Env } from '@basemaps/shared';
|
|
3
|
+
import { fsa } from '@chunkd/fs';
|
|
3
4
|
import o from 'ospec';
|
|
5
|
+
import sinon from 'sinon';
|
|
4
6
|
import { handler } from '../../index.js';
|
|
7
|
+
import { ConfigLoader } from '../../util/config.loader.js';
|
|
5
8
|
import { CoSources } from '../../util/source.cache.js';
|
|
6
9
|
import { FakeData } from '../../__tests__/config.data.js';
|
|
7
10
|
import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
11
|
+
import { FsMemory } from './memory.fs.js';
|
|
8
12
|
o.spec('/v1/tiles/:tileSet/:tileMatrix/tile.json', () => {
|
|
9
13
|
const config = new ConfigProviderMemory();
|
|
14
|
+
const sandbox = sinon.createSandbox();
|
|
10
15
|
o.before(() => {
|
|
11
16
|
process.env[Env.PublicUrlBase] = 'https://tiles.test';
|
|
12
|
-
Config.setConfigProvider(config);
|
|
13
17
|
});
|
|
14
18
|
o.beforeEach(() => {
|
|
19
|
+
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
15
20
|
config.objects.clear();
|
|
16
21
|
CoSources.cache.clear();
|
|
17
22
|
});
|
|
23
|
+
o.afterEach(() => {
|
|
24
|
+
sandbox.restore();
|
|
25
|
+
});
|
|
18
26
|
o('should 404 if invalid url is given', async () => {
|
|
19
27
|
const request = mockRequest('/v1/tiles/tile.json', 'get', Api.header);
|
|
20
28
|
const res = await handler.router.handle(request);
|
|
@@ -103,6 +111,20 @@ o.spec('/v1/tiles/:tileSet/:tileMatrix/tile.json', () => {
|
|
|
103
111
|
tilejson: '3.0.0',
|
|
104
112
|
});
|
|
105
113
|
});
|
|
114
|
+
o('should load from config bundle', async () => {
|
|
115
|
+
const memoryFs = new FsMemory();
|
|
116
|
+
fsa.register('memory://', memoryFs);
|
|
117
|
+
const fakeTileSet = FakeData.tileSetRaster('🦄 🌈');
|
|
118
|
+
const cfgBundle = new ConfigProviderMemory();
|
|
119
|
+
cfgBundle.put(fakeTileSet);
|
|
120
|
+
memoryFs.write('memory://linz-basemaps/bar.json', JSON.stringify(cfgBundle.toJson()));
|
|
121
|
+
const configLocation = base58.encode(Buffer.from('memory://linz-basemaps/bar.json'));
|
|
122
|
+
const request = mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${configLocation}`, Api.header);
|
|
123
|
+
const res = await handler.router.handle(request);
|
|
124
|
+
o(res.status).equals(200);
|
|
125
|
+
const body = JSON.parse(Buffer.from(res.body, 'base64').toString());
|
|
126
|
+
o(body.tiles[0].includes(`config=${configLocation}`)).equals(true);
|
|
127
|
+
});
|
|
106
128
|
o('should serve convert zoom to tile matrix', async () => {
|
|
107
129
|
var _a;
|
|
108
130
|
const fakeTileSet = FakeData.tileSetVector('fake-vector');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile.json.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/tile.json.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"tile.json.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/tile.json.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
2
|
import { Env } from '@basemaps/shared';
|
|
3
3
|
import o from 'ospec';
|
|
4
4
|
import { createSandbox } from 'sinon';
|
|
5
5
|
import { handler } from '../../index.js';
|
|
6
|
-
import {
|
|
6
|
+
import { ConfigLoader } from '../../util/config.loader.js';
|
|
7
|
+
import { FakeData } from '../../__tests__/config.data.js';
|
|
8
|
+
import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
7
9
|
o.spec('/v1/styles', () => {
|
|
8
10
|
const host = 'https://tiles.test';
|
|
11
|
+
const config = new ConfigProviderMemory();
|
|
9
12
|
const sandbox = createSandbox();
|
|
10
13
|
o.before(() => {
|
|
11
14
|
process.env[Env.PublicUrlBase] = host;
|
|
12
15
|
});
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
o.beforeEach(() => {
|
|
17
|
+
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
18
|
+
});
|
|
19
|
+
o.afterEach(() => {
|
|
20
|
+
sandbox.restore();
|
|
21
|
+
config.objects.clear();
|
|
22
|
+
});
|
|
15
23
|
o('should not found style json', async () => {
|
|
16
24
|
const request = mockRequest('/v1/tiles/topographic/Google/style/topographic.json', 'get', Api.header);
|
|
17
|
-
sandbox.stub(Config.Style, 'get').resolves(null);
|
|
18
25
|
const res = await handler.router.handle(request);
|
|
19
26
|
o(res.status).equals(404);
|
|
20
27
|
});
|
|
@@ -65,11 +72,11 @@ o.spec('/v1/styles', () => {
|
|
|
65
72
|
metadata: { id: 'test' },
|
|
66
73
|
};
|
|
67
74
|
const fakeRecord = {
|
|
68
|
-
id: '
|
|
75
|
+
id: 'st_topographic',
|
|
69
76
|
name: 'topographic',
|
|
70
77
|
style: fakeStyle,
|
|
71
78
|
};
|
|
72
|
-
|
|
79
|
+
config.put(fakeRecord);
|
|
73
80
|
const res = await handler.router.handle(request);
|
|
74
81
|
o(res.status).equals(200);
|
|
75
82
|
o(res.header('content-type')).equals('application/json');
|
|
@@ -91,5 +98,49 @@ o.spec('/v1/styles', () => {
|
|
|
91
98
|
fakeStyle.glyphs = `${host}/glyphs`;
|
|
92
99
|
o(JSON.parse(body)).deepEquals(fakeStyle);
|
|
93
100
|
});
|
|
101
|
+
o('should create raster styles', async () => {
|
|
102
|
+
const request = mockUrlRequest('/v1/styles/aerial.json', '', Api.header);
|
|
103
|
+
const tileSet = FakeData.tileSetRaster('aerial');
|
|
104
|
+
config.put(tileSet);
|
|
105
|
+
const res = await handler.router.handle(request);
|
|
106
|
+
o(res.status).equals(200);
|
|
107
|
+
const body = JSON.parse(Buffer.from(res.body, 'base64').toString());
|
|
108
|
+
o(body.version).equals(8);
|
|
109
|
+
o(body.sources['basemaps-aerial'].type).deepEquals('raster');
|
|
110
|
+
o(body.sources['basemaps-aerial'].tiles).deepEquals([
|
|
111
|
+
`https://tiles.test/v1/tiles/aerial/WebMercatorQuad/{z}/{x}/{y}.webp?api=${Api.key}`,
|
|
112
|
+
]);
|
|
113
|
+
o(body.sources['basemaps-aerial'].tileSize).deepEquals(256);
|
|
114
|
+
o(body.layers).deepEquals([{ id: 'basemaps-aerial', type: 'raster', source: 'basemaps-aerial' }]);
|
|
115
|
+
});
|
|
116
|
+
o('should support parameters', async () => {
|
|
117
|
+
const request = mockUrlRequest('/v1/styles/aerial.json', '?tileMatrix=NZTM2000Quad&format=jpg', Api.header);
|
|
118
|
+
const tileSet = FakeData.tileSetRaster('aerial');
|
|
119
|
+
config.put(tileSet);
|
|
120
|
+
const res = await handler.router.handle(request);
|
|
121
|
+
o(res.status).equals(200);
|
|
122
|
+
const body = JSON.parse(Buffer.from(res.body, 'base64').toString());
|
|
123
|
+
o(body.version).equals(8);
|
|
124
|
+
o(body.sources['basemaps-aerial'].type).deepEquals('raster');
|
|
125
|
+
o(body.sources['basemaps-aerial'].tiles).deepEquals([
|
|
126
|
+
`https://tiles.test/v1/tiles/aerial/NZTM2000Quad/{z}/{x}/{y}.jpeg?api=${Api.key}`,
|
|
127
|
+
]);
|
|
128
|
+
o(body.sources['basemaps-aerial'].tileSize).deepEquals(256);
|
|
129
|
+
o(body.layers).deepEquals([{ id: 'basemaps-aerial', type: 'raster', source: 'basemaps-aerial' }]);
|
|
130
|
+
});
|
|
131
|
+
o('should create raster styles from custom config', async () => {
|
|
132
|
+
const configId = FakeData.bundle([FakeData.tileSetRaster('aerial')]);
|
|
133
|
+
const request = mockUrlRequest('/v1/styles/aerial.json', `?config=${configId}`, Api.header);
|
|
134
|
+
const res = await handler.router.handle(request);
|
|
135
|
+
o(res.status).equals(200);
|
|
136
|
+
const body = JSON.parse(Buffer.from(res.body, 'base64').toString());
|
|
137
|
+
o(body.version).equals(8);
|
|
138
|
+
o(body.sources['basemaps-aerial'].type).deepEquals('raster');
|
|
139
|
+
o(body.sources['basemaps-aerial'].tiles).deepEquals([
|
|
140
|
+
`https://tiles.test/v1/tiles/aerial/WebMercatorQuad/{z}/{x}/{y}.webp?api=${Api.key}&config=${configId}`,
|
|
141
|
+
]);
|
|
142
|
+
o(body.sources['basemaps-aerial'].tileSize).deepEquals(256);
|
|
143
|
+
o(body.layers).deepEquals([{ id: 'basemaps-aerial', type: 'raster', source: 'basemaps-aerial' }]);
|
|
144
|
+
});
|
|
94
145
|
});
|
|
95
146
|
//# sourceMappingURL=tile.style.json.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile.style.json.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/tile.style.json.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tile.style.json.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/tile.style.json.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
2
|
import o from 'ospec';
|
|
3
3
|
import { createSandbox } from 'sinon';
|
|
4
4
|
import { handler } from '../../index.js';
|
|
5
|
+
import { ConfigLoader } from '../../util/config.loader.js';
|
|
5
6
|
import { Imagery2193, Imagery3857, Provider, TileSetAerial } from '../../__tests__/config.data.js';
|
|
6
7
|
import { Api, mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
7
8
|
o.spec('WMTSRouting', () => {
|
|
8
9
|
const sandbox = createSandbox();
|
|
10
|
+
const config = new ConfigProviderMemory();
|
|
11
|
+
o.before(() => {
|
|
12
|
+
sandbox.stub(ConfigLoader, 'load').resolves(config);
|
|
13
|
+
});
|
|
9
14
|
o.afterEach(() => {
|
|
15
|
+
config.objects.clear();
|
|
10
16
|
sandbox.restore();
|
|
11
17
|
});
|
|
12
18
|
o('should default to the aerial layer', async () => {
|
|
13
19
|
const imagery = new Map();
|
|
14
20
|
imagery.set(Imagery3857.id, Imagery3857);
|
|
15
21
|
imagery.set(Imagery2193.id, Imagery2193);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
config.put(TileSetAerial);
|
|
23
|
+
config.put(Imagery2193);
|
|
24
|
+
config.put(Imagery3857);
|
|
25
|
+
config.put(Provider);
|
|
26
|
+
const req = mockUrlRequest('/v1/tiles/WMTSCapabilities.xml', `format=png&api=${Api.key}&config=s3://linz-basemaps/config.json`);
|
|
20
27
|
const res = await handler.router.handle(req);
|
|
21
|
-
o(tileSetStub.calledOnce).equals(true);
|
|
22
|
-
o(tileSetStub.args[0][0]).equals('ts_aerial');
|
|
23
|
-
o(providerStub.calledOnce).equals(true);
|
|
24
|
-
o(providerStub.args[0][0]).equals('pv_linz');
|
|
25
|
-
o(imageryStub.calledOnce).equals(true);
|
|
26
|
-
o([...imageryStub.args[0][0].values()]).deepEquals([
|
|
27
|
-
'im_01FYWKATAEK2ZTJQ2PX44Y0XNT',
|
|
28
|
-
'im_01FYWKAJ86W9P7RWM1VB62KD0H',
|
|
29
|
-
]);
|
|
30
28
|
o(res.status).equals(200);
|
|
31
29
|
const lines = Buffer.from(res.body, 'base64').toString().split('\n');
|
|
32
30
|
const titles = lines.filter((f) => f.startsWith(' <ows:Title>')).map((f) => f.trim());
|
|
@@ -36,6 +34,11 @@ o.spec('WMTSRouting', () => {
|
|
|
36
34
|
'<ows:Title>Google Maps Compatible for the World</ows:Title>',
|
|
37
35
|
'<ows:Title>LINZ NZTM2000 Map Tile Grid V2</ows:Title>',
|
|
38
36
|
]);
|
|
37
|
+
const resourceURLs = lines.filter((f) => f.includes('<ResourceURL')).map((f) => f.trim());
|
|
38
|
+
o(resourceURLs).deepEquals([
|
|
39
|
+
'<ResourceURL format="image/png" resourceType="tile" template="https://tiles.test/v1/tiles/aerial/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.png?api=d01f7w7rnhdzg0p7fyrc9v9ard1&config=Q5pC4UjWdtFLU1CYtLcRSmB49RekgDgMa5EGJnB2M" />',
|
|
40
|
+
'<ResourceURL format="image/png" resourceType="tile" template="https://tiles.test/v1/tiles/ōtorohanga-urban-2021-0.1m/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.png?api=d01f7w7rnhdzg0p7fyrc9v9ard1&config=Q5pC4UjWdtFLU1CYtLcRSmB49RekgDgMa5EGJnB2M" />',
|
|
41
|
+
]);
|
|
39
42
|
});
|
|
40
43
|
});
|
|
41
44
|
//# sourceMappingURL=wmts.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wmts.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/wmts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wmts.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/wmts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE1C,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;QACf,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEzC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAErB,MAAM,GAAG,GAAG,cAAc,CACxB,gCAAgC,EAChC,kBAAkB,GAAG,CAAC,GAAG,wCAAwC,CAClE,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3F,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;YACnB,uCAAuC;YACvC,mEAAmE;YACnE,6DAA6D;YAC7D,uDAAuD;SACxD,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC;YACzB,gPAAgP;YAChP,oQAAoQ;SACrQ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
2
|
import { LogConfig } from '@basemaps/shared';
|
|
3
3
|
import { round } from '@basemaps/test/build/rounding.js';
|
|
4
4
|
import o from 'ospec';
|
|
5
5
|
import sinon from 'sinon';
|
|
6
6
|
import { handler } from '../../index.js';
|
|
7
|
+
import { ConfigLoader } from '../../util/config.loader.js';
|
|
7
8
|
import { Etag } from '../../util/etag.js';
|
|
8
9
|
import { FakeData } from '../../__tests__/config.data.js';
|
|
9
10
|
import { Api, mockRequest } from '../../__tests__/xyz.util.js';
|
|
@@ -13,13 +14,14 @@ o.spec('/v1/tiles', () => {
|
|
|
13
14
|
const config = new ConfigProviderMemory();
|
|
14
15
|
o.beforeEach(() => {
|
|
15
16
|
LogConfig.get().level = 'silent';
|
|
16
|
-
|
|
17
|
+
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
17
18
|
config.objects.clear();
|
|
18
19
|
for (const tileSetName of TileSetNames)
|
|
19
20
|
config.put(FakeData.tileSetRaster(tileSetName));
|
|
20
21
|
sandbox.stub(Etag, 'key').returns('fakeEtag');
|
|
21
22
|
});
|
|
22
23
|
o.afterEach(() => {
|
|
24
|
+
config.objects.clear();
|
|
23
25
|
sandbox.restore();
|
|
24
26
|
});
|
|
25
27
|
o('should export handler', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xyz.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/xyz.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"xyz.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/xyz.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../../src/routes/attribution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../../src/routes/attribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAc,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAiJnF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2BhH"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { TileSetType } from '@basemaps/config';
|
|
1
|
+
import { getAllImagery, TileSetType } from '@basemaps/config';
|
|
2
2
|
import { Bounds, GoogleTms, Stac, TileMatrixSet, } from '@basemaps/geo';
|
|
3
|
-
import {
|
|
3
|
+
import { extractYearRangeFromName, Projection, titleizeImageryName } from '@basemaps/shared';
|
|
4
4
|
import { multiPolygonToWgs84, union, Wgs84 } from '@linzjs/geojson';
|
|
5
5
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
6
|
+
import { ConfigLoader } from '../util/config.loader.js';
|
|
6
7
|
import { Etag } from '../util/etag.js';
|
|
7
8
|
import { NotFound, NotModified } from '../util/response.js';
|
|
8
9
|
import { Validate } from '../util/validate.js';
|
|
@@ -41,6 +42,11 @@ function createCoordinates(bbox, files, proj) {
|
|
|
41
42
|
const roundToWgs84 = (p) => roundPair(proj.toWgs84(p));
|
|
42
43
|
return multiPolygonToWgs84(coordinates, roundToWgs84);
|
|
43
44
|
}
|
|
45
|
+
function getHost(host) {
|
|
46
|
+
if (host == null)
|
|
47
|
+
return undefined;
|
|
48
|
+
return [{ name: host.serviceProvider.name, url: host.serviceProvider.site, roles: ['host'] }];
|
|
49
|
+
}
|
|
44
50
|
/**
|
|
45
51
|
* Build a Single File STAC for the given TileSet.
|
|
46
52
|
*
|
|
@@ -52,10 +58,9 @@ async function tileSetAttribution(req, tileSet, tileMatrix) {
|
|
|
52
58
|
const proj = Projection.get(tileMatrix);
|
|
53
59
|
const cols = [];
|
|
54
60
|
const items = [];
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
return null;
|
|
61
|
+
const config = await ConfigLoader.load(req);
|
|
62
|
+
const imagery = await getAllImagery(config, tileSet.layers, [tileMatrix.projection]);
|
|
63
|
+
const host = await config.Provider.get(config.Provider.id('linz'));
|
|
59
64
|
for (const layer of tileSet.layers) {
|
|
60
65
|
const imgId = layer[proj.epsg.code];
|
|
61
66
|
if (imgId == null)
|
|
@@ -65,8 +70,12 @@ async function tileSetAttribution(req, tileSet, tileMatrix) {
|
|
|
65
70
|
continue;
|
|
66
71
|
const bbox = proj.boundsToWgs84BoundingBox(im.bounds).map(roundNumber);
|
|
67
72
|
const years = extractYearRangeFromName(im.name);
|
|
68
|
-
if (years[0] === -1)
|
|
69
|
-
|
|
73
|
+
if (years[0] === -1) {
|
|
74
|
+
req.log.debug({ imagery: im.name }, 'Attribution:DefaultYear');
|
|
75
|
+
// Put it in the future so people know its a "fake" date
|
|
76
|
+
years[0] = new Date().getUTCFullYear() + 1;
|
|
77
|
+
years[1] = years[0] + 1;
|
|
78
|
+
}
|
|
70
79
|
const interval = [years.map((y) => `${y}-01-01T00:00:00Z`)];
|
|
71
80
|
const extent = { spatial: { bbox: [bbox] }, temporal: { interval } };
|
|
72
81
|
items.push({
|
|
@@ -92,7 +101,7 @@ async function tileSetAttribution(req, tileSet, tileMatrix) {
|
|
|
92
101
|
stac_version: Stac.Version,
|
|
93
102
|
license: Stac.License,
|
|
94
103
|
id: im.id,
|
|
95
|
-
providers:
|
|
104
|
+
providers: getHost(host),
|
|
96
105
|
title: (_b = im.title) !== null && _b !== void 0 ? _b : titleizeImageryName(im.name),
|
|
97
106
|
description: 'No description',
|
|
98
107
|
extent,
|
|
@@ -123,8 +132,9 @@ export async function tileAttributionGet(req) {
|
|
|
123
132
|
const tileMatrix = Validate.getTileMatrixSet(req.params.tileMatrix);
|
|
124
133
|
if (tileMatrix == null)
|
|
125
134
|
throw new LambdaHttpResponse(404, 'Tile Matrix not found');
|
|
135
|
+
const config = await ConfigLoader.load(req);
|
|
126
136
|
req.timer.start('tileset:load');
|
|
127
|
-
const tileSet = await
|
|
137
|
+
const tileSet = await config.TileSet.get(config.TileSet.id(req.params.tileSet));
|
|
128
138
|
req.timer.end('tileset:load');
|
|
129
139
|
if (tileSet == null || tileSet.type === TileSetType.Vector)
|
|
130
140
|
return NotFound();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/routes/attribution.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/routes/attribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
|
|
2
|
+
interface ConfigTileSetGet {
|
|
3
|
+
Params: {
|
|
4
|
+
tileSet: string;
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export declare function configTileSetGet(req: LambdaHttpRequest<ConfigTileSetGet>): Promise<LambdaHttpResponse>;
|
|
8
|
+
interface ConfigImageryGet {
|
|
9
|
+
Params: {
|
|
10
|
+
tileSet: string;
|
|
11
|
+
imageryId: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Load the imagery configuration by either name or id
|
|
16
|
+
*
|
|
17
|
+
* @param req
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare function configImageryGet(req: LambdaHttpRequest<ConfigImageryGet>): Promise<LambdaHttpResponse>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAmBnF,UAAU,gBAAgB;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAS5G;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+B5G"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { standardizeLayerName } from '@basemaps/config';
|
|
2
|
+
import { GoogleTms, TileMatrixSets } from '@basemaps/geo';
|
|
3
|
+
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
4
|
+
import { ConfigLoader } from '../util/config.loader.js';
|
|
5
|
+
import { Etag } from '../util/etag.js';
|
|
6
|
+
import { NotFound, NotModified } from '../util/response.js';
|
|
7
|
+
async function sendJson(req, toSend) {
|
|
8
|
+
const data = Buffer.from(JSON.stringify(toSend));
|
|
9
|
+
const cacheKey = Etag.key(data);
|
|
10
|
+
if (Etag.isNotModified(req, cacheKey))
|
|
11
|
+
return NotModified();
|
|
12
|
+
const response = new LambdaHttpResponse(200, 'ok');
|
|
13
|
+
response.header(HttpHeader.ETag, cacheKey);
|
|
14
|
+
response.header(HttpHeader.CacheControl, 'no-store');
|
|
15
|
+
response.buffer(data, 'application/json');
|
|
16
|
+
req.set('bytes', data.byteLength);
|
|
17
|
+
return response;
|
|
18
|
+
}
|
|
19
|
+
export async function configTileSetGet(req) {
|
|
20
|
+
const config = await ConfigLoader.load(req);
|
|
21
|
+
req.timer.start('tileset:load');
|
|
22
|
+
const tileSet = await config.TileSet.get(config.TileSet.id(req.params.tileSet));
|
|
23
|
+
req.timer.end('tileset:load');
|
|
24
|
+
if (tileSet == null)
|
|
25
|
+
return NotFound();
|
|
26
|
+
return sendJson(req, tileSet);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load the imagery configuration by either name or id
|
|
30
|
+
*
|
|
31
|
+
* @param req
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export async function configImageryGet(req) {
|
|
35
|
+
var _a;
|
|
36
|
+
const config = await ConfigLoader.load(req);
|
|
37
|
+
req.timer.start('tileset:load');
|
|
38
|
+
const tileSet = await config.TileSet.get(config.TileSet.id(req.params.tileSet));
|
|
39
|
+
req.timer.end('tileset:load');
|
|
40
|
+
if (tileSet == null)
|
|
41
|
+
return NotFound();
|
|
42
|
+
req.timer.start('imagery:load');
|
|
43
|
+
let imagery = await config.Imagery.get(config.Imagery.id(req.params.imageryId));
|
|
44
|
+
req.timer.end('imagery:load');
|
|
45
|
+
if (imagery == null) {
|
|
46
|
+
const imageryLayer = tileSet.layers.find((f) => f.name === req.params.imageryId || standardizeLayerName(f.name) === req.params.imageryId);
|
|
47
|
+
if (imageryLayer == null)
|
|
48
|
+
return NotFound();
|
|
49
|
+
const tileMatrix = TileMatrixSets.find((_a = req.query.get('tileMatrix')) !== null && _a !== void 0 ? _a : GoogleTms.identifier);
|
|
50
|
+
if (tileMatrix == null)
|
|
51
|
+
return NotFound();
|
|
52
|
+
const imageryId = imageryLayer[tileMatrix.projection.code];
|
|
53
|
+
if (imageryId == null)
|
|
54
|
+
return NotFound();
|
|
55
|
+
req.timer.start('imagery:load:sub');
|
|
56
|
+
imagery = await config.Imagery.get(config.Imagery.id(imageryId));
|
|
57
|
+
req.timer.end('imagery:load:sub');
|
|
58
|
+
}
|
|
59
|
+
if (imagery == null)
|
|
60
|
+
return NotFound();
|
|
61
|
+
return sendJson(req, imagery);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"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"}
|
package/build/routes/fonts.d.ts
CHANGED
|
@@ -6,8 +6,6 @@ interface FontGet {
|
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
8
|
export declare function fontGet(req: LambdaHttpRequest<FontGet>): Promise<LambdaHttpResponse>;
|
|
9
|
-
/** Get the unique name of folders is a path that contain .pbf files */
|
|
10
|
-
export declare function getFonts(fontPath: string): Promise<string[]>;
|
|
11
9
|
export declare function fontList(req: LambdaHttpRequest): Promise<LambdaHttpResponse>;
|
|
12
10
|
export {};
|
|
13
11
|
//# sourceMappingURL=fonts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/routes/fonts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/routes/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIvE,UAAU,OAAO;IACf,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAG1F;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAElF"}
|