@basemaps/lambda-tiler 7.9.0 → 7.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/build/__tests__/tile.style.json.test.js +13 -7
  3. package/build/__tests__/tile.style.json.test.js.map +1 -1
  4. package/build/routes/__tests__/health.test.js +40 -20
  5. package/build/routes/__tests__/health.test.js.map +1 -1
  6. package/build/routes/__tests__/tile.style.json.test.js +57 -0
  7. package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
  8. package/build/routes/__tests__/xyz.test.js +13 -0
  9. package/build/routes/__tests__/xyz.test.js.map +1 -1
  10. package/build/routes/health.d.ts +17 -0
  11. package/build/routes/health.js +119 -21
  12. package/build/routes/health.js.map +1 -1
  13. package/build/routes/tile.style.json.d.ts +35 -13
  14. package/build/routes/tile.style.json.js +108 -123
  15. package/build/routes/tile.style.json.js.map +1 -1
  16. package/build/routes/tile.xyz.vector.js +9 -9
  17. package/build/routes/tile.xyz.vector.js.map +1 -1
  18. package/build/util/__test__/nztm.style.test.d.ts +1 -0
  19. package/build/util/__test__/nztm.style.test.js +87 -0
  20. package/build/util/__test__/nztm.style.test.js.map +1 -0
  21. package/build/util/nztm.style.d.ts +12 -0
  22. package/build/util/nztm.style.js +45 -0
  23. package/build/util/nztm.style.js.map +1 -0
  24. package/package.json +7 -6
  25. package/src/__tests__/tile.style.json.test.ts +16 -7
  26. package/src/routes/__tests__/health.test.ts +46 -22
  27. package/src/routes/__tests__/tile.style.json.test.ts +60 -0
  28. package/src/routes/__tests__/xyz.test.ts +18 -0
  29. package/src/routes/health.ts +129 -21
  30. package/src/routes/tile.style.json.ts +131 -145
  31. package/src/routes/tile.xyz.vector.ts +10 -6
  32. package/src/util/__test__/nztm.style.test.ts +100 -0
  33. package/src/util/nztm.style.ts +44 -0
  34. package/tsconfig.tsbuildinfo +1 -1
@@ -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":"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"}
@@ -1,4 +1,3 @@
1
- import { GoogleTms } from '@basemaps/geo';
2
1
  import { fsa } from '@basemaps/shared';
3
2
  import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
4
3
  import { isGzip } from '../util/cotar.serve.js';
@@ -10,14 +9,15 @@ export const tileXyzVector = {
10
9
  async tile(req, tileSet, xyz) {
11
10
  if (xyz.tileType !== 'pbf')
12
11
  return NotFound();
13
- if (xyz.tileMatrix.identifier !== GoogleTms.identifier)
14
- return NotFound();
15
- if (tileSet.layers.length > 1)
16
- return new LambdaHttpResponse(500, 'Too many layers in tileset');
17
- const [layer] = tileSet.layers;
18
- const layerId = layer[3857];
19
- if (layerId == null)
20
- return new LambdaHttpResponse(500, 'Layer url not found from tileset Config');
12
+ // Vector tiles cannot be merged (yet!)
13
+ if (tileSet.layers.length > 1) {
14
+ return new LambdaHttpResponse(500, `Too many layers in vector tileset ${tileSet.layers.length}`);
15
+ }
16
+ const epsgCode = xyz.tileMatrix.projection.code;
17
+ const layerId = tileSet.layers[0][epsgCode];
18
+ if (layerId == null) {
19
+ return new LambdaHttpResponse(404, `No data found for tile matrix: ${xyz.tileMatrix.identifier}`);
20
+ }
21
21
  // Flip Y coordinate because MBTiles files are TMS.
22
22
  const y = (1 << xyz.tile.z) - 1 - xyz.tile.y;
23
23
  const tilePath = `tiles/${xyz.tile.z}/${xyz.tile.x}/${y}.pbf.gz`;
@@ -1 +1 @@
1
- {"version":3,"file":"tile.xyz.vector.js","sourceRoot":"","sources":["../../src/routes/tile.xyz.vector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile.xyz.vector.js","sourceRoot":"","sources":["../../src/routes/tile.xyz.vector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ import assert from 'node:assert';
2
+ import { describe, it } from 'node:test';
3
+ import { convertStyleToNztmStyle } from '../nztm.style.js';
4
+ describe('NZTM2000QuadStyle', () => {
5
+ const fakeStyle = {
6
+ version: 8,
7
+ id: 'test',
8
+ name: 'topographic',
9
+ sources: {},
10
+ layers: [],
11
+ glyphs: '/glyphs',
12
+ sprite: '/sprite',
13
+ metadata: { id: 'test' },
14
+ };
15
+ it('should not modify the source style', () => {
16
+ const baseStyle = {
17
+ ...fakeStyle,
18
+ terrain: { exaggeration: 1.1, source: 'abc' },
19
+ };
20
+ convertStyleToNztmStyle(baseStyle);
21
+ assert.equal(baseStyle.terrain?.exaggeration, 1.1);
22
+ convertStyleToNztmStyle(baseStyle, false);
23
+ assert.equal(baseStyle.terrain?.exaggeration, 4.4);
24
+ });
25
+ it('should convert min/maxzooms', () => {
26
+ const newStyle = convertStyleToNztmStyle({
27
+ ...fakeStyle,
28
+ layers: [{ minzoom: 5, maxzoom: 10, id: 'something', type: '' }],
29
+ });
30
+ assert.deepEqual(newStyle.layers[0], { minzoom: 3, maxzoom: 8, id: 'something', type: '' });
31
+ });
32
+ it('should offset terrain', () => {
33
+ const newStyle = convertStyleToNztmStyle({
34
+ ...fakeStyle,
35
+ terrain: { exaggeration: 1.1, source: 'abc' },
36
+ });
37
+ assert.deepEqual(newStyle.terrain, { exaggeration: 4.4, source: 'abc' });
38
+ });
39
+ it('should convert stops inside of paint and layout', () => {
40
+ const newStyle = convertStyleToNztmStyle({
41
+ ...fakeStyle,
42
+ layers: [
43
+ {
44
+ layout: {
45
+ 'line-width': {
46
+ stops: [
47
+ [16, 0.75],
48
+ [24, 1.5],
49
+ ],
50
+ },
51
+ },
52
+ paint: {
53
+ 'line-width': {
54
+ stops: [
55
+ [16, 0.75],
56
+ [24, 1.5],
57
+ ],
58
+ },
59
+ },
60
+ id: 'something',
61
+ type: '',
62
+ },
63
+ ],
64
+ });
65
+ assert.deepEqual(newStyle.layers[0], {
66
+ layout: {
67
+ 'line-width': {
68
+ stops: [
69
+ [14, 0.75],
70
+ [22, 1.5],
71
+ ],
72
+ },
73
+ },
74
+ paint: {
75
+ 'line-width': {
76
+ stops: [
77
+ [14, 0.75],
78
+ [22, 1.5],
79
+ ],
80
+ },
81
+ },
82
+ id: 'something',
83
+ type: '',
84
+ });
85
+ });
86
+ });
87
+ //# sourceMappingURL=nztm.style.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nztm.style.test.js","sourceRoot":"","sources":["../../../src/util/__test__/nztm.style.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,MAAM,SAAS,GAAc;QAC3B,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;KACzB,CAAC;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG;YAChB,GAAG,SAAS;YACZ,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;SAC9C,CAAC;QAEF,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QAEnD,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;YACvC,GAAG,SAAS;YACZ,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACjE,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,QAAQ,GAAG,uBAAuB,CAAC;YACvC,GAAG,SAAS;YACZ,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;SAC9C,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;YACvC,GAAG,SAAS;YACZ,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE;wBACN,YAAY,EAAE;4BACZ,KAAK,EAAE;gCACL,CAAC,EAAE,EAAE,IAAI,CAAC;gCACV,CAAC,EAAE,EAAE,GAAG,CAAC;6BACV;yBACF;qBACF;oBAED,KAAK,EAAE;wBACL,YAAY,EAAE;4BACZ,KAAK,EAAE;gCACL,CAAC,EAAE,EAAE,IAAI,CAAC;gCACV,CAAC,EAAE,EAAE,GAAG,CAAC;6BACV;yBACF;qBACF;oBACD,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,EAAE;iBACT;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,EAAE;gBACN,YAAY,EAAE;oBACZ,KAAK,EAAE;wBACL,CAAC,EAAE,EAAE,IAAI,CAAC;wBACV,CAAC,EAAE,EAAE,GAAG,CAAC;qBACV;iBACF;aACF;YACD,KAAK,EAAE;gBACL,YAAY,EAAE;oBACZ,KAAK,EAAE;wBACL,CAAC,EAAE,EAAE,IAAI,CAAC;wBACV,CAAC,EAAE,EAAE,GAAG,CAAC;qBACV;iBACF;aACF;YACD,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { StyleJson } from '@basemaps/config';
2
+ /**
3
+ * Convert a style json from a WebMercatorQuad style into a NZTM2000Quad style,
4
+ * This creates a clone of the source style and does not modify the source
5
+ *
6
+ * NZTM2000Quad is offset from WebMercatorQuad by two zoom levels
7
+ *
8
+ * @param inputStyle style to convert
9
+ * @param clone Should the input style be cloned or modified
10
+ * @returns a new style converted into NZTM2000Quad zooms
11
+ */
12
+ export declare function convertStyleToNztmStyle(inputStyle: StyleJson, clone?: boolean): StyleJson;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * limited checking to cast a unknown paint/layout into one with stops
3
+ */
4
+ function hasStops(x) {
5
+ if (x == null)
6
+ return false;
7
+ return Array.isArray(x['stops']);
8
+ }
9
+ /**
10
+ * Convert a style json from a WebMercatorQuad style into a NZTM2000Quad style,
11
+ * This creates a clone of the source style and does not modify the source
12
+ *
13
+ * NZTM2000Quad is offset from WebMercatorQuad by two zoom levels
14
+ *
15
+ * @param inputStyle style to convert
16
+ * @param clone Should the input style be cloned or modified
17
+ * @returns a new style converted into NZTM2000Quad zooms
18
+ */
19
+ export function convertStyleToNztmStyle(inputStyle, clone = true) {
20
+ const style = clone ? structuredClone(inputStyle) : inputStyle;
21
+ for (const layer of style.layers) {
22
+ // Adjust the min/max zoom
23
+ if (layer.minzoom)
24
+ layer.minzoom = Math.max(0, layer.minzoom - 2);
25
+ if (layer.maxzoom)
26
+ layer.maxzoom = Math.max(0, layer.maxzoom - 2);
27
+ // Check all the pain and layout for "stops" then adjust the stops by two
28
+ const stylesToCheck = [layer.paint, layer.layout];
29
+ for (const obj of stylesToCheck) {
30
+ if (obj == null)
31
+ continue;
32
+ for (const val of Object.values(obj)) {
33
+ if (!hasStops(val))
34
+ continue;
35
+ for (const stop of val.stops)
36
+ stop[0] = Math.max(0, stop[0] - 2);
37
+ }
38
+ }
39
+ }
40
+ /** Based on {@link DefaultExaggeration} offsetting by 2 two levels changes the exaggeration needed by approx 4x */
41
+ if (style.terrain)
42
+ style.terrain.exaggeration = style.terrain.exaggeration * 4;
43
+ return style;
44
+ }
45
+ //# sourceMappingURL=nztm.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nztm.style.js","sourceRoot":"","sources":["../../src/util/nztm.style.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAU;IAC1B,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAE,CAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAqB,EAAE,QAAiB,IAAI;IAClF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAE/D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,0BAA0B;QAC1B,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAElE,yEAAyE;QACzE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,GAAG,IAAI,IAAI;gBAAE,SAAS;YAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK;oBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mHAAmH;IACnH,IAAI,KAAK,CAAC,OAAO;QAAE,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;IAE/E,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basemaps/lambda-tiler",
3
- "version": "7.9.0",
3
+ "version": "7.10.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/linz/basemaps.git",
@@ -23,13 +23,14 @@
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
25
  "@basemaps/config": "^7.7.0",
26
- "@basemaps/config-loader": "^7.9.0",
26
+ "@basemaps/config-loader": "^7.10.0",
27
27
  "@basemaps/geo": "^7.5.0",
28
- "@basemaps/shared": "^7.9.0",
28
+ "@basemaps/shared": "^7.10.0",
29
29
  "@basemaps/tiler": "^7.5.0",
30
30
  "@basemaps/tiler-sharp": "^7.7.0",
31
- "@linzjs/geojson": "^7.5.0",
31
+ "@linzjs/geojson": "^7.10.0",
32
32
  "@linzjs/lambda": "^4.0.0",
33
+ "@mapbox/vector-tile": "^2.0.3",
33
34
  "p-limit": "^4.0.0",
34
35
  "path-to-regexp": "^6.1.0",
35
36
  "pixelmatch": "^5.1.0",
@@ -49,11 +50,11 @@
49
50
  "bundle": "./bundle.sh"
50
51
  },
51
52
  "devDependencies": {
52
- "@basemaps/attribution": "^7.5.0",
53
+ "@basemaps/attribution": "^7.10.0",
53
54
  "@chunkd/fs": "^11.2.0",
54
55
  "@types/aws-lambda": "^8.10.75",
55
56
  "@types/pixelmatch": "^5.0.0",
56
57
  "pretty-json-log": "^1.0.0"
57
58
  },
58
- "gitHead": "5dc4332d74563f6ca6ac644258728eb64ceacf6a"
59
+ "gitHead": "77d3584cb3b707a3b18f15143d3eb8b545a9bbe7"
59
60
  }
@@ -5,7 +5,7 @@ import { StyleJson } from '@basemaps/config';
5
5
  import { GoogleTms, Nztm2000QuadTms } from '@basemaps/geo';
6
6
  import { Env } from '@basemaps/shared';
7
7
 
8
- import { convertRelativeUrl, convertStyleJson } from '../routes/tile.style.json.js';
8
+ import { convertRelativeUrl, setStyleUrls } from '../routes/tile.style.json.js';
9
9
 
10
10
  describe('TileStyleJson', () => {
11
11
  const host = 'https://tiles.test';
@@ -75,7 +75,8 @@ describe('TileStyleJson', () => {
75
75
 
76
76
  it('should not destroy the original configuration', () => {
77
77
  const apiKey = 'abc123';
78
- const converted = convertStyleJson(baseStyleJson, GoogleTms, apiKey, null);
78
+ const converted = structuredClone(baseStyleJson);
79
+ setStyleUrls(converted, GoogleTms, apiKey, null);
79
80
 
80
81
  assert.deepEqual(converted.sources['vector'], {
81
82
  type: 'vector',
@@ -92,7 +93,9 @@ describe('TileStyleJson', () => {
92
93
 
93
94
  assert.equal(JSON.stringify(baseStyleJson).includes(apiKey), false);
94
95
 
95
- const convertedB = convertStyleJson(baseStyleJson, GoogleTms, '0x1234', null);
96
+ const convertedB = structuredClone(baseStyleJson);
97
+
98
+ setStyleUrls(convertedB, GoogleTms, '0x1234', null);
96
99
  assert.deepEqual(convertedB.sources['vector'], {
97
100
  type: 'vector',
98
101
  url: 'https://tiles.test/v1/tiles/topographic/WebMercatorQuad/tile.json?api=0x1234',
@@ -124,7 +127,8 @@ describe('TileStyleJson', () => {
124
127
 
125
128
  it('should cover raster style Json without metadata, sprite and glyphs', () => {
126
129
  const apiKey = 'abc123';
127
- const converted = convertStyleJson(rasterStyleJson, GoogleTms, apiKey, null);
130
+ const converted = structuredClone(rasterStyleJson);
131
+ setStyleUrls(rasterStyleJson, GoogleTms, apiKey, null);
128
132
 
129
133
  assert.equal(converted.metadata, null);
130
134
  assert.equal(converted.sprite, null);
@@ -140,7 +144,8 @@ describe('TileStyleJson', () => {
140
144
  },
141
145
  };
142
146
 
143
- const converted = convertStyleJson(rasterStyleJson, Nztm2000QuadTms, 'abc123', null);
147
+ const converted = structuredClone(rasterStyleJson);
148
+ setStyleUrls(converted, Nztm2000QuadTms, 'abc123', null);
144
149
 
145
150
  assert.deepEqual(converted.sources['raster'], {
146
151
  type: 'raster',
@@ -154,7 +159,9 @@ describe('TileStyleJson', () => {
154
159
 
155
160
  it('should convert relative glyphs and sprites', () => {
156
161
  const apiKey = '0x9f9f';
157
- const converted = convertStyleJson(baseStyleJson, GoogleTms, apiKey, null);
162
+ const converted = structuredClone(baseStyleJson);
163
+
164
+ setStyleUrls(converted, GoogleTms, apiKey, null);
158
165
  assert.equal(converted.sprite, 'https://tiles.test/v1/sprites');
159
166
  assert.equal(converted.glyphs, 'https://tiles.test/v1/glyphs');
160
167
 
@@ -164,7 +171,9 @@ describe('TileStyleJson', () => {
164
171
 
165
172
  it('should convert with config', () => {
166
173
  const apiKey = '0x9f9f';
167
- const converted = convertStyleJson(baseStyleJson, GoogleTms, apiKey, 'config.json');
174
+ const converted = structuredClone(baseStyleJson);
175
+
176
+ setStyleUrls(converted, GoogleTms, apiKey, 'config.json');
168
177
  assert.equal(converted.sprite, 'https://tiles.test/v1/sprites?config=config.json');
169
178
  assert.equal(converted.glyphs, 'https://tiles.test/v1/glyphs?config=config.json');
170
179
 
@@ -4,13 +4,15 @@ import { afterEach, before, beforeEach, describe, it } from 'node:test';
4
4
  import { ConfigProviderMemory } from '@basemaps/config';
5
5
  import { LogConfig } from '@basemaps/shared';
6
6
  import { LambdaAlbRequest, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
7
+ import { VectorTile, VectorTileFeature, VectorTileLayer } from '@mapbox/vector-tile';
7
8
  import { ALBEventRequestContext, Context } from 'aws-lambda';
8
9
  import sinon from 'sinon';
9
10
 
10
11
  import { FakeData } from '../../__tests__/config.data.js';
11
12
  import { ConfigLoader } from '../../util/config.loader.js';
12
- import { getTestBuffer, healthGet, TestTiles } from '../health.js';
13
+ import { getTestBuffer, healthGet, TestFeature, TestTiles, VectorTileProvider } from '../health.js';
13
14
  import { TileXyzRaster } from '../tile.xyz.raster.js';
15
+ import { tileXyzVector } from '../tile.xyz.vector.js';
14
16
 
15
17
  const ctx: LambdaHttpRequest = new LambdaAlbRequest(
16
18
  {
@@ -24,15 +26,38 @@ const ctx: LambdaHttpRequest = new LambdaAlbRequest(
24
26
  LogConfig.get(),
25
27
  );
26
28
 
29
+ // Function to create a vector tile with specific properties for testing
30
+ function createTestTile(testFeatures: TestFeature[]): VectorTile {
31
+ const layers: Record<string, VectorTileLayer> = {};
32
+ for (const testFeature of testFeatures) {
33
+ const layer = {
34
+ features: [{ properties: { [testFeature.key]: testFeature.value } }],
35
+
36
+ feature(i: number): VectorTileFeature {
37
+ return this.features[i] as VectorTileFeature;
38
+ },
39
+
40
+ get length(): number {
41
+ return this.features.length;
42
+ },
43
+ };
44
+
45
+ layers[testFeature.layer] = layer as unknown as VectorTileLayer;
46
+ }
47
+ return { layers } as unknown as VectorTile;
48
+ }
49
+
27
50
  describe('/v1/health', () => {
28
51
  const sandbox = sinon.createSandbox();
29
52
  const config = new ConfigProviderMemory();
30
53
 
31
- const fakeTileSet = FakeData.tileSetRaster('health');
54
+ const fakeTileSetRaster = FakeData.tileSetRaster('health');
55
+ const fakeTileSetVector = FakeData.tileSetVector('topographic');
32
56
  beforeEach(() => {
33
57
  config.objects.clear();
34
58
  sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
35
- config.put(fakeTileSet);
59
+ config.put(fakeTileSetRaster);
60
+ config.put(fakeTileSetVector);
36
61
  });
37
62
 
38
63
  afterEach(() => {
@@ -40,17 +65,14 @@ describe('/v1/health', () => {
40
65
  sandbox.restore();
41
66
  });
42
67
 
43
- it('Should return bad response', async () => {
68
+ it('Should return bad response', () => {
44
69
  // Given ... a bad get tile response
45
70
  const BadResponse = new LambdaHttpResponse(500, 'Can not get Tile Set.');
46
71
  sandbox.stub(TileXyzRaster, 'tile').resolves(BadResponse);
72
+ sandbox.stub(tileXyzVector, 'tile').resolves(BadResponse);
47
73
 
48
- // When ...
49
- const res = await healthGet(ctx);
50
-
51
- // Then ...
52
- assert.equal(res.status, 500);
53
- assert.equal(res.statusDescription, 'Can not get Tile Set.');
74
+ // When ...Then ...
75
+ assert.rejects(() => healthGet(ctx), BadResponse);
54
76
  });
55
77
 
56
78
  const Response1 = new LambdaHttpResponse(200, 'ok');
@@ -66,9 +88,15 @@ describe('/v1/health', () => {
66
88
 
67
89
  it('Should give a 200 response', async () => {
68
90
  // Given ... a series good get tile response
69
- const callback = sandbox.stub(TileXyzRaster, 'tile');
70
- callback.onCall(0).resolves(Response1);
71
- callback.onCall(1).resolves(Response2);
91
+ const callbackRaster = sandbox.stub(TileXyzRaster, 'tile');
92
+
93
+ callbackRaster.onCall(0).resolves(Response1);
94
+ callbackRaster.onCall(1).resolves(Response2);
95
+ const callbackVectorTile = sandbox.stub(VectorTileProvider, 'getVectorTile');
96
+ const testVectorTile1 = createTestTile(TestTiles[2].testFeatures!);
97
+ const testVectorTile2 = createTestTile(TestTiles[3].testFeatures!);
98
+ callbackVectorTile.onCall(0).resolves(testVectorTile1);
99
+ callbackVectorTile.onCall(1).resolves(testVectorTile2);
72
100
 
73
101
  // When ...
74
102
  const res = await healthGet(ctx);
@@ -78,17 +106,13 @@ describe('/v1/health', () => {
78
106
  assert.equal(res.statusDescription, 'ok');
79
107
  });
80
108
 
81
- it('Should return mis-match tile response', async () => {
109
+ it('Should return mis-match tile response', () => {
82
110
  // Given ... a bad get tile response for second get tile
83
111
  const callback = sandbox.stub(TileXyzRaster, 'tile');
84
- callback.onCall(0).resolves(Response1);
85
- callback.onCall(1).resolves(Response1);
112
+ callback.onCall(0).resolves(Response2);
86
113
 
87
- // When ...
88
- const res = await healthGet(ctx);
89
-
90
- // Then ...
91
- assert.equal(res.status, 500);
92
- assert.equal(res.statusDescription, 'TileSet does not match.');
114
+ // When ... Then ...
115
+ const BadResponse = new LambdaHttpResponse(500, 'TileSet does not match.');
116
+ assert.rejects(() => healthGet(ctx), BadResponse);
93
117
  });
94
118
  });
@@ -411,4 +411,64 @@ describe('/v1/styles', () => {
411
411
  assert.equal(res.status, 400, res.statusDescription);
412
412
  assert.equal(res.statusDescription.includes('Background1'), true);
413
413
  });
414
+
415
+ it('should convert NZTM2000Quad styles', async () => {
416
+ const fakeStyle = {
417
+ id: 'st_labels',
418
+ name: 'source',
419
+ style: {
420
+ layers: [
421
+ {
422
+ minzoom: 5,
423
+ maxzoom: 5,
424
+ layout: {
425
+ 'line-width': {
426
+ stops: [
427
+ [16, 0.75],
428
+ [24, 1.5],
429
+ ],
430
+ },
431
+ },
432
+
433
+ paint: {
434
+ 'line-width': {
435
+ stops: [
436
+ [16, 0.75],
437
+ [24, 1.5],
438
+ ],
439
+ },
440
+ },
441
+ },
442
+ ],
443
+ terrain: {
444
+ exaggeration: 1.1,
445
+ },
446
+ },
447
+ };
448
+ config.put(fakeStyle);
449
+
450
+ const request = mockUrlRequest('/v1/styles/labels.json', `?tileMatrix=NZTM2000Quad`, Api.header);
451
+ const res = await handler.router.handle(request);
452
+ assert.equal(res.status, 200, res.statusDescription);
453
+ const style = JSON.parse(Buffer.from(res.body, 'base64').toString()) as StyleJson;
454
+ assert.equal(style.layers[0].minzoom, 3);
455
+ assert.equal(style.layers[0].maxzoom, 3);
456
+ assert.equal(style.terrain?.exaggeration, 4.4);
457
+ assert.deepEqual(style.layers[0].layout, {
458
+ 'line-width': {
459
+ stops: [
460
+ [14, 0.75],
461
+ [22, 1.5],
462
+ ],
463
+ },
464
+ });
465
+ assert.deepEqual(style.layers[0].paint, {
466
+ 'line-width': {
467
+ stops: [
468
+ [14, 0.75],
469
+ [22, 1.5],
470
+ ],
471
+ },
472
+ });
473
+ });
414
474
  });
@@ -10,6 +10,7 @@ import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
10
10
  import { handler } from '../../index.js';
11
11
  import { ConfigLoader } from '../../util/config.loader.js';
12
12
  import { Etag } from '../../util/etag.js';
13
+ import { CoSources } from '../../util/source.cache.js';
13
14
 
14
15
  const TileSetNames = ['aerial', 'aerial:ōtorohanga_urban_2021_0-1m_RGB', '01FYWKAJ86W9P7RWM1VB62KD0H'];
15
16
  describe('/v1/tiles', () => {
@@ -197,4 +198,21 @@ describe('/v1/tiles', () => {
197
198
  );
198
199
  assert.equal(resZz.status, 400, resZz.statusDescription);
199
200
  });
201
+
202
+ it('should support NZTM2000Quad vector tiles', async (t) => {
203
+ t.mock.method(ConfigLoader, 'getDefaultConfig', () => Promise.resolve(config));
204
+
205
+ // Force resolve a basic tile
206
+ const mockGetTile = t.mock.fn(() => Promise.resolve(Buffer.from('ABC123')));
207
+ t.mock.method(CoSources, 'getCotar', () => Promise.resolve({ get: mockGetTile }));
208
+
209
+ const topographic = FakeData.tileSetVector('topographic');
210
+ topographic.layers[0][2193] = 'memory://fake-tiles.tar.co';
211
+ config.put(topographic);
212
+ const resPbf = await handler.router.handle(
213
+ mockUrlRequest('/v1/tiles/topographic/NZTM2000Quad/11/2022/1283.pbf', 'get', Api.header),
214
+ );
215
+ assert.equal(resPbf.status, 200);
216
+ assert.equal(resPbf.body, Buffer.from('ABC123').toString('base64'));
217
+ });
200
218
  });