@basemaps/lambda-tiler 8.13.1 → 8.13.3

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 (216) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +0 -1
  3. package/build/__tests__/config.data.d.ts +2 -1
  4. package/build/__tests__/config.data.d.ts.map +1 -0
  5. package/build/__tests__/config.data.js.map +1 -1
  6. package/build/__tests__/index.test.d.ts +1 -0
  7. package/build/__tests__/index.test.d.ts.map +1 -0
  8. package/build/__tests__/tile.style.json.test.d.ts +1 -0
  9. package/build/__tests__/tile.style.json.test.d.ts.map +1 -0
  10. package/build/__tests__/wmts.capability.test.d.ts +1 -0
  11. package/build/__tests__/wmts.capability.test.d.ts.map +1 -0
  12. package/build/__tests__/xyz.util.d.ts +2 -1
  13. package/build/__tests__/xyz.util.d.ts.map +1 -0
  14. package/build/__tests__/xyz.util.js.map +1 -1
  15. package/build/cli/render.preview.d.ts +1 -0
  16. package/build/cli/render.preview.d.ts.map +1 -0
  17. package/build/cli/render.preview.js.map +1 -1
  18. package/build/cli/render.tile.d.ts +1 -0
  19. package/build/cli/render.tile.d.ts.map +1 -0
  20. package/build/cli/render.tile.js +1 -1
  21. package/build/cli/render.tile.js.map +1 -1
  22. package/build/index.d.ts +1 -0
  23. package/build/index.d.ts.map +1 -0
  24. package/build/index.js.map +1 -1
  25. package/build/routes/__tests__/attribution.test.d.ts +1 -0
  26. package/build/routes/__tests__/attribution.test.d.ts.map +1 -0
  27. package/build/routes/__tests__/attribution.test.js.map +1 -1
  28. package/build/routes/__tests__/export.test.d.ts +1 -0
  29. package/build/routes/__tests__/export.test.d.ts.map +1 -0
  30. package/build/routes/__tests__/export.test.js +1 -1
  31. package/build/routes/__tests__/export.test.js.map +1 -1
  32. package/build/routes/__tests__/fonts.test.d.ts +1 -0
  33. package/build/routes/__tests__/fonts.test.d.ts.map +1 -0
  34. package/build/routes/__tests__/fonts.test.js.map +1 -1
  35. package/build/routes/__tests__/health.test.d.ts +1 -0
  36. package/build/routes/__tests__/health.test.d.ts.map +1 -0
  37. package/build/routes/__tests__/health.test.js.map +1 -1
  38. package/build/routes/__tests__/imagery.test.d.ts +1 -0
  39. package/build/routes/__tests__/imagery.test.d.ts.map +1 -0
  40. package/build/routes/__tests__/link.test.d.ts +1 -0
  41. package/build/routes/__tests__/link.test.d.ts.map +1 -0
  42. package/build/routes/__tests__/memory.fs.d.ts +1 -0
  43. package/build/routes/__tests__/memory.fs.d.ts.map +1 -0
  44. package/build/routes/__tests__/preview.index.test.d.ts +1 -0
  45. package/build/routes/__tests__/preview.index.test.d.ts.map +1 -0
  46. package/build/routes/__tests__/preview.index.test.js.map +1 -1
  47. package/build/routes/__tests__/sprites.test.d.ts +1 -0
  48. package/build/routes/__tests__/sprites.test.d.ts.map +1 -0
  49. package/build/routes/__tests__/sprites.test.js +2 -4
  50. package/build/routes/__tests__/sprites.test.js.map +1 -1
  51. package/build/routes/__tests__/tile.json.test.d.ts +1 -0
  52. package/build/routes/__tests__/tile.json.test.d.ts.map +1 -0
  53. package/build/routes/__tests__/tile.json.test.js +1 -1
  54. package/build/routes/__tests__/tile.json.test.js.map +1 -1
  55. package/build/routes/__tests__/tile.style.json.attribution.test.d.ts +1 -0
  56. package/build/routes/__tests__/tile.style.json.attribution.test.d.ts.map +1 -0
  57. package/build/routes/__tests__/tile.style.json.attribution.test.js.map +1 -1
  58. package/build/routes/__tests__/tile.style.json.test.d.ts +1 -0
  59. package/build/routes/__tests__/tile.style.json.test.d.ts.map +1 -0
  60. package/build/routes/__tests__/tile.style.json.test.js +0 -3
  61. package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
  62. package/build/routes/__tests__/wmts.test.d.ts +1 -0
  63. package/build/routes/__tests__/wmts.test.d.ts.map +1 -0
  64. package/build/routes/__tests__/wmts.test.js.map +1 -1
  65. package/build/routes/__tests__/xyz.test.d.ts +1 -0
  66. package/build/routes/__tests__/xyz.test.d.ts.map +1 -0
  67. package/build/routes/attribution.d.ts +7 -4
  68. package/build/routes/attribution.d.ts.map +1 -0
  69. package/build/routes/attribution.js +1 -1
  70. package/build/routes/attribution.js.map +1 -1
  71. package/build/routes/config.d.ts +3 -1
  72. package/build/routes/config.d.ts.map +1 -0
  73. package/build/routes/config.js.map +1 -1
  74. package/build/routes/export.tileset.d.ts +3 -1
  75. package/build/routes/export.tileset.d.ts.map +1 -0
  76. package/build/routes/export.tileset.js.map +1 -1
  77. package/build/routes/fonts.d.ts +2 -1
  78. package/build/routes/fonts.d.ts.map +1 -0
  79. package/build/routes/health.d.ts +5 -3
  80. package/build/routes/health.d.ts.map +1 -0
  81. package/build/routes/health.js +1 -1
  82. package/build/routes/health.js.map +1 -1
  83. package/build/routes/imagery.d.ts +3 -1
  84. package/build/routes/imagery.d.ts.map +1 -0
  85. package/build/routes/imagery.js +2 -2
  86. package/build/routes/imagery.js.map +1 -1
  87. package/build/routes/link.d.ts +3 -1
  88. package/build/routes/link.d.ts.map +1 -0
  89. package/build/routes/link.js.map +1 -1
  90. package/build/routes/ping.d.ts +1 -0
  91. package/build/routes/ping.d.ts.map +1 -0
  92. package/build/routes/preview.d.ts +5 -3
  93. package/build/routes/preview.d.ts.map +1 -0
  94. package/build/routes/preview.index.d.ts +4 -2
  95. package/build/routes/preview.index.d.ts.map +1 -0
  96. package/build/routes/preview.index.js.map +1 -1
  97. package/build/routes/preview.js +1 -1
  98. package/build/routes/preview.js.map +1 -1
  99. package/build/routes/sprites.d.ts +2 -1
  100. package/build/routes/sprites.d.ts.map +1 -0
  101. package/build/routes/sprites.js.map +1 -1
  102. package/build/routes/tile.json.d.ts +3 -1
  103. package/build/routes/tile.json.d.ts.map +1 -0
  104. package/build/routes/tile.json.js.map +1 -1
  105. package/build/routes/tile.style.json.d.ts +5 -3
  106. package/build/routes/tile.style.json.d.ts.map +1 -0
  107. package/build/routes/tile.style.json.js +2 -2
  108. package/build/routes/tile.style.json.js.map +1 -1
  109. package/build/routes/tile.wmts.d.ts +4 -2
  110. package/build/routes/tile.wmts.d.ts.map +1 -0
  111. package/build/routes/tile.wmts.js +1 -1
  112. package/build/routes/tile.wmts.js.map +1 -1
  113. package/build/routes/tile.xyz.d.ts +3 -1
  114. package/build/routes/tile.xyz.d.ts.map +1 -0
  115. package/build/routes/tile.xyz.js.map +1 -1
  116. package/build/routes/tile.xyz.raster.d.ts +9 -6
  117. package/build/routes/tile.xyz.raster.d.ts.map +1 -0
  118. package/build/routes/tile.xyz.raster.js.map +1 -1
  119. package/build/routes/tile.xyz.vector.d.ts +5 -3
  120. package/build/routes/tile.xyz.vector.d.ts.map +1 -0
  121. package/build/routes/tile.xyz.vector.js.map +1 -1
  122. package/build/routes/version.d.ts +3 -1
  123. package/build/routes/version.d.ts.map +1 -0
  124. package/build/routes/version.js.map +1 -1
  125. package/build/util/__test__/cache.test.d.ts +1 -0
  126. package/build/util/__test__/cache.test.d.ts.map +1 -0
  127. package/build/util/__test__/config.loader.test.d.ts +1 -0
  128. package/build/util/__test__/config.loader.test.d.ts.map +1 -0
  129. package/build/util/__test__/nztm.style.test.d.ts +1 -0
  130. package/build/util/__test__/nztm.style.test.d.ts.map +1 -0
  131. package/build/util/__test__/validate.test.d.ts +1 -0
  132. package/build/util/__test__/validate.test.d.ts.map +1 -0
  133. package/build/util/assets.provider.d.ts +3 -1
  134. package/build/util/assets.provider.d.ts.map +1 -0
  135. package/build/util/assets.provider.js.map +1 -1
  136. package/build/util/config.cache.d.ts +3 -1
  137. package/build/util/config.cache.d.ts.map +1 -0
  138. package/build/util/config.cache.js +2 -12
  139. package/build/util/config.cache.js.map +1 -1
  140. package/build/util/config.loader.d.ts +3 -2
  141. package/build/util/config.loader.d.ts.map +1 -0
  142. package/build/util/config.loader.js.map +1 -1
  143. package/build/util/cotar.serve.d.ts +3 -1
  144. package/build/util/cotar.serve.d.ts.map +1 -0
  145. package/build/util/cotar.serve.js.map +1 -1
  146. package/build/util/etag.d.ts +2 -1
  147. package/build/util/etag.d.ts.map +1 -0
  148. package/build/util/etag.js.map +1 -1
  149. package/build/util/nztm.style.d.ts +2 -1
  150. package/build/util/nztm.style.d.ts.map +1 -0
  151. package/build/util/nztm.style.js.map +1 -1
  152. package/build/util/response.d.ts +3 -1
  153. package/build/util/response.d.ts.map +1 -0
  154. package/build/util/response.js.map +1 -1
  155. package/build/util/source.cache.d.ts +1 -0
  156. package/build/util/source.cache.d.ts.map +1 -0
  157. package/build/util/source.cache.js +1 -6
  158. package/build/util/source.cache.js.map +1 -1
  159. package/build/util/swapping.lru.d.ts +1 -0
  160. package/build/util/swapping.lru.d.ts.map +1 -0
  161. package/build/util/swapping.lru.js +8 -48
  162. package/build/util/swapping.lru.js.map +1 -1
  163. package/build/util/validate.d.ts +5 -4
  164. package/build/util/validate.d.ts.map +1 -0
  165. package/build/util/validate.js +2 -3
  166. package/build/util/validate.js.map +1 -1
  167. package/build/wmts.capability.d.ts +5 -3
  168. package/build/wmts.capability.d.ts.map +1 -0
  169. package/build/wmts.capability.js +17 -82
  170. package/build/wmts.capability.js.map +1 -1
  171. package/package.json +9 -9
  172. package/src/__tests__/config.data.ts +5 -3
  173. package/src/__tests__/tile.style.json.test.ts +1 -1
  174. package/src/__tests__/wmts.capability.test.ts +1 -1
  175. package/src/__tests__/xyz.util.ts +3 -2
  176. package/src/cli/render.preview.ts +5 -3
  177. package/src/cli/render.tile.ts +9 -5
  178. package/src/index.ts +2 -1
  179. package/src/routes/__tests__/attribution.test.ts +3 -2
  180. package/src/routes/__tests__/export.test.ts +1 -1
  181. package/src/routes/__tests__/fonts.test.ts +2 -1
  182. package/src/routes/__tests__/health.test.ts +3 -2
  183. package/src/routes/__tests__/preview.index.test.ts +5 -3
  184. package/src/routes/__tests__/sprites.test.ts +5 -7
  185. package/src/routes/__tests__/tile.json.test.ts +1 -1
  186. package/src/routes/__tests__/tile.style.json.attribution.test.ts +3 -2
  187. package/src/routes/__tests__/tile.style.json.test.ts +4 -5
  188. package/src/routes/__tests__/wmts.test.ts +2 -1
  189. package/src/routes/attribution.ts +8 -9
  190. package/src/routes/config.ts +2 -1
  191. package/src/routes/export.tileset.ts +2 -1
  192. package/src/routes/fonts.ts +1 -1
  193. package/src/routes/health.ts +6 -4
  194. package/src/routes/imagery.ts +4 -2
  195. package/src/routes/link.ts +2 -1
  196. package/src/routes/preview.index.ts +4 -2
  197. package/src/routes/preview.ts +9 -5
  198. package/src/routes/sprites.ts +2 -1
  199. package/src/routes/tile.json.ts +6 -3
  200. package/src/routes/tile.style.json.ts +8 -13
  201. package/src/routes/tile.wmts.ts +6 -3
  202. package/src/routes/tile.xyz.raster.ts +8 -4
  203. package/src/routes/tile.xyz.ts +2 -1
  204. package/src/routes/tile.xyz.vector.ts +4 -3
  205. package/src/routes/version.ts +4 -2
  206. package/src/util/__test__/nztm.style.test.ts +1 -1
  207. package/src/util/assets.provider.ts +2 -1
  208. package/src/util/config.cache.ts +3 -2
  209. package/src/util/config.loader.ts +3 -2
  210. package/src/util/cotar.serve.ts +2 -1
  211. package/src/util/etag.ts +2 -1
  212. package/src/util/nztm.style.ts +1 -1
  213. package/src/util/response.ts +2 -1
  214. package/src/util/validate.ts +8 -7
  215. package/src/wmts.capability.ts +7 -11
  216. package/tsconfig.tsbuildinfo +1 -1
@@ -1,10 +1,14 @@
1
- import { ConfigImagery, ConfigProviderMemory, ConfigTileSetRaster } from '@basemaps/config';
1
+ import { extname } from 'path';
2
+
3
+ import type { ConfigImagery, ConfigTileSetRaster } from '@basemaps/config';
4
+ import { ConfigProviderMemory } from '@basemaps/config';
2
5
  import { initConfigFromUrls } from '@basemaps/config-loader';
3
- import { Tile, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
6
+ import type { Tile, TileMatrixSet } from '@basemaps/geo';
7
+ import { TileMatrixSets } from '@basemaps/geo';
4
8
  import { fsa, FsaLocalCache, LogConfig, setDefaultConfig } from '@basemaps/shared';
5
- import { LambdaHttpRequest, LambdaUrlRequest, UrlEvent } from '@linzjs/lambda';
6
- import { Context } from 'aws-lambda';
7
- import { extname } from 'path';
9
+ import type { LambdaHttpRequest, UrlEvent } from '@linzjs/lambda';
10
+ import { LambdaUrlRequest } from '@linzjs/lambda';
11
+ import type { Context } from 'aws-lambda';
8
12
 
9
13
  import { TileXyzRaster } from '../routes/tile.xyz.raster.js';
10
14
 
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { FsaCache, FsaLog, LogConfig, LogStorage } from '@basemaps/shared';
2
- import { LambdaHttpRequest, LambdaHttpResponse, lf } from '@linzjs/lambda';
2
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
3
+ import { LambdaHttpResponse, lf } from '@linzjs/lambda';
3
4
 
4
5
  import { tileAttributionGet } from './routes/attribution.js';
5
6
  import { configImageryGet, configTileSetGet } from './routes/config.js';
@@ -3,9 +3,10 @@ import { afterEach, beforeEach, describe, it } from 'node:test';
3
3
 
4
4
  import { Attribution } from '@basemaps/attribution';
5
5
  import { ConfigProviderMemory } from '@basemaps/config';
6
- import { AttributionStac, GoogleTms, Nztm2000QuadTms, Projection } from '@basemaps/geo';
6
+ import type { AttributionStac } from '@basemaps/geo';
7
+ import { GoogleTms, Nztm2000QuadTms, Projection } from '@basemaps/geo';
7
8
  import { LogConfig } from '@basemaps/shared';
8
- import { BBox } from '@linzjs/geojson';
9
+ import type { BBox } from '@linzjs/geojson';
9
10
  import { HttpHeader } from '@linzjs/lambda';
10
11
  import sinon from 'sinon';
11
12
 
@@ -1,8 +1,8 @@
1
+ import assert from 'assert';
1
2
  import { afterEach, beforeEach, describe, it } from 'node:test';
2
3
 
3
4
  import { ConfigProviderMemory } from '@basemaps/config';
4
5
  import { fsa, FsMemory, LogConfig, s3Config } from '@basemaps/shared';
5
- import assert from 'assert';
6
6
 
7
7
  import { FakeData } from '../../__tests__/config.data.js';
8
8
  import { Api, mockUrlRequest } from '../../__tests__/xyz.util.js';
@@ -1,7 +1,8 @@
1
1
  import assert from 'node:assert';
2
2
  import { afterEach, beforeEach, describe, it } from 'node:test';
3
3
 
4
- import { base58, BaseConfig, ConfigProviderMemory } from '@basemaps/config';
4
+ import type { BaseConfig } from '@basemaps/config';
5
+ import { base58, ConfigProviderMemory } from '@basemaps/config';
5
6
  import { setDefaultConfig } from '@basemaps/shared';
6
7
  import { fsa, FsMemory } from '@chunkd/fs';
7
8
 
@@ -3,13 +3,14 @@ import { afterEach, before, beforeEach, describe, it } from 'node:test';
3
3
 
4
4
  import { ConfigProviderMemory } from '@basemaps/config';
5
5
  import { LambdaHttpResponse } from '@linzjs/lambda';
6
- import { VectorTile, VectorTileFeature, VectorTileLayer } from '@mapbox/vector-tile';
6
+ import type { VectorTile, VectorTileFeature, VectorTileLayer } from '@mapbox/vector-tile';
7
7
  import sinon from 'sinon';
8
8
 
9
9
  import { FakeData } from '../../__tests__/config.data.js';
10
10
  import { mockRequest } from '../../__tests__/xyz.util.js';
11
11
  import { ConfigLoader } from '../../util/config.loader.js';
12
- import { getTestBuffer, healthGet, TestFeature, TestTiles, VectorTileProvider } from '../health.js';
12
+ import type { TestFeature } from '../health.js';
13
+ import { getTestBuffer, healthGet, TestTiles, VectorTileProvider } from '../health.js';
13
14
  import { TileXyzRaster } from '../tile.xyz.raster.js';
14
15
  import { tileXyzVector } from '../tile.xyz.vector.js';
15
16
 
@@ -4,12 +4,14 @@ import { afterEach, beforeEach, describe, it } from 'node:test';
4
4
  import { ConfigProviderMemory, DefaultColorRampOutput, DefaultTerrainRgbOutput } from '@basemaps/config';
5
5
  import { LocationUrl } from '@basemaps/geo';
6
6
  import { Env, fsa, FsMemory, LogConfig, V } from '@basemaps/shared';
7
- import { LambdaAlbRequest, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
8
- import { ALBEvent, ALBEventRequestContext, Context } from 'aws-lambda';
7
+ import type { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
8
+ import { LambdaAlbRequest } from '@linzjs/lambda';
9
+ import type { ALBEvent, ALBEventRequestContext, Context } from 'aws-lambda';
9
10
 
10
11
  import { FakeData } from '../../__tests__/config.data.js';
11
12
  import { CachedConfig } from '../../util/config.cache.js';
12
- import { loadAndServeIndexHtml, PreviewIndexGet, previewIndexGet } from '../preview.index.js';
13
+ import type { PreviewIndexGet } from '../preview.index.js';
14
+ import { loadAndServeIndexHtml, previewIndexGet } from '../preview.index.js';
13
15
 
14
16
  describe('/@*', () => {
15
17
  // o.specTimeout(1000);
@@ -1,10 +1,10 @@
1
1
  import assert from 'node:assert';
2
2
  import { afterEach, before, beforeEach, describe, it } from 'node:test';
3
+ import { gunzipSync, gzipSync } from 'zlib';
3
4
 
4
5
  import { ConfigProviderMemory } from '@basemaps/config';
5
6
  import { fsa, FsMemory } from '@chunkd/fs';
6
7
  import { createSandbox } from 'sinon';
7
- import { gunzipSync, gzipSync } from 'zlib';
8
8
 
9
9
  import { mockRequest } from '../../__tests__/xyz.util.js';
10
10
  import { handler } from '../../index.js';
@@ -57,12 +57,10 @@ describe('/v1/sprites', () => {
57
57
  });
58
58
 
59
59
  it('should detect gziped files and set content-encoding', async () => {
60
- await Promise.all([
61
- fsa.write(
62
- new URL('fake-s3://assets/sprites/topographic.json'),
63
- gzipSync(Buffer.from(JSON.stringify({ test: true }))),
64
- ),
65
- ]);
60
+ await fsa.write(
61
+ new URL('fake-s3://assets/sprites/topographic.json'),
62
+ gzipSync(Buffer.from(JSON.stringify({ test: true }))),
63
+ );
66
64
  const res = await handler.router.handle(mockRequest('/v1/sprites/topographic.json'));
67
65
  assert.equal(res.status, 200);
68
66
  assert.equal(res.header('content-type'), 'application/json');
@@ -142,7 +142,7 @@ describe('/v1/tiles/:tileSet/:tileMatrix/tile.json', () => {
142
142
 
143
143
  const cfgBundle = new ConfigProviderMemory();
144
144
  cfgBundle.put(fakeTileSet);
145
- memoryFs.write(new URL('memory://linz-basemaps/bar.json'), JSON.stringify(cfgBundle.toJson()));
145
+ await memoryFs.write(new URL('memory://linz-basemaps/bar.json'), JSON.stringify(cfgBundle.toJson()));
146
146
 
147
147
  const configLocation = base58.encode(Buffer.from('memory://linz-basemaps/bar.json'));
148
148
  const request = mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${configLocation}`, Api.header);
@@ -2,8 +2,9 @@ import assert, { strictEqual } from 'node:assert';
2
2
  import { afterEach, before, describe, it } from 'node:test';
3
3
 
4
4
  import { copyright, createLicensorAttribution } from '@basemaps/attribution/build/utils.js';
5
- import { ConfigProviderMemory, StyleJson } from '@basemaps/config';
6
- import { StacProvider } from '@basemaps/geo';
5
+ import type { StyleJson } from '@basemaps/config';
6
+ import { ConfigProviderMemory } from '@basemaps/config';
7
+ import type { StacProvider } from '@basemaps/geo';
7
8
  import { Env } from '@basemaps/shared';
8
9
 
9
10
  import { FakeData, Imagery3857 } from '../../__tests__/config.data.js';
@@ -1,8 +1,10 @@
1
1
  import assert from 'node:assert';
2
2
  import { afterEach, before, beforeEach, describe, it } from 'node:test';
3
3
 
4
- import { ConfigProviderMemory, SourceRaster, StyleJson } from '@basemaps/config';
5
- import { DefaultExaggeration, Terrain } from '@basemaps/config/build/config/vector.style.js';
4
+ import type { SourceRaster, StyleJson } from '@basemaps/config';
5
+ import { ConfigProviderMemory } from '@basemaps/config';
6
+ import type { Terrain } from '@basemaps/config/build/config/vector.style.js';
7
+ import { DefaultExaggeration } from '@basemaps/config/build/config/vector.style.js';
6
8
  import { Nztm2000QuadTms } from '@basemaps/geo';
7
9
  import { Env } from '@basemaps/shared';
8
10
  import { createSandbox } from 'sinon';
@@ -279,9 +281,6 @@ describe('/v1/styles', () => {
279
281
  assert.equal(res.status, 200, res.statusDescription);
280
282
 
281
283
  const body = JSON.parse(Buffer.from(res.body, 'base64').toString()) as StyleJson;
282
- body.sources['basemaps-aerial'];
283
- body.sources['basemaps-aerial'];
284
- body.sources['basemaps-aerial'];
285
284
  const aerialSource = body.sources['basemaps-aerial'] as unknown as SourceRaster;
286
285
 
287
286
  assert.deepEqual(aerialSource.type, 'raster');
@@ -1,7 +1,8 @@
1
1
  import assert from 'node:assert';
2
2
  import { afterEach, beforeEach, describe, it } from 'node:test';
3
3
 
4
- import { ConfigProviderMemory, ConfigTileSetRaster } from '@basemaps/config';
4
+ import type { ConfigTileSetRaster } from '@basemaps/config';
5
+ import { ConfigProviderMemory } from '@basemaps/config';
5
6
  import { Env } from '@basemaps/shared';
6
7
 
7
8
  import {
@@ -1,22 +1,21 @@
1
1
  import { createLicensorAttribution } from '@basemaps/attribution/build/utils.js';
2
- import { BasemapsConfigProvider, ConfigProvider, ConfigTileSet, getAllImagery, TileSetType } from '@basemaps/config';
3
- import {
2
+ import type { BasemapsConfigProvider, ConfigProvider, ConfigTileSet } from '@basemaps/config';
3
+ import { getAllImagery, TileSetType } from '@basemaps/config';
4
+ import type {
4
5
  AttributionCollection,
5
6
  AttributionItem,
6
7
  AttributionStac,
7
- Bounds,
8
8
  Epsg,
9
- GoogleTms,
10
9
  NamedBounds,
11
- Projection,
12
- Stac,
13
10
  StacExtent,
14
11
  StacProvider,
15
- TileMatrixSet,
16
12
  } from '@basemaps/geo';
13
+ import { Bounds, GoogleTms, Projection, Stac, TileMatrixSet } from '@basemaps/geo';
17
14
  import { extractYearRangeFromName, extractYearRangeFromTitle } from '@basemaps/shared';
18
- import { BBox, MultiPolygon, multiPolygonToWgs84, Pair, union, Wgs84 } from '@linzjs/geojson';
19
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
15
+ import type { BBox, MultiPolygon, Pair } from '@linzjs/geojson';
16
+ import { multiPolygonToWgs84, union, Wgs84 } from '@linzjs/geojson';
17
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
18
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
20
19
 
21
20
  import { ConfigLoader } from '../util/config.loader.js';
22
21
  import { Etag } from '../util/etag.js';
@@ -1,6 +1,7 @@
1
1
  import { standardizeLayerName } from '@basemaps/config';
2
2
  import { GoogleTms, TileMatrixSets } from '@basemaps/geo';
3
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
4
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
4
5
 
5
6
  import { ConfigLoader } from '../util/config.loader.js';
6
7
  import { Etag } from '../util/etag.js';
@@ -1,6 +1,7 @@
1
1
  import { signS3Get } from '@basemaps/shared';
2
2
  import { fsa } from '@chunkd/fs';
3
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
4
+ import { LambdaHttpResponse } from '@linzjs/lambda';
4
5
 
5
6
  import { ConfigLoader } from '../util/config.loader.js';
6
7
  import { NotFound } from '../util/response.js';
@@ -1,4 +1,4 @@
1
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
1
+ import type { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
2
2
 
3
3
  import { assetProvider } from '../util/assets.provider.js';
4
4
 
@@ -1,17 +1,19 @@
1
1
  import * as fs from 'node:fs';
2
+ import { gunzipSync } from 'zlib';
2
3
 
3
- import { ConfigTileSetRaster, ConfigTileSetVector, TileSetType } from '@basemaps/config';
4
+ import type { ConfigTileSetRaster, ConfigTileSetVector } from '@basemaps/config';
5
+ import { TileSetType } from '@basemaps/config';
4
6
  import { GoogleTms, Nztm2000QuadTms } from '@basemaps/geo';
5
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
7
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
8
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
6
9
  import { VectorTile } from '@mapbox/vector-tile';
7
10
  import Protobuf from 'pbf';
8
11
  import PixelMatch from 'pixelmatch';
9
12
  import Sharp from 'sharp';
10
- import { gunzipSync } from 'zlib';
11
13
 
12
14
  import { ConfigLoader } from '../util/config.loader.js';
13
15
  import { isGzip } from '../util/cotar.serve.js';
14
- import { TileXyz } from '../util/validate.js';
16
+ import type { TileXyz } from '../util/validate.js';
15
17
  import { TileXyzRaster } from './tile.xyz.raster.js';
16
18
  import { tileXyzVector } from './tile.xyz.vector.js';
17
19
 
@@ -1,8 +1,10 @@
1
- import { fsa } from '@basemaps/shared';
2
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
1
  import { promisify } from 'util';
4
2
  import { gzip } from 'zlib';
5
3
 
4
+ import { fsa } from '@basemaps/shared';
5
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
6
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
7
+
6
8
  import { ConfigLoader } from '../util/config.loader.js';
7
9
  import { isGzip } from '../util/cotar.serve.js';
8
10
  import { Etag } from '../util/etag.js';
@@ -1,7 +1,8 @@
1
1
  import { TileSetType } from '@basemaps/config';
2
2
  import { Epsg } from '@basemaps/geo';
3
3
  import { getPreviewUrl } from '@basemaps/shared';
4
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
4
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
5
+ import { LambdaHttpResponse } from '@linzjs/lambda';
5
6
 
6
7
  import { ConfigLoader } from '../util/config.loader.js';
7
8
 
@@ -2,9 +2,11 @@ import { promisify } from 'node:util';
2
2
  import { gunzip } from 'node:zlib';
3
3
 
4
4
  import { TileSetType } from '@basemaps/config';
5
- import { GoogleTms, LocationUrl, LonLatZoom, TileMatrixSets } from '@basemaps/geo';
5
+ import type { LonLatZoom } from '@basemaps/geo';
6
+ import { GoogleTms, LocationUrl, TileMatrixSets } from '@basemaps/geo';
6
7
  import { Env, fsa, getPreviewQuery } from '@basemaps/shared';
7
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
8
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
9
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
8
10
 
9
11
  import { ConfigLoader } from '../util/config.loader.js';
10
12
  import { isGzip } from '../util/cotar.serve.js';
@@ -1,8 +1,12 @@
1
- import { ConfigTileSetRaster, ConfigTileSetRasterOutput, TileSetType } from '@basemaps/config';
2
- import { Bounds, LatLon, Projection, TileMatrixSet } from '@basemaps/geo';
3
- import { CompositionTiff, TileMakerContext, Tiler } from '@basemaps/tiler';
1
+ import type { ConfigTileSetRaster, ConfigTileSetRasterOutput } from '@basemaps/config';
2
+ import { TileSetType } from '@basemaps/config';
3
+ import type { LatLon, TileMatrixSet } from '@basemaps/geo';
4
+ import { Bounds, Projection } from '@basemaps/geo';
5
+ import type { CompositionTiff, TileMakerContext } from '@basemaps/tiler';
6
+ import { Tiler } from '@basemaps/tiler';
4
7
  import { TileMakerSharp } from '@basemaps/tiler-sharp';
5
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
8
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
9
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
6
10
  import sharp from 'sharp';
7
11
 
8
12
  import { ConfigLoader } from '../util/config.loader.js';
@@ -176,7 +180,7 @@ export async function renderPreview(req: LambdaHttpRequest, ctx: PreviewRenderCo
176
180
 
177
181
  const shortLocation = [ctx.location.lon.toFixed(7), ctx.location.lat.toFixed(7)].join('_');
178
182
  const suggestedFileName = `preview_${ctx.tileSet.name}_z${ctx.z}_${shortLocation}-${ctx.output.name}.${tileContext.format}`;
179
- response.header('Content-Disposition', `inline; filename=\"${suggestedFileName}\"`);
183
+ response.header('Content-Disposition', `inline; filename="${suggestedFileName}"`);
180
184
 
181
185
  return response;
182
186
  }
@@ -1,6 +1,7 @@
1
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
2
1
  import path from 'path';
3
2
 
3
+ import type { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
4
+
4
5
  import { assetProvider } from '../util/assets.provider.js';
5
6
  import { NotFound } from '../util/response.js';
6
7
 
@@ -1,7 +1,10 @@
1
- import { ConfigTileSet, TileSetType } from '@basemaps/config';
2
- import { GoogleTms, OutputFormat, TileJson, TileMatrixSet } from '@basemaps/geo';
1
+ import type { ConfigTileSet } from '@basemaps/config';
2
+ import { TileSetType } from '@basemaps/config';
3
+ import type { OutputFormat, TileJson } from '@basemaps/geo';
4
+ import { GoogleTms, TileMatrixSet } from '@basemaps/geo';
3
5
  import { Env, toQueryString } from '@basemaps/shared';
4
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
6
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
7
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
5
8
 
6
9
  import { ConfigLoader } from '../util/config.loader.js';
7
10
  import { NotFound } from '../util/response.js';
@@ -1,18 +1,13 @@
1
- import {
2
- BasemapsConfigProvider,
3
- ConfigId,
4
- ConfigPrefix,
5
- ConfigTileSetRaster,
6
- Layer,
7
- Sources,
8
- StyleJson,
9
- TileSetType,
10
- } from '@basemaps/config';
1
+ import { URL } from 'url';
2
+
3
+ import type { BasemapsConfigProvider, ConfigTileSetRaster, Layer, Sources, StyleJson } from '@basemaps/config';
4
+ import { ConfigId, ConfigPrefix, TileSetType } from '@basemaps/config';
11
5
  import { DefaultExaggeration } from '@basemaps/config/build/config/vector.style.js';
12
- import { GoogleTms, Nztm2000QuadTms, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
6
+ import type { TileMatrixSet } from '@basemaps/geo';
7
+ import { GoogleTms, Nztm2000QuadTms, TileMatrixSets } from '@basemaps/geo';
13
8
  import { Env, toQueryString } from '@basemaps/shared';
14
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
15
- import { URL } from 'url';
9
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
10
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
16
11
 
17
12
  import { ConfigLoader } from '../util/config.loader.js';
18
13
  import { Etag } from '../util/etag.js';
@@ -1,8 +1,11 @@
1
+ import { createHash } from 'crypto';
2
+
1
3
  import { getAllImagery, TileSetType } from '@basemaps/config';
2
- import { GoogleTms, Nztm2000QuadTms, TileMatrixSet } from '@basemaps/geo';
4
+ import type { TileMatrixSet } from '@basemaps/geo';
5
+ import { GoogleTms, Nztm2000QuadTms } from '@basemaps/geo';
3
6
  import { Env } from '@basemaps/shared';
4
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
5
- import { createHash } from 'crypto';
7
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
8
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
6
9
 
7
10
  import { ConfigLoader } from '../util/config.loader.js';
8
11
  import { Etag } from '../util/etag.js';
@@ -1,16 +1,20 @@
1
- import { ConfigTileSetRaster, getAllImagery } from '@basemaps/config';
1
+ import type { ConfigTileSetRaster } from '@basemaps/config';
2
+ import { getAllImagery } from '@basemaps/config';
2
3
  import { Bounds, Epsg, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
3
- import { Cotar, Env, stringToUrlFolder, Tiff } from '@basemaps/shared';
4
+ import type { Cotar } from '@basemaps/shared';
5
+ import { Env, stringToUrlFolder, Tiff } from '@basemaps/shared';
4
6
  import { Tiler } from '@basemaps/tiler';
5
7
  import { TileMakerSharp } from '@basemaps/tiler-sharp';
6
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
8
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
9
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
7
10
  import pLimit from 'p-limit';
8
11
 
9
12
  import { ConfigLoader } from '../util/config.loader.js';
10
13
  import { Etag } from '../util/etag.js';
11
14
  import { NotModified } from '../util/response.js';
12
15
  import { CoSources } from '../util/source.cache.js';
13
- import { TileXyz, Validate } from '../util/validate.js';
16
+ import type { TileXyz } from '../util/validate.js';
17
+ import { Validate } from '../util/validate.js';
14
18
 
15
19
  const LoadingQueue = pLimit(Env.getNumber(Env.TiffConcurrency, 25));
16
20
 
@@ -1,5 +1,6 @@
1
1
  import { TileSetType } from '@basemaps/config';
2
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
2
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
3
+ import { LambdaHttpResponse } from '@linzjs/lambda';
3
4
 
4
5
  import { ConfigLoader } from '../util/config.loader.js';
5
6
  import { NotFound } from '../util/response.js';
@@ -1,12 +1,13 @@
1
- import { ConfigTileSetVector } from '@basemaps/config';
1
+ import type { ConfigTileSetVector } from '@basemaps/config';
2
2
  import { fsa } from '@basemaps/shared';
3
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
4
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
4
5
 
5
6
  import { isGzip } from '../util/cotar.serve.js';
6
7
  import { Etag } from '../util/etag.js';
7
8
  import { NoContent, NotFound, NotModified } from '../util/response.js';
8
9
  import { CoSources } from '../util/source.cache.js';
9
- import { TileXyz } from '../util/validate.js';
10
+ import type { TileXyz } from '../util/validate.js';
10
11
 
11
12
  export const tileXyzVector = {
12
13
  /** Serve a MVT vector tile */
@@ -1,5 +1,7 @@
1
- import { BasemapsConfigProvider, ConfigProviderMemory } from '@basemaps/config';
2
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
1
+ import type { BasemapsConfigProvider } from '@basemaps/config';
2
+ import { ConfigProviderMemory } from '@basemaps/config';
3
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
4
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
3
5
 
4
6
  import { ConfigLoader } from '../util/config.loader.js';
5
7
 
@@ -1,7 +1,7 @@
1
1
  import assert from 'node:assert';
2
2
  import { describe, it } from 'node:test';
3
3
 
4
- import { StyleJson } from '@basemaps/config';
4
+ import type { StyleJson } from '@basemaps/config';
5
5
  import { GoogleTms, Nztm2000QuadTms } from '@basemaps/geo';
6
6
 
7
7
  import { setStyleTerrain } from '../../routes/tile.style.json.js';
@@ -1,5 +1,6 @@
1
1
  import { fsa } from '@basemaps/shared';
2
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
2
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
3
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
3
4
 
4
5
  import { ConfigLoader } from './config.loader.js';
5
6
  import { isGzip } from './cotar.serve.js';
@@ -1,6 +1,7 @@
1
- import { ConfigBundled, ConfigProviderMemory } from '@basemaps/config';
1
+ import type { ConfigBundled } from '@basemaps/config';
2
+ import { ConfigProviderMemory } from '@basemaps/config';
2
3
  import { fsa } from '@basemaps/shared';
3
- import { FsError } from '@chunkd/fs';
4
+ import type { FsError } from '@chunkd/fs';
4
5
 
5
6
  import { SwappingLru } from './swapping.lru.js';
6
7
 
@@ -1,7 +1,8 @@
1
- import { base58, BasemapsConfigProvider, isBase58 } from '@basemaps/config';
1
+ import type { BasemapsConfigProvider } from '@basemaps/config';
2
+ import { base58, isBase58 } from '@basemaps/config';
2
3
  import { fsa, getDefaultConfig } from '@basemaps/shared';
3
4
  import { LambdaHttpResponse } from '@linzjs/lambda';
4
- import { LambdaHttpRequest } from '@linzjs/lambda';
5
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
5
6
 
6
7
  import { CachedConfig } from './config.cache.js';
7
8
 
@@ -1,4 +1,5 @@
1
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
1
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
2
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
2
3
 
3
4
  import { Etag } from './etag.js';
4
5
  import { NotFound, NotModified } from './response.js';
package/src/util/etag.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { sha256base58 } from '@basemaps/config';
2
- import { HttpHeader, LambdaHttpRequest } from '@linzjs/lambda';
2
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
3
+ import { HttpHeader } from '@linzjs/lambda';
3
4
 
4
5
  export const Etag = {
5
6
  key(obj: unknown): string {
@@ -1,4 +1,4 @@
1
- import { StyleJson } from '@basemaps/config';
1
+ import type { StyleJson } from '@basemaps/config';
2
2
 
3
3
  /**
4
4
  * limited checking to cast a unknown paint/layout into one with stops
@@ -1,4 +1,5 @@
1
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
1
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
2
+ import { LambdaHttpResponse } from '@linzjs/lambda';
2
3
 
3
4
  export const NotFound = (msg: string = 'Not Found'): LambdaHttpResponse => new LambdaHttpResponse(404, msg);
4
5
  export const NotModified = (): LambdaHttpResponse => new LambdaHttpResponse(304, 'Not modified');
@@ -1,10 +1,12 @@
1
- import { ConfigTileSetRaster, ConfigTileSetRasterOutput } from '@basemaps/config';
2
- import { ImageFormat, LatLon, Projection, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
3
- import { Const, Env, isValidApiKey, LogConfig, truncateApiKey } from '@basemaps/shared';
1
+ import type { ConfigTileSetRaster, ConfigTileSetRasterOutput } from '@basemaps/config';
2
+ import type { ImageFormat, LatLon, TileMatrixSet } from '@basemaps/geo';
3
+ import { Projection, TileMatrixSets } from '@basemaps/geo';
4
+ import { Const, Env, isValidApiKey, LogConfig } from '@basemaps/shared';
4
5
  import { getImageFormat } from '@basemaps/tiler';
5
- import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
6
+ import type { LambdaHttpRequest } from '@linzjs/lambda';
7
+ import { LambdaHttpResponse } from '@linzjs/lambda';
6
8
 
7
- import { TileXyzGet } from '../routes/tile.xyz.js';
9
+ import type { TileXyzGet } from '../routes/tile.xyz.js';
8
10
 
9
11
  export interface TileXyz {
10
12
  /** Tile XYZ location */
@@ -46,8 +48,7 @@ export const Validate = {
46
48
  const valid = isValidApiKey(apiKey);
47
49
 
48
50
  if (!valid.valid) throw new LambdaHttpResponse(400, 'API Key Invalid: ' + valid.message);
49
- // Truncate the API Key so we are not logging the full key
50
- req.set('api', truncateApiKey(apiKey));
51
+ req.set('api', apiKey);
51
52
 
52
53
  if (this.blockedApiKeys.has(apiKey as string)) {
53
54
  throw new LambdaHttpResponse(429, 'Too many requests! Please contact basemaps@linz.govt.nz for a developer key');
@@ -1,15 +1,11 @@
1
- import {
2
- ConfigImagery,
3
- ConfigLayer,
4
- ConfigTileSet,
5
- ConfigTileSetRasterOutput,
6
- standardizeLayerName,
7
- TileSetType,
8
- } from '@basemaps/config';
9
- import { BoundingBox, Bounds, GoogleTms, ImageFormat, Projection, TileMatrixSet, WmtsProvider } from '@basemaps/geo';
10
- import { toQueryString, V, VNodeElement } from '@basemaps/shared';
1
+ import type { ConfigImagery, ConfigLayer, ConfigTileSet, ConfigTileSetRasterOutput } from '@basemaps/config';
2
+ import { standardizeLayerName, TileSetType } from '@basemaps/config';
3
+ import type { BoundingBox, ImageFormat, TileMatrixSet, WmtsProvider } from '@basemaps/geo';
4
+ import { Bounds, GoogleTms, Projection } from '@basemaps/geo';
5
+ import type { VNodeElement } from '@basemaps/shared';
6
+ import { toQueryString, V } from '@basemaps/shared';
11
7
  import { ImageFormatOrder } from '@basemaps/tiler';
12
- import { BBox } from '@linzjs/geojson';
8
+ import type { BBox } from '@linzjs/geojson';
13
9
 
14
10
  const CapabilitiesAttrs = {
15
11
  xmlns: 'http://www.opengis.net/wmts/1.0',