@basemaps/lambda-tiler 7.6.0 → 7.7.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 CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [7.7.0](https://github.com/linz/basemaps/compare/v7.6.0...v7.7.0) (2024-07-28)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **lambda-tiler:** prefer geojson files to be downloaded BM-1048 ([#3316](https://github.com/linz/basemaps/issues/3316)) ([8391416](https://github.com/linz/basemaps/commit/8391416d89ab597c8fc16a7f4ee304b45ea3f619))
12
+ * **landing:** Support Terrain for NZTM and add default LINZ-Terrain into debug ([#3307](https://github.com/linz/basemaps/issues/3307)) ([15a1aba](https://github.com/linz/basemaps/commit/15a1abaaa6255fd8edbc4e1ddfcdb22571ce6dc5))
13
+
14
+
15
+
16
+
17
+
6
18
  # [7.6.0](https://github.com/linz/basemaps/compare/v7.5.0...v7.6.0) (2024-07-11)
7
19
 
8
20
 
@@ -1,7 +1,21 @@
1
1
  import assert from 'node:assert';
2
- import { describe, it } from 'node:test';
2
+ import { before, beforeEach, describe, it } from 'node:test';
3
+ import { ConfigProviderMemory } from '@basemaps/config';
4
+ import { fsa, FsMemory } from '@chunkd/fs';
5
+ import { Imagery3857 } from '../../__tests__/config.data.js';
6
+ import { mockRequest } from '../../__tests__/xyz.util.js';
7
+ import { handler } from '../../index.js';
8
+ import { ConfigLoader } from '../../util/config.loader.js';
3
9
  import { isAllowedFile } from '../imagery.js';
4
10
  describe('ImageryRoute', () => {
11
+ const memory = new FsMemory();
12
+ const config = new ConfigProviderMemory();
13
+ before(() => {
14
+ fsa.register('memory://imagery/', memory);
15
+ });
16
+ beforeEach(() => {
17
+ config.assets = 'fake-s3://assets/';
18
+ });
5
19
  it('should allow geojson and json files only', () => {
6
20
  assert.equal(isAllowedFile('foo.geojson'), true);
7
21
  assert.equal(isAllowedFile('foo.json'), true);
@@ -10,5 +24,29 @@ describe('ImageryRoute', () => {
10
24
  assert.equal(isAllowedFile(''), false);
11
25
  assert.equal(isAllowedFile(null), false);
12
26
  });
27
+ it('should force download geojson files', async (t) => {
28
+ const fakeImagery = { ...Imagery3857 };
29
+ config.put(fakeImagery);
30
+ fakeImagery.uri = 'memory://imagery/';
31
+ t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
32
+ const res404 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/capture-area.geojson`));
33
+ assert.equal(res404.status, 404);
34
+ await memory.write(fsa.toUrl('memory://imagery/capture-area.geojson'), JSON.stringify({ hello: 'world' }));
35
+ const res200 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/capture-area.geojson`));
36
+ assert.equal(res200.status, 200);
37
+ assert.equal(res200.headers.get('content-disposition'), 'attachment');
38
+ });
39
+ it('should fetch stac files', async (t) => {
40
+ const fakeImagery = { ...Imagery3857 };
41
+ config.put(fakeImagery);
42
+ fakeImagery.uri = 'memory://imagery/';
43
+ t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
44
+ const res404 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/collection.json`));
45
+ assert.equal(res404.status, 404);
46
+ await memory.write(fsa.toUrl('memory://imagery/collection.json'), JSON.stringify({ hello: 'world' }));
47
+ const res200 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/collection.json`));
48
+ assert.equal(res200.status, 200);
49
+ assert.equal(res200.headers.get('content-disposition'), undefined);
50
+ });
13
51
  });
14
52
  //# sourceMappingURL=imagery.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imagery.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/imagery.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAyB,CAAC,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"imagery.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/imagery.test.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,10 @@ export async function imageryGet(req) {
44
44
  response.header(HttpHeader.ETag, cacheKey);
45
45
  response.header(HttpHeader.ContentEncoding, 'gzip');
46
46
  response.header(HttpHeader.CacheControl, 'public, max-age=604800, stale-while-revalidate=86400');
47
+ // Force geojson files to be downloaded
48
+ if (requestedFile.endsWith('.geojson')) {
49
+ response.header('Content-Disposition', 'attachment');
50
+ }
47
51
  response.buffer(isGzip(buf) ? buf : await gzipP(buf), 'application/json');
48
52
  req.set('bytes', buf.byteLength);
49
53
  return response;
@@ -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;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"}
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,uCAAuC;QACvC,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;QACD,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"}
@@ -1,4 +1,5 @@
1
1
  import { ConfigId, ConfigPrefix, TileSetType } from '@basemaps/config';
2
+ import { DefaultExaggeration } from '@basemaps/config/build/config/vector.style.js';
2
3
  import { GoogleTms, TileMatrixSets } from '@basemaps/geo';
3
4
  import { Env, toQueryString } from '@basemaps/shared';
4
5
  import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
@@ -67,13 +68,13 @@ export function convertStyleJson(style, tileMatrix, apiKey, config, layers) {
67
68
  styleJson.sky = style.sky;
68
69
  return styleJson;
69
70
  }
70
- function setStyleTerrain(style, terrain) {
71
+ function setStyleTerrain(style, terrain, tileMatrix) {
71
72
  const source = Object.keys(style.sources).find((s) => s === terrain);
72
73
  if (source == null)
73
74
  throw new LambdaHttpResponse(400, `Terrain: ${terrain} is not exists in the style source.`);
74
75
  style.terrain = {
75
76
  source,
76
- exaggeration: 1.2,
77
+ exaggeration: DefaultExaggeration[tileMatrix.identifier] ?? DefaultExaggeration[GoogleTms.identifier],
77
78
  };
78
79
  }
79
80
  async function ensureTerrain(req, tileMatrix, apiKey, style) {
@@ -112,7 +113,7 @@ export async function tileSetToStyle(req, tileSet, tileMatrix, apiKey, terrain)
112
113
  await ensureTerrain(req, tileMatrix, apiKey, style);
113
114
  // Add terrain in style
114
115
  if (terrain)
115
- setStyleTerrain(style, terrain);
116
+ setStyleTerrain(style, terrain, tileMatrix);
116
117
  const data = Buffer.from(JSON.stringify(style));
117
118
  const cacheKey = Etag.key(data);
118
119
  if (Etag.isNotModified(req, cacheKey))
@@ -181,7 +182,7 @@ export async function tileSetOutputToStyle(req, tileSet, tileMatrix, apiKey, ter
181
182
  await ensureTerrain(req, tileMatrix, apiKey, style);
182
183
  // Add terrain in style
183
184
  if (terrain)
184
- setStyleTerrain(style, terrain);
185
+ setStyleTerrain(style, terrain, tileMatrix);
185
186
  const data = Buffer.from(JSON.stringify(style));
186
187
  const cacheKey = Etag.key(data);
187
188
  if (Etag.isNotModified(req, cacheKey))
@@ -225,7 +226,7 @@ export async function styleJsonGet(req) {
225
226
  await ensureTerrain(req, tileMatrix, apiKey, style);
226
227
  // Add terrain in style
227
228
  if (terrain)
228
- setStyleTerrain(style, terrain);
229
+ setStyleTerrain(style, terrain, tileMatrix);
229
230
  const data = Buffer.from(JSON.stringify(style));
230
231
  const cacheKey = Etag.key(data);
231
232
  if (Etag.isNotModified(req, cacheKey))
@@ -1 +1 @@
1
- {"version":3,"file":"tile.style.json.js","sourceRoot":"","sources":["../../src/routes/tile.style.json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile.style.json.js","sourceRoot":"","sources":["../../src/routes/tile.style.json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAkD,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAiB,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAY,EACZ,UAA0B,EAC1B,MAAe,EACf,MAAsB;IAEtB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,UAAU;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,sBAAsB;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM;QAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM;QAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,UAAyB,EACzB,MAAc,EACd,MAAqB,EACrB,MAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAY,CAAC;IACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,qDAAqD,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YACvG,CAAC;YACD,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAc;QAC3B,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;KACvC,CAAC;IAEF,IAAI,KAAK,CAAC,QAAQ;QAAE,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM;QAAE,SAAS,CAAC,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpG,IAAI,KAAK,CAAC,MAAM;QAAE,SAAS,CAAC,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpG,IAAI,KAAK,CAAC,GAAG;QAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IAEzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAS,eAAe,CAAC,KAAgB,EAAE,OAAe,EAAE,UAAyB;IACnF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IACrE,IAAI,MAAM,IAAI,IAAI;QAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,YAAY,OAAO,qCAAqC,CAAC,CAAC;IAChH,KAAK,CAAC,OAAO,GAAG;QACd,MAAM;QACN,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC;KACtG,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAgC,EAChC,UAAyB,EACzB,MAAc,EACd,KAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QACvG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG;YAC9B,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC,kBAAkB,CAAC,uBAAuB,UAAU,CAAC,UAAU,mBAAmB,cAAc,EAAE,CAAC,CAAC;SAC7G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAgC,EAChC,OAA4B,EAC5B,UAAyB,EACzB,MAAc,EACd,OAAgB;IAEhB,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAEnF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;IAE5E,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAE7F,MAAM,OAAO,GACX,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAClC,aAAa,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,gBAAgB,UAAU,GAAG,KAAK,EAAE,CAAC;IAEzF,MAAM,OAAO,GAAG,YAAY,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAc;QACvB,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;QAC3E,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,2CAA2C;IAC3C,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEpD,uBAAuB;IACvB,IAAI,OAAO;QAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,WAAW,EAAE,CAAC;IAE5D,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAgC,EAChC,OAA4B,EAC5B,UAAyB,EACzB,MAAc,EACd,OAAgB;IAEhB,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,YAAY,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,kBAAkB;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;YAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,GAAG,OAAO,aAAa,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,gBAAgB,MAAM,GAAG,KAAK,EAAE,CAAC;YAE7G,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAClC,sEAAsE;gBACtE,OAAO,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG;oBACrC,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,CAAC,OAAO,GAAG,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7C,QAAQ,EAAE,GAAG;iBACd,CAAC;gBACF,OAAO,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG;oBACzC,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,CAAC,OAAO,GAAG,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7C,QAAQ,EAAE,GAAG;iBACd,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,OAAO,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG;oBACrC,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,CAAC,OAAO,GAAG,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7C,QAAQ,EAAE,GAAG;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,QAAQ;gBACd,MAAM;aACP,CAAC,CAAC;YACH,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAc;QACvB,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,MAAM;KACP,CAAC;IAEF,yCAAyC;IACzC,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEpD,uBAAuB;IACvB,IAAI,OAAO;QAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAgC;IACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;IACvC,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5F,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,kDAAkD;QAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM;YAAE,OAAO,QAAQ,EAAE,CAAC;QAC3D,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;;YAC7F,OAAO,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,sCAAsC;IACtC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,WAAW,CAAC,KAAK,EACjB,UAAU,EACV,MAAM,EACN,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EACzB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAC1E,CAAC;IAEF,yCAAyC;IACzC,qFAAqF;IACrF,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEpD,uBAAuB;IACvB,IAAI,OAAO;QAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,WAAW,EAAE,CAAC;IAE5D,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basemaps/lambda-tiler",
3
- "version": "7.6.0",
3
+ "version": "7.7.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/linz/basemaps.git",
@@ -22,12 +22,12 @@
22
22
  "types": "./build/index.d.ts",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "@basemaps/config": "^7.6.0",
26
- "@basemaps/config-loader": "^7.6.0",
25
+ "@basemaps/config": "^7.7.0",
26
+ "@basemaps/config-loader": "^7.7.0",
27
27
  "@basemaps/geo": "^7.5.0",
28
- "@basemaps/shared": "^7.6.0",
28
+ "@basemaps/shared": "^7.7.0",
29
29
  "@basemaps/tiler": "^7.5.0",
30
- "@basemaps/tiler-sharp": "^7.6.0",
30
+ "@basemaps/tiler-sharp": "^7.7.0",
31
31
  "@linzjs/geojson": "^7.5.0",
32
32
  "@linzjs/lambda": "^4.0.0",
33
33
  "p-limit": "^4.0.0",
@@ -55,5 +55,5 @@
55
55
  "@types/pixelmatch": "^5.0.0",
56
56
  "pretty-json-log": "^1.0.0"
57
57
  },
58
- "gitHead": "b97ded866e18b19410cb3effd5c67240e8980da4"
58
+ "gitHead": "c8752c8791d1e2bab45f52cb10dc2d7df3c2a5a2"
59
59
  }
@@ -1,9 +1,27 @@
1
1
  import assert from 'node:assert';
2
- import { describe, it } from 'node:test';
2
+ import { before, beforeEach, describe, it } from 'node:test';
3
3
 
4
+ import { ConfigProviderMemory } from '@basemaps/config';
5
+ import { fsa, FsMemory } from '@chunkd/fs';
6
+
7
+ import { Imagery3857 } from '../../__tests__/config.data.js';
8
+ import { mockRequest } from '../../__tests__/xyz.util.js';
9
+ import { handler } from '../../index.js';
10
+ import { ConfigLoader } from '../../util/config.loader.js';
4
11
  import { isAllowedFile } from '../imagery.js';
5
12
 
6
13
  describe('ImageryRoute', () => {
14
+ const memory = new FsMemory();
15
+ const config = new ConfigProviderMemory();
16
+
17
+ before(() => {
18
+ fsa.register('memory://imagery/', memory);
19
+ });
20
+
21
+ beforeEach(() => {
22
+ config.assets = 'fake-s3://assets/';
23
+ });
24
+
7
25
  it('should allow geojson and json files only', () => {
8
26
  assert.equal(isAllowedFile('foo.geojson'), true);
9
27
  assert.equal(isAllowedFile('foo.json'), true);
@@ -12,4 +30,36 @@ describe('ImageryRoute', () => {
12
30
  assert.equal(isAllowedFile(''), false);
13
31
  assert.equal(isAllowedFile(null as unknown as string), false);
14
32
  });
33
+
34
+ it('should force download geojson files', async (t) => {
35
+ const fakeImagery = { ...Imagery3857 };
36
+ config.put(fakeImagery);
37
+ fakeImagery.uri = 'memory://imagery/';
38
+
39
+ t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
40
+ const res404 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/capture-area.geojson`));
41
+ assert.equal(res404.status, 404);
42
+
43
+ await memory.write(fsa.toUrl('memory://imagery/capture-area.geojson'), JSON.stringify({ hello: 'world' }));
44
+
45
+ const res200 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/capture-area.geojson`));
46
+ assert.equal(res200.status, 200);
47
+ assert.equal(res200.headers.get('content-disposition'), 'attachment');
48
+ });
49
+
50
+ it('should fetch stac files', async (t) => {
51
+ const fakeImagery = { ...Imagery3857 };
52
+ config.put(fakeImagery);
53
+ fakeImagery.uri = 'memory://imagery/';
54
+
55
+ t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
56
+ const res404 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/collection.json`));
57
+ assert.equal(res404.status, 404);
58
+
59
+ await memory.write(fsa.toUrl('memory://imagery/collection.json'), JSON.stringify({ hello: 'world' }));
60
+
61
+ const res200 = await handler.router.handle(mockRequest(`/v1/imagery/${fakeImagery.id}/collection.json`));
62
+ assert.equal(res200.status, 200);
63
+ assert.equal(res200.headers.get('content-disposition'), undefined);
64
+ });
15
65
  });
@@ -51,6 +51,10 @@ export async function imageryGet(req: LambdaHttpRequest<ImageryGet>): Promise<La
51
51
  response.header(HttpHeader.ETag, cacheKey);
52
52
  response.header(HttpHeader.ContentEncoding, 'gzip');
53
53
  response.header(HttpHeader.CacheControl, 'public, max-age=604800, stale-while-revalidate=86400');
54
+ // Force geojson files to be downloaded
55
+ if (requestedFile.endsWith('.geojson')) {
56
+ response.header('Content-Disposition', 'attachment');
57
+ }
54
58
  response.buffer(isGzip(buf) ? buf : await gzipP(buf), 'application/json');
55
59
  req.set('bytes', buf.byteLength);
56
60
  return response;
@@ -1,4 +1,5 @@
1
1
  import { ConfigId, ConfigPrefix, ConfigTileSetRaster, Layer, Sources, StyleJson, TileSetType } from '@basemaps/config';
2
+ import { DefaultExaggeration } from '@basemaps/config/build/config/vector.style.js';
2
3
  import { GoogleTms, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
3
4
  import { Env, toQueryString } from '@basemaps/shared';
4
5
  import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
@@ -81,12 +82,12 @@ export interface StyleGet {
81
82
  };
82
83
  }
83
84
 
84
- function setStyleTerrain(style: StyleJson, terrain: string): void {
85
+ function setStyleTerrain(style: StyleJson, terrain: string, tileMatrix: TileMatrixSet): void {
85
86
  const source = Object.keys(style.sources).find((s) => s === terrain);
86
87
  if (source == null) throw new LambdaHttpResponse(400, `Terrain: ${terrain} is not exists in the style source.`);
87
88
  style.terrain = {
88
89
  source,
89
- exaggeration: 1.2,
90
+ exaggeration: DefaultExaggeration[tileMatrix.identifier] ?? DefaultExaggeration[GoogleTms.identifier],
90
91
  };
91
92
  }
92
93
 
@@ -143,7 +144,7 @@ export async function tileSetToStyle(
143
144
  await ensureTerrain(req, tileMatrix, apiKey, style);
144
145
 
145
146
  // Add terrain in style
146
- if (terrain) setStyleTerrain(style, terrain);
147
+ if (terrain) setStyleTerrain(style, terrain, tileMatrix);
147
148
 
148
149
  const data = Buffer.from(JSON.stringify(style));
149
150
 
@@ -226,7 +227,7 @@ export async function tileSetOutputToStyle(
226
227
  await ensureTerrain(req, tileMatrix, apiKey, style);
227
228
 
228
229
  // Add terrain in style
229
- if (terrain) setStyleTerrain(style, terrain);
230
+ if (terrain) setStyleTerrain(style, terrain, tileMatrix);
230
231
 
231
232
  const data = Buffer.from(JSON.stringify(style));
232
233
 
@@ -277,7 +278,7 @@ export async function styleJsonGet(req: LambdaHttpRequest<StyleGet>): Promise<La
277
278
  await ensureTerrain(req, tileMatrix, apiKey, style);
278
279
 
279
280
  // Add terrain in style
280
- if (terrain) setStyleTerrain(style, terrain);
281
+ if (terrain) setStyleTerrain(style, terrain, tileMatrix);
281
282
 
282
283
  const data = Buffer.from(JSON.stringify(style));
283
284