@basemaps/lambda-tiler 7.0.0 → 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.
- package/CHANGELOG.md +29 -0
- package/build/__tests__/config.data.d.ts +0 -1
- package/build/__tests__/config.data.js +2 -6
- package/build/__tests__/config.data.js.map +1 -1
- package/build/__tests__/index.test.d.ts +0 -1
- package/build/__tests__/index.test.js +28 -27
- package/build/__tests__/index.test.js.map +1 -1
- package/build/__tests__/tile.style.json.test.d.ts +0 -1
- package/build/__tests__/tile.style.json.test.js +38 -37
- package/build/__tests__/tile.style.json.test.js.map +1 -1
- package/build/__tests__/wmts.capability.test.d.ts +0 -1
- package/build/__tests__/wmts.capability.test.js +111 -122
- package/build/__tests__/wmts.capability.test.js.map +1 -1
- package/build/__tests__/xyz.util.d.ts +0 -1
- package/build/cli/render.preview.d.ts +0 -1
- package/build/cli/render.preview.js +13 -9
- package/build/cli/render.preview.js.map +1 -1
- package/build/cli/render.tile.d.ts +0 -1
- package/build/cli/render.tile.js +25 -17
- package/build/cli/render.tile.js.map +1 -1
- package/build/index.d.ts +0 -1
- package/build/index.js +24 -20
- package/build/index.js.map +1 -1
- package/build/routes/__tests__/attribution.test.d.ts +0 -1
- package/build/routes/__tests__/attribution.test.js +38 -37
- package/build/routes/__tests__/attribution.test.js.map +1 -1
- package/build/routes/__tests__/fonts.test.d.ts +0 -1
- package/build/routes/__tests__/fonts.test.js +61 -63
- package/build/routes/__tests__/fonts.test.js.map +1 -1
- package/build/routes/__tests__/health.test.d.ts +0 -1
- package/build/routes/__tests__/health.test.js +16 -16
- package/build/routes/__tests__/health.test.js.map +1 -1
- package/build/routes/__tests__/imagery.test.d.ts +0 -1
- package/build/routes/__tests__/imagery.test.js +10 -9
- package/build/routes/__tests__/imagery.test.js.map +1 -1
- package/build/routes/__tests__/memory.fs.d.ts +2 -3
- package/build/routes/__tests__/preview.index.test.d.ts +0 -1
- package/build/routes/__tests__/preview.index.test.js +88 -42
- package/build/routes/__tests__/preview.index.test.js.map +1 -1
- package/build/routes/__tests__/sprites.test.d.ts +0 -1
- package/build/routes/__tests__/sprites.test.js +34 -34
- package/build/routes/__tests__/sprites.test.js.map +1 -1
- package/build/routes/__tests__/tile.json.test.d.ts +0 -1
- package/build/routes/__tests__/tile.json.test.js +45 -51
- package/build/routes/__tests__/tile.json.test.js.map +1 -1
- package/build/routes/__tests__/tile.style.json.test.d.ts +0 -1
- package/build/routes/__tests__/tile.style.json.test.js +49 -50
- package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
- package/build/routes/__tests__/wmts.test.d.ts +0 -1
- package/build/routes/__tests__/wmts.test.js +27 -20
- package/build/routes/__tests__/wmts.test.js.map +1 -1
- package/build/routes/__tests__/xyz.test.d.ts +0 -1
- package/build/routes/__tests__/xyz.test.js +97 -49
- package/build/routes/__tests__/xyz.test.js.map +1 -1
- package/build/routes/attribution.d.ts +1 -1
- package/build/routes/attribution.js +4 -5
- package/build/routes/attribution.js.map +1 -1
- package/build/routes/config.d.ts +0 -1
- package/build/routes/config.js +1 -2
- package/build/routes/config.js.map +1 -1
- package/build/routes/fonts.d.ts +0 -1
- package/build/routes/fonts.js +2 -3
- package/build/routes/fonts.js.map +1 -1
- package/build/routes/health.d.ts +1 -2
- package/build/routes/health.js +5 -15
- package/build/routes/health.js.map +1 -1
- package/build/routes/imagery.d.ts +0 -1
- package/build/routes/imagery.js +1 -1
- package/build/routes/imagery.js.map +1 -1
- package/build/routes/ping.d.ts +0 -1
- package/build/routes/ping.js +1 -1
- package/build/routes/ping.js.map +1 -1
- package/build/routes/preview.d.ts +6 -5
- package/build/routes/preview.index.d.ts +0 -1
- package/build/routes/preview.index.js +6 -5
- package/build/routes/preview.index.js.map +1 -1
- package/build/routes/preview.js +35 -10
- package/build/routes/preview.js.map +1 -1
- package/build/routes/sprites.d.ts +0 -1
- package/build/routes/sprites.js +2 -4
- package/build/routes/sprites.js.map +1 -1
- package/build/routes/tile.json.d.ts +0 -1
- package/build/routes/tile.json.js +10 -5
- package/build/routes/tile.json.js.map +1 -1
- package/build/routes/tile.style.json.d.ts +1 -1
- package/build/routes/tile.style.json.js +79 -16
- package/build/routes/tile.style.json.js.map +1 -1
- package/build/routes/tile.wmts.d.ts +0 -1
- package/build/routes/tile.wmts.js +8 -9
- package/build/routes/tile.wmts.js.map +1 -1
- package/build/routes/tile.xyz.d.ts +0 -1
- package/build/routes/tile.xyz.js.map +1 -1
- package/build/routes/tile.xyz.raster.d.ts +7 -8
- package/build/routes/tile.xyz.raster.js +17 -13
- package/build/routes/tile.xyz.raster.js.map +1 -1
- package/build/routes/tile.xyz.vector.d.ts +0 -1
- package/build/routes/tile.xyz.vector.js +4 -3
- package/build/routes/tile.xyz.vector.js.map +1 -1
- package/build/routes/version.d.ts +0 -1
- package/build/routes/version.js +3 -4
- package/build/routes/version.js.map +1 -1
- package/build/util/__test__/config.loader.test.d.ts +0 -1
- package/build/util/__test__/config.loader.test.js +35 -34
- package/build/util/__test__/config.loader.test.js.map +1 -1
- package/build/util/__test__/filter.test.d.ts +0 -1
- package/build/util/__test__/filter.test.js +17 -16
- package/build/util/__test__/filter.test.js.map +1 -1
- package/build/util/__test__/validate.test.d.ts +0 -1
- package/build/util/__test__/validate.test.js +26 -43
- package/build/util/__test__/validate.test.js.map +1 -1
- package/build/util/assets.provider.d.ts +5 -5
- package/build/util/assets.provider.js +8 -8
- package/build/util/assets.provider.js.map +1 -1
- package/build/util/config.cache.d.ts +2 -2
- package/build/util/config.cache.js +14 -3
- package/build/util/config.cache.js.map +1 -1
- package/build/util/config.loader.d.ts +0 -1
- package/build/util/config.loader.js +11 -12
- package/build/util/config.loader.js.map +1 -1
- package/build/util/cotar.serve.d.ts +3 -3
- package/build/util/cotar.serve.js +2 -2
- package/build/util/cotar.serve.js.map +1 -1
- package/build/util/etag.d.ts +0 -1
- package/build/util/etag.js.map +1 -1
- package/build/util/filter.d.ts +0 -1
- package/build/util/filter.js +4 -5
- package/build/util/filter.js.map +1 -1
- package/build/util/response.d.ts +0 -1
- package/build/util/source.cache.d.ts +8 -9
- package/build/util/source.cache.js +27 -24
- package/build/util/source.cache.js.map +1 -1
- package/build/util/swapping.lru.d.ts +0 -1
- package/build/util/swapping.lru.js +48 -7
- package/build/util/swapping.lru.js.map +1 -1
- package/build/util/validate.d.ts +17 -5
- package/build/util/validate.js +51 -15
- package/build/util/validate.js.map +1 -1
- package/build/wmts.capability.d.ts +1 -2
- package/build/wmts.capability.js +81 -12
- package/build/wmts.capability.js.map +1 -1
- package/bundle.sh +2 -2
- package/package.json +16 -18
- package/scripts/create.deployment.package.mjs +4 -11
- package/src/__tests__/config.data.ts +2 -6
- package/src/__tests__/index.test.ts +29 -27
- package/src/__tests__/tile.style.json.test.ts +40 -37
- package/src/__tests__/wmts.capability.test.ts +139 -120
- package/src/cli/render.preview.ts +14 -9
- package/src/cli/render.tile.ts +27 -18
- package/src/index.ts +28 -23
- package/src/routes/__tests__/attribution.test.ts +40 -37
- package/src/routes/__tests__/fonts.test.ts +68 -64
- package/src/routes/__tests__/health.test.ts +18 -17
- package/src/routes/__tests__/imagery.test.ts +11 -9
- package/src/routes/__tests__/preview.index.test.ts +114 -40
- package/src/routes/__tests__/sprites.test.ts +39 -34
- package/src/routes/__tests__/tile.json.test.ts +41 -39
- package/src/routes/__tests__/tile.style.json.test.ts +49 -46
- package/src/routes/__tests__/wmts.test.ts +28 -20
- package/src/routes/__tests__/xyz.test.ts +134 -55
- package/src/routes/attribution.ts +2 -2
- package/src/routes/config.ts +1 -0
- package/src/routes/fonts.ts +3 -3
- package/src/routes/health.ts +7 -13
- package/src/routes/imagery.ts +2 -1
- package/src/routes/ping.ts +1 -1
- package/src/routes/preview.index.ts +9 -5
- package/src/routes/preview.ts +44 -15
- package/src/routes/sprites.ts +4 -5
- package/src/routes/tile.json.ts +9 -2
- package/src/routes/tile.style.json.ts +89 -13
- package/src/routes/tile.wmts.ts +4 -3
- package/src/routes/tile.xyz.raster.ts +26 -22
- package/src/routes/tile.xyz.ts +1 -0
- package/src/routes/tile.xyz.vector.ts +5 -3
- package/src/routes/version.ts +3 -3
- package/src/util/__test__/config.loader.test.ts +38 -34
- package/src/util/__test__/filter.test.ts +19 -16
- package/src/util/__test__/validate.test.ts +28 -43
- package/src/util/assets.provider.ts +10 -9
- package/src/util/config.cache.ts +4 -3
- package/src/util/config.loader.ts +13 -13
- package/src/util/cotar.serve.ts +3 -2
- package/src/util/source.cache.ts +15 -26
- package/src/util/validate.ts +61 -14
- package/src/wmts.capability.ts +3 -3
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/__tests__/config.data.d.ts.map +0 -1
- package/build/__tests__/index.test.d.ts.map +0 -1
- package/build/__tests__/tile.style.json.test.d.ts.map +0 -1
- package/build/__tests__/wmts.capability.test.d.ts.map +0 -1
- package/build/__tests__/xyz.util.d.ts.map +0 -1
- package/build/cli/render.preview.d.ts.map +0 -1
- package/build/cli/render.tile.d.ts.map +0 -1
- package/build/index.d.ts.map +0 -1
- package/build/routes/__tests__/attribution.test.d.ts.map +0 -1
- package/build/routes/__tests__/fonts.test.d.ts.map +0 -1
- package/build/routes/__tests__/health.test.d.ts.map +0 -1
- package/build/routes/__tests__/imagery.test.d.ts.map +0 -1
- package/build/routes/__tests__/memory.fs.d.ts.map +0 -1
- package/build/routes/__tests__/preview.index.test.d.ts.map +0 -1
- package/build/routes/__tests__/sprites.test.d.ts.map +0 -1
- package/build/routes/__tests__/tile.json.test.d.ts.map +0 -1
- package/build/routes/__tests__/tile.style.json.test.d.ts.map +0 -1
- package/build/routes/__tests__/wmts.test.d.ts.map +0 -1
- package/build/routes/__tests__/xyz.test.d.ts.map +0 -1
- package/build/routes/attribution.d.ts.map +0 -1
- package/build/routes/config.d.ts.map +0 -1
- package/build/routes/fonts.d.ts.map +0 -1
- package/build/routes/health.d.ts.map +0 -1
- package/build/routes/imagery.d.ts.map +0 -1
- package/build/routes/ping.d.ts.map +0 -1
- package/build/routes/preview.d.ts.map +0 -1
- package/build/routes/preview.index.d.ts.map +0 -1
- package/build/routes/sprites.d.ts.map +0 -1
- package/build/routes/tile.json.d.ts.map +0 -1
- package/build/routes/tile.style.json.d.ts.map +0 -1
- package/build/routes/tile.wmts.d.ts.map +0 -1
- package/build/routes/tile.xyz.d.ts.map +0 -1
- package/build/routes/tile.xyz.raster.d.ts.map +0 -1
- package/build/routes/tile.xyz.vector.d.ts.map +0 -1
- package/build/routes/version.d.ts.map +0 -1
- package/build/util/__test__/config.loader.test.d.ts.map +0 -1
- package/build/util/__test__/filter.test.d.ts.map +0 -1
- package/build/util/__test__/validate.test.d.ts.map +0 -1
- package/build/util/assets.provider.d.ts.map +0 -1
- package/build/util/config.cache.d.ts.map +0 -1
- package/build/util/config.loader.d.ts.map +0 -1
- package/build/util/cotar.serve.d.ts.map +0 -1
- package/build/util/etag.d.ts.map +0 -1
- package/build/util/filter.d.ts.map +0 -1
- package/build/util/response.d.ts.map +0 -1
- package/build/util/source.cache.d.ts.map +0 -1
- package/build/util/source.tracer.d.ts +0 -18
- package/build/util/source.tracer.d.ts.map +0 -1
- package/build/util/source.tracer.js +0 -26
- package/build/util/source.tracer.js.map +0 -1
- package/build/util/swapping.lru.d.ts.map +0 -1
- package/build/util/validate.d.ts.map +0 -1
- package/build/wmts.capability.d.ts.map +0 -1
- package/src/util/source.tracer.ts +0 -38
|
@@ -1,100 +1,148 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { afterEach, beforeEach, describe, it } from 'node:test';
|
|
1
3
|
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
4
|
import { LogConfig } from '@basemaps/shared';
|
|
3
5
|
import { round } from '@basemaps/test/build/rounding.js';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
+
import { FakeData } from '../../__tests__/config.data.js';
|
|
7
|
+
import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
6
8
|
import { handler } from '../../index.js';
|
|
7
9
|
import { ConfigLoader } from '../../util/config.loader.js';
|
|
8
10
|
import { Etag } from '../../util/etag.js';
|
|
9
|
-
import { FakeData } from '../../__tests__/config.data.js';
|
|
10
|
-
import { Api, mockRequest } from '../../__tests__/xyz.util.js';
|
|
11
|
-
const sandbox = sinon.createSandbox();
|
|
12
11
|
const TileSetNames = ['aerial', 'aerial:ōtorohanga_urban_2021_0-1m_RGB', '01FYWKAJ86W9P7RWM1VB62KD0H'];
|
|
13
|
-
|
|
12
|
+
describe('/v1/tiles', () => {
|
|
14
13
|
const config = new ConfigProviderMemory();
|
|
15
|
-
|
|
14
|
+
beforeEach(() => {
|
|
16
15
|
LogConfig.get().level = 'silent';
|
|
17
|
-
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
18
|
-
config.objects.clear();
|
|
19
16
|
for (const tileSetName of TileSetNames)
|
|
20
17
|
config.put(FakeData.tileSetRaster(tileSetName));
|
|
21
|
-
sandbox.stub(Etag, 'key').returns('fakeEtag');
|
|
22
18
|
});
|
|
23
|
-
|
|
19
|
+
afterEach(() => {
|
|
24
20
|
config.objects.clear();
|
|
25
|
-
sandbox.restore();
|
|
26
21
|
});
|
|
27
|
-
|
|
22
|
+
it('should export handler', async () => {
|
|
28
23
|
const base = await import('../../index.js');
|
|
29
|
-
|
|
24
|
+
assert.equal(typeof base.handler, 'function');
|
|
30
25
|
});
|
|
31
26
|
TileSetNames.forEach((tileSetName) => {
|
|
32
|
-
|
|
27
|
+
it(`should generate a tile/v1/tiles/${tileSetName}/global-mercator/0/0/0.png`, async (t) => {
|
|
28
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
29
|
+
t.mock.method(Etag, 'key', () => 'fakeEtag');
|
|
33
30
|
const request = mockRequest(`/v1/tiles/${tileSetName}/global-mercator/0/0/0.png`, 'get', Api.header);
|
|
34
31
|
const res = await handler.router.handle(request);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
assert.equal(res.status, 200);
|
|
33
|
+
assert.equal(res.header('content-type'), 'image/png');
|
|
34
|
+
assert.equal(res.header('eTaG'), 'fakeEtag');
|
|
38
35
|
// Validate the session information has been set correctly
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
assert.equal(request.logContext['tileSet'], tileSetName);
|
|
37
|
+
assert.deepEqual(request.logContext['xyz'], { x: 0, y: 0, z: 0 });
|
|
38
|
+
assert.deepEqual(round(request.logContext['location']), { lat: 0, lon: 0 });
|
|
42
39
|
});
|
|
43
40
|
});
|
|
44
|
-
|
|
41
|
+
it('should generate a tile 0,0,0 for webp', async (t) => {
|
|
42
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
43
|
+
t.mock.method(Etag, 'key', () => 'fakeEtag');
|
|
45
44
|
const request = mockRequest('/v1/tiles/aerial/3857/0/0/0.webp', 'get', Api.header);
|
|
46
45
|
const res = await handler.router.handle(request);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
assert.equal(res.status, 200, res.statusDescription);
|
|
47
|
+
assert.equal(res.header('content-type'), 'image/webp');
|
|
48
|
+
assert.equal(res.header('eTaG'), 'fakeEtag');
|
|
50
49
|
// o(res.body).equals(rasterMockBuffer.toString('base64'));
|
|
51
50
|
// Validate the session information has been set correctly
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
assert.deepEqual(request.logContext['xyz'], { x: 0, y: 0, z: 0 });
|
|
52
|
+
assert.deepEqual(round(request.logContext['location']), { lat: 0, lon: 0 });
|
|
54
53
|
});
|
|
55
54
|
['png', 'webp', 'jpeg', 'avif'].forEach((fmt) => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
it(`should 200 with empty ${fmt} if a tile is out of bounds`, async (t) => {
|
|
56
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
57
|
+
const request = mockRequest(`/v1/tiles/aerial/global-mercator/0/0/0.${fmt}`, 'get', Api.header);
|
|
58
|
+
const res = await handler.router.handle(request);
|
|
59
|
+
assert.equal(res.status, 200, res.statusDescription);
|
|
60
|
+
assert.equal(res.header('content-type'), `image/${fmt}`);
|
|
61
|
+
assert.notEqual(res.header('etag'), undefined);
|
|
62
|
+
assert.equal(res.header('cache-control'), 'public, max-age=604800, stale-while-revalidate=86400');
|
|
63
|
+
assert.deepEqual(request.logContext['pipeline'], 'rgba');
|
|
63
64
|
});
|
|
64
65
|
});
|
|
65
|
-
|
|
66
|
+
it('should 304 if a tile is not modified', async (t) => {
|
|
67
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
68
|
+
t.mock.method(Etag, 'key', () => 'fakeEtag');
|
|
66
69
|
const key = 'fakeEtag';
|
|
67
70
|
const request = mockRequest('/v1/tiles/aerial/global-mercator/0/0/0.png', 'get', {
|
|
68
71
|
'if-none-match': key,
|
|
69
72
|
...Api.header,
|
|
70
73
|
});
|
|
71
74
|
const res = await handler.router.handle(request);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
assert.equal(res.status, 304);
|
|
76
|
+
assert.equal(res.header('eTaG'), undefined);
|
|
77
|
+
assert.deepEqual(request.logContext['cache'], { match: key, hit: true });
|
|
75
78
|
});
|
|
76
|
-
|
|
79
|
+
it('should 404 if a tile is outside of the range', async (t) => {
|
|
80
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
77
81
|
const res = await handler.router.handle(mockRequest('/v1/tiles/aerial/global-mercator/25/0/0.png', 'get', Api.header));
|
|
78
|
-
|
|
82
|
+
assert.equal(res.status, 404);
|
|
79
83
|
const resB = await handler.router.handle(mockRequest('/v1/tiles/aerial/2193/17/0/0.png', 'get', Api.header));
|
|
80
|
-
|
|
84
|
+
assert.equal(resB.status, 404);
|
|
81
85
|
});
|
|
82
|
-
|
|
86
|
+
it('should support utf8 tilesets', async (t) => {
|
|
87
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
83
88
|
const fakeTileSet = FakeData.tileSetRaster('🦄 🌈');
|
|
84
89
|
config.put(fakeTileSet);
|
|
85
90
|
const req = mockRequest('/v1/tiles/🦄 🌈/global-mercator/0/0/0.png', 'get', Api.header);
|
|
86
|
-
|
|
91
|
+
assert.equal(req.path, '/v1/tiles/%F0%9F%A6%84%20%F0%9F%8C%88/global-mercator/0/0/0.png');
|
|
87
92
|
const res = await handler.router.handle(req);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
93
|
+
assert.equal(res.status, 200, res.statusDescription);
|
|
94
|
+
assert.equal(res.header('content-type'), 'image/png');
|
|
95
|
+
assert.notEqual(res.header('etag'), undefined);
|
|
96
|
+
assert.equal(res.header('cache-control'), 'public, max-age=604800, stale-while-revalidate=86400');
|
|
92
97
|
});
|
|
93
98
|
['/favicon.ico', '/index.html', '/foo/bar'].forEach((path) => {
|
|
94
|
-
|
|
99
|
+
it('should 404 on invalid paths: ' + path, async (t) => {
|
|
100
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
95
101
|
const res = await handler.router.handle(mockRequest(path, 'get', Api.header));
|
|
96
|
-
|
|
102
|
+
assert.equal(res.status, 404);
|
|
97
103
|
});
|
|
98
104
|
});
|
|
105
|
+
it('should 404 if pipelines are defined but one is not requested', async (t) => {
|
|
106
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
107
|
+
const elevation = FakeData.tileSetRaster('elevation');
|
|
108
|
+
elevation.outputs = [{ title: 'Terrain RGB', name: 'terrain-rgb' }];
|
|
109
|
+
config.put(elevation);
|
|
110
|
+
const request = mockRequest('/v1/tiles/elevation/3857/11/2022/1283.webp', 'get', Api.header);
|
|
111
|
+
const res = await handler.router.handle(request);
|
|
112
|
+
assert.equal(res.status, 404, res.statusDescription);
|
|
113
|
+
});
|
|
114
|
+
it('should generate a terrain-rgb 11/2022/1283 in webp', async (t) => {
|
|
115
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
116
|
+
const elevation = FakeData.tileSetRaster('elevation');
|
|
117
|
+
elevation.outputs = [{ title: 'Terrain RGB', name: 'terrain-rgb', format: ['png', 'webp'] }];
|
|
118
|
+
config.put(elevation);
|
|
119
|
+
const request = mockUrlRequest('/v1/tiles/elevation/3857/11/2022/1283.webp', '?pipeline=terrain-rgb', Api.header);
|
|
120
|
+
const res = await handler.router.handle(request);
|
|
121
|
+
assert.equal(res.status, 200, res.statusDescription);
|
|
122
|
+
// Validate the session information has been set correctly
|
|
123
|
+
assert.deepEqual(request.logContext['xyz'], { x: 2022, y: 1283, z: 11 });
|
|
124
|
+
assert.deepEqual(request.logContext['pipeline'], 'terrain-rgb');
|
|
125
|
+
assert.deepEqual(round(request.logContext['location']), { lat: -41.44272638, lon: 175.51757812 });
|
|
126
|
+
});
|
|
127
|
+
it('should validate lossless if pipelines are defined but one is not requested', async (t) => {
|
|
128
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
129
|
+
const elevation = FakeData.tileSetRaster('elevation');
|
|
130
|
+
elevation.outputs = [{ title: 'Terrain RGB', name: 'terrain-rgb', format: ['png'] }];
|
|
131
|
+
config.put(elevation);
|
|
132
|
+
// JPEG is not lossless
|
|
133
|
+
const res = await handler.router.handle(mockUrlRequest('/v1/tiles/elevation/3857/11/2022/1283.jpeg', '?pipeline=terrain-rgb', Api.header));
|
|
134
|
+
assert.equal(res.status, 400, res.statusDescription);
|
|
135
|
+
});
|
|
136
|
+
it('should validate not allow random extensions', async (t) => {
|
|
137
|
+
t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
|
|
138
|
+
const elevation = FakeData.tileSetRaster('elevation');
|
|
139
|
+
elevation.outputs = [{ title: 'Terrain RGB', name: 'terrain-rgb' }];
|
|
140
|
+
config.put(elevation);
|
|
141
|
+
// JPEG is not lossless
|
|
142
|
+
const resPbf = await handler.router.handle(mockUrlRequest('/v1/tiles/elevation/3857/11/2022/1283.pbf', '?pipeline=terrain-rgb', Api.header));
|
|
143
|
+
assert.equal(resPbf.status, 400, resPbf.statusDescription);
|
|
144
|
+
const resZz = await handler.router.handle(mockUrlRequest('/v1/tiles/elevation/3857/11/2022/1283.zzz', '?pipeline=terrain-rgb', Api.header));
|
|
145
|
+
assert.equal(resZz.status, 400, resZz.statusDescription);
|
|
146
|
+
});
|
|
99
147
|
});
|
|
100
148
|
//# sourceMappingURL=xyz.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xyz.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/xyz.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"xyz.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/xyz.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="polygon-clipping" />
|
|
1
2
|
import { NamedBounds, Projection } from '@basemaps/geo';
|
|
2
3
|
import { BBox, MultiPolygon } from '@linzjs/geojson';
|
|
3
4
|
import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
|
|
@@ -20,4 +21,3 @@ export interface TileAttributionGet {
|
|
|
20
21
|
* Create a LambdaHttpResponse for a attribution request
|
|
21
22
|
*/
|
|
22
23
|
export declare function tileAttributionGet(req: LambdaHttpRequest<TileAttributionGet>): Promise<LambdaHttpResponse>;
|
|
23
|
-
//# sourceMappingURL=attribution.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAllImagery, TileSetType } from '@basemaps/config';
|
|
2
2
|
import { Bounds, GoogleTms, Projection, Stac, TileMatrixSet, } from '@basemaps/geo';
|
|
3
|
-
import { multiPolygonToWgs84, union, Wgs84 } from '@linzjs/geojson';
|
|
4
3
|
import { extractYearRangeFromName, extractYearRangeFromTitle } from '@basemaps/shared';
|
|
4
|
+
import { multiPolygonToWgs84, union, Wgs84 } from '@linzjs/geojson';
|
|
5
5
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
6
6
|
import { ConfigLoader } from '../util/config.loader.js';
|
|
7
7
|
import { Etag } from '../util/etag.js';
|
|
@@ -54,7 +54,6 @@ function getHost(host) {
|
|
|
54
54
|
* links and assets for a more comprehensive STAC file.
|
|
55
55
|
*/
|
|
56
56
|
async function tileSetAttribution(req, tileSet, tileMatrix) {
|
|
57
|
-
var _a, _b, _c;
|
|
58
57
|
const proj = Projection.get(tileMatrix);
|
|
59
58
|
const cols = [];
|
|
60
59
|
const items = [];
|
|
@@ -70,7 +69,7 @@ async function tileSetAttribution(req, tileSet, tileMatrix) {
|
|
|
70
69
|
if (im == null)
|
|
71
70
|
continue;
|
|
72
71
|
const title = im.title;
|
|
73
|
-
const years =
|
|
72
|
+
const years = extractYearRangeFromTitle(im.title) ?? extractYearRangeFromName(im.name);
|
|
74
73
|
if (years == null)
|
|
75
74
|
continue;
|
|
76
75
|
const interval = yearRangeToInterval(years);
|
|
@@ -120,8 +119,8 @@ async function tileSetAttribution(req, tileSet, tileMatrix) {
|
|
|
120
119
|
type: 'FeatureCollection',
|
|
121
120
|
stac_version: Stac.Version,
|
|
122
121
|
stac_extensions: ['single-file-stac'],
|
|
123
|
-
title:
|
|
124
|
-
description:
|
|
122
|
+
title: tileSet.title ?? 'No title',
|
|
123
|
+
description: tileSet.description ?? 'No Description',
|
|
125
124
|
features: items,
|
|
126
125
|
collections: cols,
|
|
127
126
|
links: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/routes/attribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAIL,MAAM,EACN,SAAS,EAET,UAAU,EACV,IAAI,EAGJ,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/routes/attribution.ts"],"names":[],"mappings":"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"}
|
package/build/routes/config.d.ts
CHANGED
package/build/routes/config.js
CHANGED
|
@@ -32,7 +32,6 @@ export async function configTileSetGet(req) {
|
|
|
32
32
|
* @returns
|
|
33
33
|
*/
|
|
34
34
|
export async function configImageryGet(req) {
|
|
35
|
-
var _a;
|
|
36
35
|
const config = await ConfigLoader.load(req);
|
|
37
36
|
req.timer.start('tileset:load');
|
|
38
37
|
const tileSet = await config.TileSet.get(config.TileSet.id(req.params.tileSet));
|
|
@@ -46,7 +45,7 @@ export async function configImageryGet(req) {
|
|
|
46
45
|
const imageryLayer = tileSet.layers.find((f) => f.name === req.params.imageryId || standardizeLayerName(f.name) === req.params.imageryId);
|
|
47
46
|
if (imageryLayer == null)
|
|
48
47
|
return NotFound();
|
|
49
|
-
const tileMatrix = TileMatrixSets.find(
|
|
48
|
+
const tileMatrix = TileMatrixSets.find(req.query.get('tileMatrix') ?? GoogleTms.identifier);
|
|
50
49
|
if (tileMatrix == null)
|
|
51
50
|
return NotFound();
|
|
52
51
|
const imageryId = imageryLayer[tileMatrix.projection.code];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
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
package/build/routes/fonts.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
1
|
import { assetProvider } from '../util/assets.provider.js';
|
|
3
2
|
export async function fontGet(req) {
|
|
4
|
-
const targetFile =
|
|
3
|
+
const targetFile = `fonts/${req.params.fontStack}/${req.params.range}.pbf`;
|
|
5
4
|
return assetProvider.serve(req, targetFile, 'application/x-protobuf');
|
|
6
5
|
}
|
|
7
6
|
export async function fontList(req) {
|
|
8
|
-
return assetProvider.serve(req,
|
|
7
|
+
return assetProvider.serve(req, 'fonts/fonts.json', 'application/json');
|
|
9
8
|
}
|
|
10
9
|
//# sourceMappingURL=fonts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/routes/fonts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/routes/fonts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAA+B;IAC3D,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IAC3E,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAsB;IACnD,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAC1E,CAAC"}
|
package/build/routes/health.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
|
|
3
3
|
import { TileXyz } from '../util/validate.js';
|
|
4
4
|
interface TestTile extends TileXyz {
|
|
@@ -16,4 +16,3 @@ export declare function updateExpectedTile(test: TestTile, newTileData: Buffer,
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function healthGet(req: LambdaHttpRequest): Promise<LambdaHttpResponse>;
|
|
18
18
|
export {};
|
|
19
|
-
//# sourceMappingURL=health.d.ts.map
|
package/build/routes/health.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import { GoogleTms, Nztm2000QuadTms } from '@basemaps/geo';
|
|
2
3
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import * as path from 'path';
|
|
5
4
|
import PixelMatch from 'pixelmatch';
|
|
6
5
|
import Sharp from 'sharp';
|
|
7
|
-
import url from 'url';
|
|
8
6
|
import { ConfigLoader } from '../util/config.loader.js';
|
|
9
7
|
import { TileXyzRaster } from './tile.xyz.raster.js';
|
|
10
8
|
export const TestTiles = [
|
|
11
|
-
{ tileSet: 'health', tileMatrix: GoogleTms, tileType:
|
|
12
|
-
{ tileSet: 'health', tileMatrix: Nztm2000QuadTms, tileType:
|
|
9
|
+
{ tileSet: 'health', tileMatrix: GoogleTms, tileType: 'png', tile: { x: 252, y: 156, z: 8 } },
|
|
10
|
+
{ tileSet: 'health', tileMatrix: Nztm2000QuadTms, tileType: 'png', tile: { x: 30, y: 33, z: 6 } },
|
|
13
11
|
];
|
|
14
12
|
const TileSize = 256;
|
|
15
13
|
export async function getTestBuffer(test) {
|
|
@@ -18,15 +16,7 @@ export async function getTestBuffer(test) {
|
|
|
18
16
|
const tile = test.tile;
|
|
19
17
|
const expectedFile = `static/expected_tile_${test.tileMatrix.identifier}_${tile.x}_${tile.y}_z${tile.z}.${test.tileType}`;
|
|
20
18
|
// Initiate test img buffer if not defined
|
|
21
|
-
|
|
22
|
-
return await fs.promises.readFile(expectedFile);
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
if (e.code !== 'ENOENT')
|
|
26
|
-
throw e;
|
|
27
|
-
const otherFile = path.join(path.dirname(url.fileURLToPath(import.meta.url)), '..', '..', expectedFile);
|
|
28
|
-
return await fs.promises.readFile(otherFile);
|
|
29
|
-
}
|
|
19
|
+
return await fs.promises.readFile(expectedFile);
|
|
30
20
|
}
|
|
31
21
|
export async function updateExpectedTile(test, newTileData, difference) {
|
|
32
22
|
const tile = test.tile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMrD,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7F,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;CAClG,CAAC;AACF,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAEvB,MAAM,YAAY,GAAG,wBAAwB,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1H,0CAA0C;IAC1C,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc,EAAE,WAAmB,EAAE,UAAkB;IAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAEvB,MAAM,gBAAgB,GAAG,wBAAwB,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9H,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;SAChG,GAAG,EAAE;SACL,QAAQ,EAAE,CAAC;IACd,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,gBAAgB,WAAW,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAsB;IACpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,IAAI,OAAO,IAAI,IAAI;QAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IACtF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAA8B,EAAE,IAAI,CAAC,CAAC;QACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;QAC1G,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAElE,2BAA2B;QAC3B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC;QACtB,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE/D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpG,IAAI,iBAAiB,EAAE,CAAC;YACtB,oDAAoD;YACpD,0EAA0E;YAC1E,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;YACjH,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrD,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACvD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/build/routes/imagery.js
CHANGED
|
@@ -34,7 +34,7 @@ export async function imageryGet(req) {
|
|
|
34
34
|
const imagery = await config.Imagery.get(config.Imagery.id(req.params.imageryId));
|
|
35
35
|
if (imagery == null)
|
|
36
36
|
return NotFound();
|
|
37
|
-
const targetPath = fsa.
|
|
37
|
+
const targetPath = new URL(requestedFile, fsa.toUrl(imagery.uri));
|
|
38
38
|
try {
|
|
39
39
|
const buf = await fsa.read(targetPath);
|
|
40
40
|
const cacheKey = Etag.key(buf);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagery.js","sourceRoot":"","sources":["../../src/routes/imagery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"imagery.js","sourceRoot":"","sources":["../../src/routes/imagery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAE9B,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAMD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAkC;IACjE,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC1C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QAAE,OAAO,QAAQ,EAAE,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,QAAQ,EAAE,CAAC;IAEvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;YAAE,OAAO,WAAW,EAAE,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACpD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;QACjG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC1E,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACvD,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
package/build/routes/ping.d.ts
CHANGED
package/build/routes/ping.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
2
2
|
const OkResponse = new LambdaHttpResponse(200, 'ok');
|
|
3
3
|
OkResponse.header(HttpHeader.CacheControl, 'no-store');
|
|
4
4
|
export async function pingGet() {
|
package/build/routes/ping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../src/routes/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../src/routes/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrD,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ConfigTileSetRaster } from '@basemaps/config';
|
|
2
|
-
import {
|
|
1
|
+
import { ConfigTileSetRaster, ConfigTileSetRasterOutput } from '@basemaps/config';
|
|
2
|
+
import { LatLon, TileMatrixSet } from '@basemaps/geo';
|
|
3
3
|
import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
|
|
4
4
|
export interface PreviewGet {
|
|
5
5
|
Params: {
|
|
6
6
|
tileSet: string;
|
|
7
7
|
tileMatrix: string;
|
|
8
|
+
outputType?: string;
|
|
8
9
|
lat: string;
|
|
9
10
|
lon: string;
|
|
10
11
|
z: string;
|
|
@@ -14,6 +15,7 @@ export interface PreviewGet {
|
|
|
14
15
|
* Serve a preview of a imagery set
|
|
15
16
|
*
|
|
16
17
|
* /v1/preview/:tileSet/:tileMatrixSet/:z/:lon/:lat
|
|
18
|
+
* /v1/preview/:tileSet/:tileMatrixSet/:z/:lon/:lat/:outputType
|
|
17
19
|
*
|
|
18
20
|
* @example
|
|
19
21
|
* Raster Tile `/v1/preview/aerial/WebMercatorQuad/12/177.3998405/-39.0852555`
|
|
@@ -27,8 +29,8 @@ interface PreviewRenderContext {
|
|
|
27
29
|
tileMatrix: TileMatrixSet;
|
|
28
30
|
/** Center point of the preview */
|
|
29
31
|
location: LatLon;
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
+
/** Image format to render the preview as */
|
|
33
|
+
output: ConfigTileSetRasterOutput;
|
|
32
34
|
/** Zom level to be use, must be a integer */
|
|
33
35
|
z: number;
|
|
34
36
|
}
|
|
@@ -55,4 +57,3 @@ export interface CheckerBoard {
|
|
|
55
57
|
size: number;
|
|
56
58
|
}
|
|
57
59
|
export {};
|
|
58
|
-
//# sourceMappingURL=preview.d.ts.map
|
|
@@ -20,4 +20,3 @@ export interface PreviewIndexGet {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function loadAndServeIndexHtml(req: LambdaHttpRequest, loc?: LonLatZoom | null, tags?: Map<string, string>): Promise<LambdaHttpResponse>;
|
|
22
22
|
export declare function previewIndexGet(req: LambdaHttpRequest<PreviewIndexGet>): Promise<LambdaHttpResponse>;
|
|
23
|
-
//# sourceMappingURL=preview.index.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { promisify } from 'node:util';
|
|
2
|
+
import { gunzip } from 'node:zlib';
|
|
1
3
|
import { GoogleTms, LocationUrl, TileMatrixSets } from '@basemaps/geo';
|
|
4
|
+
import { Env, fsa, getPreviewQuery } from '@basemaps/shared';
|
|
2
5
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
3
6
|
import { ConfigLoader } from '../util/config.loader.js';
|
|
4
|
-
import { Env, fsa } from '@basemaps/shared';
|
|
5
7
|
import { isGzip } from '../util/cotar.serve.js';
|
|
6
|
-
import { gunzip } from 'node:zlib';
|
|
7
|
-
import { promisify } from 'node:util';
|
|
8
8
|
import { Etag } from '../util/etag.js';
|
|
9
9
|
const gunzipP = promisify(gunzip);
|
|
10
10
|
/**
|
|
@@ -25,8 +25,9 @@ export async function loadAndServeIndexHtml(req, loc, tags) {
|
|
|
25
25
|
location: '/?' + req.query.toString() + locUrl,
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
+
const staticUrl = fsa.toUrl(staticLocation);
|
|
28
29
|
try {
|
|
29
|
-
let indexHtml = await fsa.read(
|
|
30
|
+
let indexHtml = await fsa.read(new URL('index.html', staticUrl));
|
|
30
31
|
if (isGzip(indexHtml))
|
|
31
32
|
indexHtml = await gunzipP(indexHtml);
|
|
32
33
|
const res = new LambdaHttpResponse(200, 'ok');
|
|
@@ -79,7 +80,7 @@ export async function previewIndexGet(req) {
|
|
|
79
80
|
const short = LocationUrl.truncateLatLon(loc);
|
|
80
81
|
const shortLocation = [short.zoom, short.lon, short.lat].join('/');
|
|
81
82
|
const cfg = ConfigLoader.extract(req);
|
|
82
|
-
const queryParams = cfg
|
|
83
|
+
const queryParams = getPreviewQuery({ config: cfg, pipeline: query.pipeline ?? tileSet.outputs?.[0]?.name });
|
|
83
84
|
// Include tile matrix name eg "[NZTM2000Quad]" in the title if its not WebMercatorQuad
|
|
84
85
|
const tileMatrixId = tileMatrix.identifier === GoogleTms.identifier ? '' : ` [${tileMatrix.identifier}]`;
|
|
85
86
|
// List of tags to replace in the index.html
|