@basemaps/lambda-tiler 7.0.0 → 7.1.1

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 (242) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/build/__tests__/config.data.d.ts +0 -1
  3. package/build/__tests__/config.data.js +2 -6
  4. package/build/__tests__/config.data.js.map +1 -1
  5. package/build/__tests__/index.test.d.ts +0 -1
  6. package/build/__tests__/index.test.js +28 -27
  7. package/build/__tests__/index.test.js.map +1 -1
  8. package/build/__tests__/tile.style.json.test.d.ts +0 -1
  9. package/build/__tests__/tile.style.json.test.js +38 -37
  10. package/build/__tests__/tile.style.json.test.js.map +1 -1
  11. package/build/__tests__/wmts.capability.test.d.ts +0 -1
  12. package/build/__tests__/wmts.capability.test.js +111 -122
  13. package/build/__tests__/wmts.capability.test.js.map +1 -1
  14. package/build/__tests__/xyz.util.d.ts +0 -1
  15. package/build/cli/render.preview.d.ts +0 -1
  16. package/build/cli/render.preview.js +13 -9
  17. package/build/cli/render.preview.js.map +1 -1
  18. package/build/cli/render.tile.d.ts +0 -1
  19. package/build/cli/render.tile.js +25 -17
  20. package/build/cli/render.tile.js.map +1 -1
  21. package/build/index.d.ts +0 -1
  22. package/build/index.js +24 -20
  23. package/build/index.js.map +1 -1
  24. package/build/routes/__tests__/attribution.test.d.ts +0 -1
  25. package/build/routes/__tests__/attribution.test.js +38 -37
  26. package/build/routes/__tests__/attribution.test.js.map +1 -1
  27. package/build/routes/__tests__/fonts.test.d.ts +0 -1
  28. package/build/routes/__tests__/fonts.test.js +61 -63
  29. package/build/routes/__tests__/fonts.test.js.map +1 -1
  30. package/build/routes/__tests__/health.test.d.ts +0 -1
  31. package/build/routes/__tests__/health.test.js +16 -16
  32. package/build/routes/__tests__/health.test.js.map +1 -1
  33. package/build/routes/__tests__/imagery.test.d.ts +0 -1
  34. package/build/routes/__tests__/imagery.test.js +10 -9
  35. package/build/routes/__tests__/imagery.test.js.map +1 -1
  36. package/build/routes/__tests__/memory.fs.d.ts +2 -3
  37. package/build/routes/__tests__/preview.index.test.d.ts +0 -1
  38. package/build/routes/__tests__/preview.index.test.js +88 -42
  39. package/build/routes/__tests__/preview.index.test.js.map +1 -1
  40. package/build/routes/__tests__/sprites.test.d.ts +0 -1
  41. package/build/routes/__tests__/sprites.test.js +34 -34
  42. package/build/routes/__tests__/sprites.test.js.map +1 -1
  43. package/build/routes/__tests__/tile.json.test.d.ts +0 -1
  44. package/build/routes/__tests__/tile.json.test.js +45 -51
  45. package/build/routes/__tests__/tile.json.test.js.map +1 -1
  46. package/build/routes/__tests__/tile.style.json.test.d.ts +0 -1
  47. package/build/routes/__tests__/tile.style.json.test.js +49 -50
  48. package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
  49. package/build/routes/__tests__/wmts.test.d.ts +0 -1
  50. package/build/routes/__tests__/wmts.test.js +27 -20
  51. package/build/routes/__tests__/wmts.test.js.map +1 -1
  52. package/build/routes/__tests__/xyz.test.d.ts +0 -1
  53. package/build/routes/__tests__/xyz.test.js +97 -49
  54. package/build/routes/__tests__/xyz.test.js.map +1 -1
  55. package/build/routes/attribution.d.ts +1 -1
  56. package/build/routes/attribution.js +4 -5
  57. package/build/routes/attribution.js.map +1 -1
  58. package/build/routes/config.d.ts +0 -1
  59. package/build/routes/config.js +1 -2
  60. package/build/routes/config.js.map +1 -1
  61. package/build/routes/fonts.d.ts +0 -1
  62. package/build/routes/fonts.js +2 -3
  63. package/build/routes/fonts.js.map +1 -1
  64. package/build/routes/health.d.ts +1 -2
  65. package/build/routes/health.js +5 -15
  66. package/build/routes/health.js.map +1 -1
  67. package/build/routes/imagery.d.ts +0 -1
  68. package/build/routes/imagery.js +1 -1
  69. package/build/routes/imagery.js.map +1 -1
  70. package/build/routes/ping.d.ts +0 -1
  71. package/build/routes/ping.js +1 -1
  72. package/build/routes/ping.js.map +1 -1
  73. package/build/routes/preview.d.ts +6 -5
  74. package/build/routes/preview.index.d.ts +0 -1
  75. package/build/routes/preview.index.js +6 -5
  76. package/build/routes/preview.index.js.map +1 -1
  77. package/build/routes/preview.js +35 -10
  78. package/build/routes/preview.js.map +1 -1
  79. package/build/routes/sprites.d.ts +0 -1
  80. package/build/routes/sprites.js +2 -4
  81. package/build/routes/sprites.js.map +1 -1
  82. package/build/routes/tile.json.d.ts +0 -1
  83. package/build/routes/tile.json.js +10 -5
  84. package/build/routes/tile.json.js.map +1 -1
  85. package/build/routes/tile.style.json.d.ts +1 -1
  86. package/build/routes/tile.style.json.js +79 -16
  87. package/build/routes/tile.style.json.js.map +1 -1
  88. package/build/routes/tile.wmts.d.ts +0 -1
  89. package/build/routes/tile.wmts.js +8 -9
  90. package/build/routes/tile.wmts.js.map +1 -1
  91. package/build/routes/tile.xyz.d.ts +0 -1
  92. package/build/routes/tile.xyz.js.map +1 -1
  93. package/build/routes/tile.xyz.raster.d.ts +7 -8
  94. package/build/routes/tile.xyz.raster.js +22 -15
  95. package/build/routes/tile.xyz.raster.js.map +1 -1
  96. package/build/routes/tile.xyz.vector.d.ts +0 -1
  97. package/build/routes/tile.xyz.vector.js +4 -3
  98. package/build/routes/tile.xyz.vector.js.map +1 -1
  99. package/build/routes/version.d.ts +0 -1
  100. package/build/routes/version.js +3 -4
  101. package/build/routes/version.js.map +1 -1
  102. package/build/util/__test__/config.loader.test.d.ts +0 -1
  103. package/build/util/__test__/config.loader.test.js +35 -34
  104. package/build/util/__test__/config.loader.test.js.map +1 -1
  105. package/build/util/__test__/filter.test.d.ts +0 -1
  106. package/build/util/__test__/filter.test.js +17 -16
  107. package/build/util/__test__/filter.test.js.map +1 -1
  108. package/build/util/__test__/validate.test.d.ts +0 -1
  109. package/build/util/__test__/validate.test.js +26 -43
  110. package/build/util/__test__/validate.test.js.map +1 -1
  111. package/build/util/assets.provider.d.ts +5 -5
  112. package/build/util/assets.provider.js +8 -8
  113. package/build/util/assets.provider.js.map +1 -1
  114. package/build/util/config.cache.d.ts +2 -2
  115. package/build/util/config.cache.js +14 -3
  116. package/build/util/config.cache.js.map +1 -1
  117. package/build/util/config.loader.d.ts +0 -1
  118. package/build/util/config.loader.js +11 -12
  119. package/build/util/config.loader.js.map +1 -1
  120. package/build/util/cotar.serve.d.ts +3 -3
  121. package/build/util/cotar.serve.js +2 -2
  122. package/build/util/cotar.serve.js.map +1 -1
  123. package/build/util/etag.d.ts +0 -1
  124. package/build/util/etag.js.map +1 -1
  125. package/build/util/filter.d.ts +0 -1
  126. package/build/util/filter.js +4 -5
  127. package/build/util/filter.js.map +1 -1
  128. package/build/util/response.d.ts +0 -1
  129. package/build/util/source.cache.d.ts +8 -9
  130. package/build/util/source.cache.js +27 -24
  131. package/build/util/source.cache.js.map +1 -1
  132. package/build/util/swapping.lru.d.ts +0 -1
  133. package/build/util/swapping.lru.js +48 -7
  134. package/build/util/swapping.lru.js.map +1 -1
  135. package/build/util/validate.d.ts +17 -5
  136. package/build/util/validate.js +51 -15
  137. package/build/util/validate.js.map +1 -1
  138. package/build/wmts.capability.d.ts +1 -2
  139. package/build/wmts.capability.js +81 -12
  140. package/build/wmts.capability.js.map +1 -1
  141. package/bundle.sh +2 -2
  142. package/package.json +16 -18
  143. package/scripts/create.deployment.package.mjs +4 -11
  144. package/src/__tests__/config.data.ts +2 -6
  145. package/src/__tests__/index.test.ts +29 -27
  146. package/src/__tests__/tile.style.json.test.ts +40 -37
  147. package/src/__tests__/wmts.capability.test.ts +139 -120
  148. package/src/cli/render.preview.ts +14 -9
  149. package/src/cli/render.tile.ts +27 -18
  150. package/src/index.ts +28 -23
  151. package/src/routes/__tests__/attribution.test.ts +40 -37
  152. package/src/routes/__tests__/fonts.test.ts +68 -64
  153. package/src/routes/__tests__/health.test.ts +18 -17
  154. package/src/routes/__tests__/imagery.test.ts +11 -9
  155. package/src/routes/__tests__/preview.index.test.ts +114 -40
  156. package/src/routes/__tests__/sprites.test.ts +39 -34
  157. package/src/routes/__tests__/tile.json.test.ts +41 -39
  158. package/src/routes/__tests__/tile.style.json.test.ts +49 -46
  159. package/src/routes/__tests__/wmts.test.ts +28 -20
  160. package/src/routes/__tests__/xyz.test.ts +134 -55
  161. package/src/routes/attribution.ts +2 -2
  162. package/src/routes/config.ts +1 -0
  163. package/src/routes/fonts.ts +3 -3
  164. package/src/routes/health.ts +7 -13
  165. package/src/routes/imagery.ts +2 -1
  166. package/src/routes/ping.ts +1 -1
  167. package/src/routes/preview.index.ts +9 -5
  168. package/src/routes/preview.ts +44 -15
  169. package/src/routes/sprites.ts +4 -5
  170. package/src/routes/tile.json.ts +9 -2
  171. package/src/routes/tile.style.json.ts +89 -13
  172. package/src/routes/tile.wmts.ts +4 -3
  173. package/src/routes/tile.xyz.raster.ts +30 -23
  174. package/src/routes/tile.xyz.ts +1 -0
  175. package/src/routes/tile.xyz.vector.ts +5 -3
  176. package/src/routes/version.ts +3 -3
  177. package/src/util/__test__/config.loader.test.ts +38 -34
  178. package/src/util/__test__/filter.test.ts +19 -16
  179. package/src/util/__test__/validate.test.ts +28 -43
  180. package/src/util/assets.provider.ts +10 -9
  181. package/src/util/config.cache.ts +4 -3
  182. package/src/util/config.loader.ts +13 -13
  183. package/src/util/cotar.serve.ts +3 -2
  184. package/src/util/source.cache.ts +15 -26
  185. package/src/util/validate.ts +61 -14
  186. package/src/wmts.capability.ts +3 -3
  187. package/tsconfig.json +1 -0
  188. package/tsconfig.tsbuildinfo +1 -1
  189. package/build/__tests__/config.data.d.ts.map +0 -1
  190. package/build/__tests__/index.test.d.ts.map +0 -1
  191. package/build/__tests__/tile.style.json.test.d.ts.map +0 -1
  192. package/build/__tests__/wmts.capability.test.d.ts.map +0 -1
  193. package/build/__tests__/xyz.util.d.ts.map +0 -1
  194. package/build/cli/render.preview.d.ts.map +0 -1
  195. package/build/cli/render.tile.d.ts.map +0 -1
  196. package/build/index.d.ts.map +0 -1
  197. package/build/routes/__tests__/attribution.test.d.ts.map +0 -1
  198. package/build/routes/__tests__/fonts.test.d.ts.map +0 -1
  199. package/build/routes/__tests__/health.test.d.ts.map +0 -1
  200. package/build/routes/__tests__/imagery.test.d.ts.map +0 -1
  201. package/build/routes/__tests__/memory.fs.d.ts.map +0 -1
  202. package/build/routes/__tests__/preview.index.test.d.ts.map +0 -1
  203. package/build/routes/__tests__/sprites.test.d.ts.map +0 -1
  204. package/build/routes/__tests__/tile.json.test.d.ts.map +0 -1
  205. package/build/routes/__tests__/tile.style.json.test.d.ts.map +0 -1
  206. package/build/routes/__tests__/wmts.test.d.ts.map +0 -1
  207. package/build/routes/__tests__/xyz.test.d.ts.map +0 -1
  208. package/build/routes/attribution.d.ts.map +0 -1
  209. package/build/routes/config.d.ts.map +0 -1
  210. package/build/routes/fonts.d.ts.map +0 -1
  211. package/build/routes/health.d.ts.map +0 -1
  212. package/build/routes/imagery.d.ts.map +0 -1
  213. package/build/routes/ping.d.ts.map +0 -1
  214. package/build/routes/preview.d.ts.map +0 -1
  215. package/build/routes/preview.index.d.ts.map +0 -1
  216. package/build/routes/sprites.d.ts.map +0 -1
  217. package/build/routes/tile.json.d.ts.map +0 -1
  218. package/build/routes/tile.style.json.d.ts.map +0 -1
  219. package/build/routes/tile.wmts.d.ts.map +0 -1
  220. package/build/routes/tile.xyz.d.ts.map +0 -1
  221. package/build/routes/tile.xyz.raster.d.ts.map +0 -1
  222. package/build/routes/tile.xyz.vector.d.ts.map +0 -1
  223. package/build/routes/version.d.ts.map +0 -1
  224. package/build/util/__test__/config.loader.test.d.ts.map +0 -1
  225. package/build/util/__test__/filter.test.d.ts.map +0 -1
  226. package/build/util/__test__/validate.test.d.ts.map +0 -1
  227. package/build/util/assets.provider.d.ts.map +0 -1
  228. package/build/util/config.cache.d.ts.map +0 -1
  229. package/build/util/config.loader.d.ts.map +0 -1
  230. package/build/util/cotar.serve.d.ts.map +0 -1
  231. package/build/util/etag.d.ts.map +0 -1
  232. package/build/util/filter.d.ts.map +0 -1
  233. package/build/util/response.d.ts.map +0 -1
  234. package/build/util/source.cache.d.ts.map +0 -1
  235. package/build/util/source.tracer.d.ts +0 -18
  236. package/build/util/source.tracer.d.ts.map +0 -1
  237. package/build/util/source.tracer.js +0 -26
  238. package/build/util/source.tracer.js.map +0 -1
  239. package/build/util/swapping.lru.d.ts.map +0 -1
  240. package/build/util/validate.d.ts.map +0 -1
  241. package/build/wmts.capability.d.ts.map +0 -1
  242. package/src/util/source.tracer.ts +0 -38
@@ -1,5 +1,6 @@
1
- /// <reference types="node" />
2
- import { LambdaHttpResponse, LambdaHttpRequest } from '@linzjs/lambda';
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
4
  export declare class AssetProvider {
4
5
  /**
5
6
  * Assets can be ready from the following locations.
@@ -9,8 +10,8 @@ export declare class AssetProvider {
9
10
  * s3://linz-baesmaps/assets/ # Remote location
10
11
  * s3://linz-basemaps/assets/assets-b4ff211a.tar.co # Remote Cotar
11
12
  */
12
- get(path: string, fileName: string): Promise<Buffer | null>;
13
- getFromCotar(path: string, fileName: string): Promise<Buffer | null>;
13
+ get(url: URL, fileName: string): Promise<Buffer | null>;
14
+ getFromCotar(path: URL, fileName: string): Promise<Buffer | null>;
14
15
  /**
15
16
  * Load a assets from local path or cotar returning the file back as a LambdaResponse
16
17
  *
@@ -21,4 +22,3 @@ export declare class AssetProvider {
21
22
  serve(req: LambdaHttpRequest, file: string, contentType: string): Promise<LambdaHttpResponse>;
22
23
  }
23
24
  export declare const assetProvider: AssetProvider;
24
- //# sourceMappingURL=assets.provider.d.ts.map
@@ -1,5 +1,5 @@
1
- import { fsa } from '@chunkd/fs';
2
- import { LambdaHttpResponse, HttpHeader } from '@linzjs/lambda';
1
+ import { fsa } from '@basemaps/shared';
2
+ import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
3
3
  import { ConfigLoader } from './config.loader.js';
4
4
  import { isGzip } from './cotar.serve.js';
5
5
  import { Etag } from './etag.js';
@@ -14,17 +14,17 @@ export class AssetProvider {
14
14
  * s3://linz-baesmaps/assets/ # Remote location
15
15
  * s3://linz-basemaps/assets/assets-b4ff211a.tar.co # Remote Cotar
16
16
  */
17
- async get(path, fileName) {
17
+ async get(url, fileName) {
18
18
  // get assets file from cotar
19
- if (path.endsWith('.tar.co'))
20
- return await this.getFromCotar(path, fileName);
19
+ if (url.pathname.endsWith('.tar.co'))
20
+ return await this.getFromCotar(url, fileName);
21
21
  // get assets file for directory
22
22
  try {
23
- const filePath = fsa.join(path, fileName);
23
+ const filePath = new URL(fileName, url);
24
24
  return await fsa.read(filePath);
25
25
  }
26
26
  catch (e) {
27
- if (e.code === 404)
27
+ if (e?.code === 404)
28
28
  return null;
29
29
  throw e;
30
30
  }
@@ -47,7 +47,7 @@ export class AssetProvider {
47
47
  return NotFound();
48
48
  if (config.assets == null)
49
49
  return NotFound();
50
- const buf = await assetProvider.get(config.assets, file);
50
+ const buf = await assetProvider.get(fsa.toUrl(config.assets), file);
51
51
  if (buf == null)
52
52
  return NotFound();
53
53
  const cacheKey = Etag.key(buf);
@@ -1 +1 @@
1
- {"version":3,"file":"assets.provider.js","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAqB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,aAAa;IACxB;;;;;;;OAOG;IAEH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,QAAgB;QACtC,6BAA6B;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE7E,gCAAgC;QAChC,IAAI;YACF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAgB;QAC/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,GAAsB,EAAE,IAAY,EAAE,WAAmB;QACnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACnC,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,kBAAkB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAClE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;QACjG,IAAI,MAAM,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"assets.provider.js","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,aAAa;IACxB;;;;;;;OAOG;IAEH,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,QAAgB;QAClC,6BAA6B;QAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEpF,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAAsB,EAAE,IAAI,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACvD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAS,EAAE,QAAgB;QAC5C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,GAAsB,EAAE,IAAY,EAAE,WAAmB;QACnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACnC,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,kBAAkB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAClE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;QACjG,IAAI,MAAM,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" resolution-mode="require"/>
1
2
  import { ConfigBundled, ConfigProviderMemory } from '@basemaps/config';
2
3
  import { SwappingLru } from './swapping.lru.js';
3
4
  declare class LruConfig {
@@ -8,9 +9,8 @@ declare class LruConfig {
8
9
  export declare class ConfigCache {
9
10
  cache: SwappingLru<LruConfig>;
10
11
  constructor(maxSize: number);
11
- get(location: string): Promise<ConfigProviderMemory | null>;
12
+ get(location: URL): Promise<ConfigProviderMemory | null>;
12
13
  }
13
14
  /** Cache 20 configs (Around <30KB -> 5MB each)*/
14
15
  export declare const CachedConfig: ConfigCache;
15
16
  export {};
16
- //# sourceMappingURL=config.cache.d.ts.map
@@ -3,6 +3,12 @@ import { fsa } from '@basemaps/shared';
3
3
  import { SwappingLru } from './swapping.lru.js';
4
4
  class LruConfig {
5
5
  constructor(config) {
6
+ Object.defineProperty(this, "configProvider", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
6
12
  this.configProvider = config
7
13
  .then((c) => {
8
14
  if (c == null)
@@ -24,18 +30,23 @@ class LruConfig {
24
30
  }
25
31
  export class ConfigCache {
26
32
  constructor(maxSize) {
33
+ Object.defineProperty(this, "cache", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
27
39
  this.cache = new SwappingLru(maxSize);
28
40
  }
29
41
  get(location) {
30
- var _a;
31
- const existing = (_a = this.cache.get(location)) === null || _a === void 0 ? void 0 : _a.configProvider;
42
+ const existing = this.cache.get(location.href)?.configProvider;
32
43
  if (existing != null)
33
44
  return existing;
34
45
  const configJson = fsa.readJson(location).catch(() => {
35
46
  return null;
36
47
  });
37
48
  const config = new LruConfig(configJson);
38
- this.cache.set(location, config);
49
+ this.cache.set(location.href, config);
39
50
  return config.configProvider;
40
51
  }
41
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.cache.js","sourceRoot":"","sources":["../../src/util/config.cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,SAAS;IAGb,YAAY,MAAqC;QAC/C,IAAI,CAAC,cAAc,GAAG,MAAM;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC3B,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxD,cAAc,CAAC,qBAAqB,EAAE,CAAC;YACvC,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,IAAI;QACN,qFAAqF;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IAEtB,YAAY,OAAe;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAY,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,GAAG,CAAC,QAAgB;;QAClB,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,cAAc,CAAC;QAC1D,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAgB,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAClE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,CAAC;IAC/B,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"config.cache.js","sourceRoot":"","sources":["../../src/util/config.cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,SAAS;IAGb,YAAY,MAAqC;QAFjD;;;;;WAAqD;QAGnD,IAAI,CAAC,cAAc,GAAG,MAAM;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC3B,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxD,cAAc,CAAC,qBAAqB,EAAE,CAAC;YACvC,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,IAAI;QACN,qFAAqF;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IAEtB,YAAY,OAAe;QAD3B;;;;;WAA8B;QAE5B,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAY,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,GAAG,CAAC,QAAa;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;QAC/D,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAgB,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAClE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,cAAc,CAAC;IAC/B,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC"}
@@ -7,4 +7,3 @@ export declare class ConfigLoader {
7
7
  static extract(req: LambdaHttpRequest): string | null;
8
8
  static load(req: LambdaHttpRequest): Promise<BasemapsConfigProvider>;
9
9
  }
10
- //# sourceMappingURL=config.loader.d.ts.map
@@ -1,9 +1,8 @@
1
1
  import { base58, isBase58 } from '@basemaps/config';
2
+ import { fsa, getDefaultConfig } from '@basemaps/shared';
2
3
  import { LambdaHttpResponse } from '@linzjs/lambda';
3
- import { parseUri } from '@chunkd/core';
4
4
  import { CachedConfig } from './config.cache.js';
5
- import { getDefaultConfig } from '@basemaps/shared';
6
- // FIXME load this from process.env COG BUCKETS?
5
+ // TODO load this from process.env COG BUCKETS?
7
6
  const SafeBuckets = new Set([
8
7
  'linz-workflows-scratch',
9
8
  'linz-workflow-artifacts',
@@ -11,7 +10,7 @@ const SafeBuckets = new Set([
11
10
  'linz-basemaps-staging',
12
11
  'linz-basemaps-scratch',
13
12
  ]);
14
- const SafeProtocols = new Set(['s3', 'memory']);
13
+ const SafeProtocols = new Set([new URL('s3://foo').protocol, new URL('memory://foo.json').protocol]);
15
14
  export class ConfigLoader {
16
15
  /** Exposed for testing */
17
16
  static async getDefaultConfig() {
@@ -37,18 +36,18 @@ export class ConfigLoader {
37
36
  if (rawLocation == null)
38
37
  return this.getDefaultConfig();
39
38
  const configLocation = isBase58(rawLocation) ? Buffer.from(base58.decode(rawLocation)).toString() : rawLocation;
40
- const r = parseUri(configLocation);
41
- if (r == null)
39
+ const configUrl = fsa.toUrl(configLocation);
40
+ if (configUrl == null)
42
41
  throw new LambdaHttpResponse(400, 'Invalid config location');
43
- if (!SafeProtocols.has(r.protocol)) {
44
- throw new LambdaHttpResponse(400, `Invalid configuration location protocol:${r.protocol}`);
42
+ if (!SafeProtocols.has(configUrl.protocol)) {
43
+ throw new LambdaHttpResponse(400, `Invalid configuration location protocol:${configUrl.protocol}`);
45
44
  }
46
- if (!SafeBuckets.has(r.bucket)) {
47
- throw new LambdaHttpResponse(400, `Bucket: "${r.bucket}" is not a allowed bucket location`);
45
+ if (!SafeBuckets.has(configUrl.hostname)) {
46
+ throw new LambdaHttpResponse(400, `Bucket: "${configUrl.hostname}" is not a allowed bucket location`);
48
47
  }
49
- req.set('config', configLocation);
48
+ req.set('config', configUrl.href);
50
49
  req.timer.start('config:load');
51
- return CachedConfig.get(configLocation).then((f) => {
50
+ return CachedConfig.get(configUrl).then((f) => {
52
51
  req.timer.end('config:load');
53
52
  if (f == null)
54
53
  throw new LambdaHttpResponse(400, `Invalid config location at ${configLocation}`);
@@ -1 +1 @@
1
- {"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,gDAAgD;AAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,eAAe;IACf,uBAAuB;IACvB,uBAAuB;CACxB,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhD,MAAM,OAAO,YAAY;IACvB,0BAA0B;IAC1B,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3E,IAAI,EAAE;gBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;SACnC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,OAAO,CAAC,GAAsB;QACnC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,WAAW,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAsB;QACtC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,WAAW,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExD,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAEhH,MAAM,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAEnC,IAAI,CAAC,IAAI,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;YAClC,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5F;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,MAAM,oCAAoC,CAAC,CAAC;SAC7F;QAED,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/B,OAAO,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACjD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,IAAI;gBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,8BAA8B,cAAc,EAAE,CAAC,CAAC;YACjG,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
2
3
  import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
4
  /**
4
5
  * Load a cotar and look for a file inside the cotar returning the file back as a LambdaResponse
@@ -7,7 +8,7 @@ import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
7
8
  * - Content-Encoding if the file starts with gzip magic
8
9
  * - Content-Type from the parameter contentType
9
10
  */
10
- export declare function serveFromCotar(req: LambdaHttpRequest, cotarPath: string, assetPath: string, contentType: string): Promise<LambdaHttpResponse>;
11
+ export declare function serveFromCotar(req: LambdaHttpRequest, url: URL, assetPath: string, contentType: string): Promise<LambdaHttpResponse>;
11
12
  /**
12
13
  * Does a buffer look like a gzipped document instead of raw json
13
14
  *
@@ -17,4 +18,3 @@ export declare function serveFromCotar(req: LambdaHttpRequest, cotarPath: string
17
18
  *
18
19
  */
19
20
  export declare function isGzip(b: Buffer): boolean;
20
- //# sourceMappingURL=cotar.serve.d.ts.map
@@ -9,8 +9,8 @@ import { CoSources } from './source.cache.js';
9
9
  * - Content-Encoding if the file starts with gzip magic
10
10
  * - Content-Type from the parameter contentType
11
11
  */
12
- export async function serveFromCotar(req, cotarPath, assetPath, contentType) {
13
- const cotar = await CoSources.getCotar(cotarPath);
12
+ export async function serveFromCotar(req, url, assetPath, contentType) {
13
+ const cotar = await CoSources.getCotar(url);
14
14
  if (cotar == null)
15
15
  return NotFound();
16
16
  const fileData = await cotar.get(assetPath);
@@ -1 +1 @@
1
- {"version":3,"file":"cotar.serve.js","sourceRoot":"","sources":["../../src/util/cotar.serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAsB,EACtB,SAAiB,EACjB,SAAiB,EACjB,WAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,QAAQ,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,EAAE,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,WAAW,EAAE,CAAC;IAE5D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,GAAG,CAAC;QAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"cotar.serve.js","sourceRoot":"","sources":["../../src/util/cotar.serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAsB,EACtB,GAAQ,EACR,SAAiB,EACjB,WAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,QAAQ,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,EAAE,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,WAAW,EAAE,CAAC;IAE5D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,GAAG,CAAC;QAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACxC,CAAC"}
@@ -3,4 +3,3 @@ export declare const Etag: {
3
3
  key(obj: unknown): string;
4
4
  isNotModified(req: LambdaHttpRequest, cacheKey: string): boolean;
5
5
  };
6
- //# sourceMappingURL=etag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"etag.js","sourceRoot":"","sources":["../../src/util/etag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAE/D,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,GAAG,CAAC,GAAY;QACd,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAAsB,EAAE,QAAgB;QACpD,4FAA4F;QAC5F,wCAAwC;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;YAC7D,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"etag.js","sourceRoot":"","sources":["../../src/util/etag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAE/D,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,GAAG,CAAC,GAAY;QACd,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAAsB,EAAE,QAAgB;QACpD,4FAA4F;QAC5F,wCAAwC;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
@@ -12,4 +12,3 @@ export declare function getFilters(req: LambdaHttpRequest): Record<string, strin
12
12
  */
13
13
  export declare function yearRangeToInterval(x: [number] | [number, number]): [Date, Date];
14
14
  export declare function filterLayers(req: LambdaHttpRequest, layers: ConfigLayer[]): ConfigLayer[];
15
- //# sourceMappingURL=filter.d.ts.map
@@ -5,10 +5,9 @@ export const FilterNames = {
5
5
  DateAfter: 'date[after]',
6
6
  };
7
7
  export function getFilters(req) {
8
- var _a, _b;
9
8
  return {
10
- [FilterNames.DateBefore]: (_a = req.query.get(FilterNames.DateBefore)) !== null && _a !== void 0 ? _a : undefined,
11
- [FilterNames.DateAfter]: (_b = req.query.get(FilterNames.DateAfter)) !== null && _b !== void 0 ? _b : undefined,
9
+ [FilterNames.DateBefore]: req.query.get(FilterNames.DateBefore) ?? undefined,
10
+ [FilterNames.DateAfter]: req.query.get(FilterNames.DateAfter) ?? undefined,
12
11
  };
13
12
  }
14
13
  /**
@@ -49,8 +48,8 @@ export function filterLayers(req, layers) {
49
48
  });
50
49
  // Trace that layers have been filtered
51
50
  req.set('layerFilter', {
52
- [FilterNames.DateBefore]: dateBefore === null || dateBefore === void 0 ? void 0 : dateBefore.toISOString(),
53
- [FilterNames.DateAfter]: dateAfter === null || dateAfter === void 0 ? void 0 : dateAfter.toISOString(),
51
+ [FilterNames.DateBefore]: dateBefore?.toISOString(),
52
+ [FilterNames.DateAfter]: dateAfter?.toISOString(),
54
53
  layerCount: layers.length,
55
54
  filterCount: filtered.length,
56
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/util/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/util/filter.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,3 @@ export declare const NotFound: () => LambdaHttpResponse;
3
3
  export declare const NotModified: () => LambdaHttpResponse;
4
4
  export declare const NoContent: () => LambdaHttpResponse;
5
5
  export declare const OkResponse: (req: LambdaHttpRequest) => LambdaHttpResponse;
6
- //# sourceMappingURL=response.d.ts.map
@@ -1,5 +1,5 @@
1
- import { CogTiff } from '@cogeotiff/core';
2
- import { Cotar } from '@cotar/core';
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Cotar, Tiff } from '@basemaps/shared';
3
3
  import { SwappingLru } from './swapping.lru.js';
4
4
  export type LruStrut = LruStrutCotar | LruStrutCog;
5
5
  export interface LruStrutCotar {
@@ -9,21 +9,20 @@ export interface LruStrutCotar {
9
9
  }
10
10
  export interface LruStrutCog {
11
11
  type: 'cog';
12
- value: Promise<CogTiff>;
13
- _value?: CogTiff;
12
+ value: Promise<Tiff>;
13
+ _value?: Tiff;
14
14
  }
15
15
  declare class LruStrutObj<T extends LruStrut> {
16
16
  ob: T;
17
17
  constructor(ob: T);
18
- get size(): number;
18
+ size: number;
19
19
  }
20
20
  export declare class SourceCache {
21
21
  cache: SwappingLru<LruStrutObj<LruStrutCotar | LruStrutCog>>;
22
22
  constructor(maxSize: number);
23
- getCog(location: string): Promise<CogTiff>;
24
- getCotar(location: string): Promise<Cotar>;
23
+ getCog(location: URL): Promise<Tiff>;
24
+ getCotar(location: URL): Promise<Cotar>;
25
25
  }
26
- /** Approx ~1.4GB 2x~700MB caches */
26
+ /** Cache the last 5,000 tiff/tar files accessed, generally it is only <100KB of memory used per tiff file so approx 50MB of cache */
27
27
  export declare const CoSources: SourceCache;
28
28
  export {};
29
- //# sourceMappingURL=source.cache.d.ts.map
@@ -1,54 +1,57 @@
1
- import { fsa } from '@basemaps/shared';
2
- import { CogTiff } from '@cogeotiff/core';
3
- import { Cotar } from '@cotar/core';
4
- import { St } from './source.tracer.js';
1
+ import { Cotar, fsa, Tiff } from '@basemaps/shared';
5
2
  import { SwappingLru } from './swapping.lru.js';
6
3
  class LruStrutObj {
7
4
  constructor(ob) {
5
+ Object.defineProperty(this, "ob", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: void 0
10
+ });
11
+ Object.defineProperty(this, "size", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: 1
16
+ });
8
17
  this.ob = ob;
9
18
  if (this.ob._value == null)
10
19
  this.ob.value.then((c) => (this.ob._value = c));
11
20
  }
12
- get size() {
13
- const val = this.ob._value;
14
- if (val == null)
15
- return 0;
16
- return val.source.chunkSize * val.source.chunks.size;
17
- }
18
21
  }
19
22
  export class SourceCache {
20
23
  constructor(maxSize) {
24
+ Object.defineProperty(this, "cache", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
21
30
  this.cache = new SwappingLru(maxSize);
22
31
  }
23
32
  getCog(location) {
24
- var _a;
25
- const existing = (_a = this.cache.get(location)) === null || _a === void 0 ? void 0 : _a.ob;
33
+ const existing = this.cache.get(location.href)?.ob;
26
34
  if (existing != null) {
27
35
  if (existing.type === 'cog')
28
36
  return existing.value;
29
37
  throw new Error(`Existing object of type: ${existing.type} made for location: ${location}`);
30
38
  }
31
- const source = fsa.source(location);
32
- St.trace(source);
33
- const value = CogTiff.create(source);
34
- this.cache.set(location, new LruStrutObj({ type: 'cog', value }));
39
+ const value = Tiff.create(fsa.source(location));
40
+ this.cache.set(location.href, new LruStrutObj({ type: 'cog', value }));
35
41
  return value;
36
42
  }
37
43
  getCotar(location) {
38
- var _a;
39
- const existing = (_a = this.cache.get(location)) === null || _a === void 0 ? void 0 : _a.ob;
44
+ const existing = this.cache.get(location.href)?.ob;
40
45
  if (existing != null) {
41
46
  if (existing.type === 'cotar')
42
47
  return existing.value;
43
48
  throw new Error(`Existing object of type: ${existing.type} made for location: ${location}`);
44
49
  }
45
- const source = fsa.source(location);
46
- St.trace(source);
47
- const value = Cotar.fromTar(source);
48
- this.cache.set(location, new LruStrutObj({ type: 'cotar', value }));
50
+ const value = Cotar.fromTar(fsa.source(location));
51
+ this.cache.set(location.href, new LruStrutObj({ type: 'cotar', value }));
49
52
  return value;
50
53
  }
51
54
  }
52
- /** Approx ~1.4GB 2x~700MB caches */
53
- export const CoSources = new SourceCache(700 * 1000 * 1000);
55
+ /** Cache the last 5,000 tiff/tar files accessed, generally it is only <100KB of memory used per tiff file so approx 50MB of cache */
56
+ export const CoSources = new SourceCache(5000);
54
57
  //# sourceMappingURL=source.cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.cache.js","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.cache.js","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBhD,MAAM,WAAW;IAEf,YAAY,EAAK;QADjB;;;;;WAAM;QAMN;;;;mBAAO,CAAC;WAAC;QAJP,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;CAGF;AAED,MAAM,OAAO,WAAW;IAEtB,YAAY,OAAe;QAD3B;;;;;WAA6D;QAE3D,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAwB,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,QAAa;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAEnD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,QAAa;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAEnD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,QAAQ,CAAC,KAAuB,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,qIAAqI;AACrI,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC"}
@@ -19,4 +19,3 @@ export declare class SwappingLru<T extends {
19
19
  /** Calculate the total number of bytes used by this cache */
20
20
  get currentSize(): number;
21
21
  }
22
- //# sourceMappingURL=swapping.lru.d.ts.map
@@ -1,12 +1,53 @@
1
1
  export class SwappingLru {
2
2
  constructor(maxSize) {
3
- this.cacheA = new Map();
4
- this.cacheB = new Map();
5
- this.hits = 0;
6
- this.misses = 0;
7
- this.resets = 0;
8
- this.clears = 0;
9
- this._lastCheckedAt = -1;
3
+ Object.defineProperty(this, "cacheA", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: new Map()
8
+ });
9
+ Object.defineProperty(this, "cacheB", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: new Map()
14
+ });
15
+ Object.defineProperty(this, "maxSize", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ Object.defineProperty(this, "hits", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: 0
26
+ });
27
+ Object.defineProperty(this, "misses", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: 0
32
+ });
33
+ Object.defineProperty(this, "resets", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: 0
38
+ });
39
+ Object.defineProperty(this, "clears", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: 0
44
+ });
45
+ Object.defineProperty(this, "_lastCheckedAt", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: -1
50
+ });
10
51
  this.maxSize = maxSize;
11
52
  }
12
53
  get(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"swapping.lru.js","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAYtB,YAAY,OAAe;QAX3B,WAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;QACnC,WAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;QAGnC,SAAI,GAAG,CAAC,CAAC;QACT,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QAEX,mBAAc,GAAG,CAAC,CAAC,CAAC;QAGlB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,IAAO;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;YAAE,OAAO;QAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,qFAAqF;QACrF,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"swapping.lru.js","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAYtB,YAAY,OAAe;QAX3B;;;;mBAAyB,IAAI,GAAG,EAAE;WAAC;QACnC;;;;mBAAyB,IAAI,GAAG,EAAE;WAAC;QACnC;;;;;WAAgB;QAEhB;;;;mBAAO,CAAC;WAAC;QACT;;;;mBAAS,CAAC;WAAC;QACX;;;;mBAAS,CAAC;WAAC;QACX;;;;mBAAS,CAAC;WAAC;QAEX;;;;mBAAiB,CAAC,CAAC;WAAC;QAGlB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,IAAO;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;YAAE,OAAO;QAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,qFAAqF;QACrF,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,15 +1,22 @@
1
- import { ImageFormat, LatLon, TileMatrixSet, VectorFormat } from '@basemaps/geo';
1
+ import { ConfigTileSetRaster, ConfigTileSetRasterOutput } from '@basemaps/config';
2
+ import { ImageFormat, LatLon, TileMatrixSet } from '@basemaps/geo';
2
3
  import { LambdaHttpRequest } from '@linzjs/lambda';
3
- import { TileXyzGet } from '../routes/tile.xyz';
4
+ import { TileXyzGet } from '../routes/tile.xyz.js';
4
5
  export interface TileXyz {
6
+ /** Tile XYZ location */
5
7
  tile: {
6
8
  x: number;
7
9
  y: number;
8
10
  z: number;
9
11
  };
12
+ /** Name of the tile set to use */
10
13
  tileSet: string;
14
+ /** TileMatrix that is requested */
11
15
  tileMatrix: TileMatrixSet;
12
- tileType: VectorFormat | ImageFormat;
16
+ /** Output tile format */
17
+ tileType: string;
18
+ /** Optional processing pipeline to use */
19
+ pipeline?: string | null;
13
20
  }
14
21
  export interface TileMatrixRequest {
15
22
  Params: {
@@ -19,13 +26,13 @@ export interface TileMatrixRequest {
19
26
  export declare const Validate: {
20
27
  /**
21
28
  * Validate that the api key exists and is valid
29
+ *
22
30
  * @throws if api key is not valid
23
31
  */
24
32
  apiKey(req: LambdaHttpRequest): string;
25
33
  getTileMatrixSet(str?: string): TileMatrixSet | null;
26
34
  /** Read in all image formats specified in the query parameters "format" or "tileFormat" */
27
35
  getRequestedFormats(req: LambdaHttpRequest): ImageFormat[] | null;
28
- getTileFormat(tileType: string): ImageFormat | VectorFormat | null;
29
36
  /** Validate that a lat and lon are between -90/90 and -180/180 */
30
37
  getLocation(lonIn: string, latIn: string): LatLon | null;
31
38
  /**
@@ -39,5 +46,10 @@ export declare const Validate: {
39
46
  * @param xyzData
40
47
  */
41
48
  xyz(req: LambdaHttpRequest<TileXyzGet>): TileXyz;
49
+ /**
50
+ * Lookup the raster configuration pipeline for a output tile type
51
+ *
52
+ * Defaults to standard image format output if no outputs are defined on the tileset
53
+ */
54
+ pipeline(tileSet: ConfigTileSetRaster, tileType: string, pipeline?: string | null): ConfigTileSetRasterOutput | null;
42
55
  };
43
- //# sourceMappingURL=validate.d.ts.map