@basemaps/lambda-tiler 6.46.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +93 -1
  3. package/build/__tests__/config.data.d.ts +0 -1
  4. package/build/__tests__/config.data.js +2 -6
  5. package/build/__tests__/config.data.js.map +1 -1
  6. package/build/__tests__/index.test.d.ts +0 -1
  7. package/build/__tests__/index.test.js +28 -27
  8. package/build/__tests__/index.test.js.map +1 -1
  9. package/build/__tests__/tile.style.json.test.d.ts +0 -1
  10. package/build/__tests__/tile.style.json.test.js +38 -37
  11. package/build/__tests__/tile.style.json.test.js.map +1 -1
  12. package/build/__tests__/wmts.capability.test.d.ts +0 -1
  13. package/build/__tests__/wmts.capability.test.js +111 -122
  14. package/build/__tests__/wmts.capability.test.js.map +1 -1
  15. package/build/__tests__/xyz.util.d.ts +0 -1
  16. package/build/cli/render.preview.d.ts +0 -1
  17. package/build/cli/render.preview.js +13 -9
  18. package/build/cli/render.preview.js.map +1 -1
  19. package/build/cli/render.tile.d.ts +0 -1
  20. package/build/cli/render.tile.js +25 -17
  21. package/build/cli/render.tile.js.map +1 -1
  22. package/build/index.d.ts +0 -1
  23. package/build/index.js +27 -31
  24. package/build/index.js.map +1 -1
  25. package/build/routes/__tests__/attribution.test.d.ts +0 -1
  26. package/build/routes/__tests__/attribution.test.js +38 -37
  27. package/build/routes/__tests__/attribution.test.js.map +1 -1
  28. package/build/routes/__tests__/fonts.test.d.ts +0 -1
  29. package/build/routes/__tests__/fonts.test.js +61 -63
  30. package/build/routes/__tests__/fonts.test.js.map +1 -1
  31. package/build/routes/__tests__/health.test.d.ts +0 -1
  32. package/build/routes/__tests__/health.test.js +16 -16
  33. package/build/routes/__tests__/health.test.js.map +1 -1
  34. package/build/routes/__tests__/imagery.test.d.ts +0 -1
  35. package/build/routes/__tests__/imagery.test.js +10 -9
  36. package/build/routes/__tests__/imagery.test.js.map +1 -1
  37. package/build/routes/__tests__/memory.fs.d.ts +2 -3
  38. package/build/routes/__tests__/preview.index.test.d.ts +0 -1
  39. package/build/routes/__tests__/preview.index.test.js +88 -42
  40. package/build/routes/__tests__/preview.index.test.js.map +1 -1
  41. package/build/routes/__tests__/sprites.test.d.ts +0 -1
  42. package/build/routes/__tests__/sprites.test.js +34 -34
  43. package/build/routes/__tests__/sprites.test.js.map +1 -1
  44. package/build/routes/__tests__/tile.json.test.d.ts +0 -1
  45. package/build/routes/__tests__/tile.json.test.js +45 -51
  46. package/build/routes/__tests__/tile.json.test.js.map +1 -1
  47. package/build/routes/__tests__/tile.style.json.test.d.ts +0 -1
  48. package/build/routes/__tests__/tile.style.json.test.js +49 -50
  49. package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
  50. package/build/routes/__tests__/wmts.test.d.ts +0 -1
  51. package/build/routes/__tests__/wmts.test.js +27 -20
  52. package/build/routes/__tests__/wmts.test.js.map +1 -1
  53. package/build/routes/__tests__/xyz.test.d.ts +0 -1
  54. package/build/routes/__tests__/xyz.test.js +97 -49
  55. package/build/routes/__tests__/xyz.test.js.map +1 -1
  56. package/build/routes/attribution.d.ts +1 -1
  57. package/build/routes/attribution.js +4 -5
  58. package/build/routes/attribution.js.map +1 -1
  59. package/build/routes/config.d.ts +0 -1
  60. package/build/routes/config.js +1 -2
  61. package/build/routes/config.js.map +1 -1
  62. package/build/routes/fonts.d.ts +0 -1
  63. package/build/routes/fonts.js +2 -3
  64. package/build/routes/fonts.js.map +1 -1
  65. package/build/routes/health.d.ts +1 -2
  66. package/build/routes/health.js +5 -15
  67. package/build/routes/health.js.map +1 -1
  68. package/build/routes/imagery.d.ts +0 -1
  69. package/build/routes/imagery.js +1 -1
  70. package/build/routes/imagery.js.map +1 -1
  71. package/build/routes/ping.d.ts +0 -1
  72. package/build/routes/ping.js +1 -1
  73. package/build/routes/ping.js.map +1 -1
  74. package/build/routes/preview.d.ts +6 -5
  75. package/build/routes/preview.index.d.ts +0 -1
  76. package/build/routes/preview.index.js +6 -5
  77. package/build/routes/preview.index.js.map +1 -1
  78. package/build/routes/preview.js +35 -10
  79. package/build/routes/preview.js.map +1 -1
  80. package/build/routes/sprites.d.ts +0 -1
  81. package/build/routes/sprites.js +2 -4
  82. package/build/routes/sprites.js.map +1 -1
  83. package/build/routes/tile.json.d.ts +0 -1
  84. package/build/routes/tile.json.js +10 -5
  85. package/build/routes/tile.json.js.map +1 -1
  86. package/build/routes/tile.style.json.d.ts +1 -1
  87. package/build/routes/tile.style.json.js +79 -16
  88. package/build/routes/tile.style.json.js.map +1 -1
  89. package/build/routes/tile.wmts.d.ts +0 -1
  90. package/build/routes/tile.wmts.js +8 -9
  91. package/build/routes/tile.wmts.js.map +1 -1
  92. package/build/routes/tile.xyz.d.ts +0 -1
  93. package/build/routes/tile.xyz.js.map +1 -1
  94. package/build/routes/tile.xyz.raster.d.ts +7 -8
  95. package/build/routes/tile.xyz.raster.js +17 -13
  96. package/build/routes/tile.xyz.raster.js.map +1 -1
  97. package/build/routes/tile.xyz.vector.d.ts +0 -1
  98. package/build/routes/tile.xyz.vector.js +4 -3
  99. package/build/routes/tile.xyz.vector.js.map +1 -1
  100. package/build/routes/version.d.ts +0 -1
  101. package/build/routes/version.js +3 -4
  102. package/build/routes/version.js.map +1 -1
  103. package/build/util/__test__/config.loader.test.d.ts +0 -1
  104. package/build/util/__test__/config.loader.test.js +35 -34
  105. package/build/util/__test__/config.loader.test.js.map +1 -1
  106. package/build/util/__test__/filter.test.d.ts +0 -1
  107. package/build/util/__test__/filter.test.js +17 -16
  108. package/build/util/__test__/filter.test.js.map +1 -1
  109. package/build/util/__test__/validate.test.d.ts +0 -1
  110. package/build/util/__test__/validate.test.js +26 -43
  111. package/build/util/__test__/validate.test.js.map +1 -1
  112. package/build/util/assets.provider.d.ts +5 -5
  113. package/build/util/assets.provider.js +8 -8
  114. package/build/util/assets.provider.js.map +1 -1
  115. package/build/util/config.cache.d.ts +2 -2
  116. package/build/util/config.cache.js +14 -3
  117. package/build/util/config.cache.js.map +1 -1
  118. package/build/util/config.loader.d.ts +0 -1
  119. package/build/util/config.loader.js +18 -13
  120. package/build/util/config.loader.js.map +1 -1
  121. package/build/util/cotar.serve.d.ts +3 -3
  122. package/build/util/cotar.serve.js +2 -2
  123. package/build/util/cotar.serve.js.map +1 -1
  124. package/build/util/etag.d.ts +0 -1
  125. package/build/util/etag.js.map +1 -1
  126. package/build/util/filter.d.ts +0 -1
  127. package/build/util/filter.js +4 -5
  128. package/build/util/filter.js.map +1 -1
  129. package/build/util/response.d.ts +0 -1
  130. package/build/util/source.cache.d.ts +8 -9
  131. package/build/util/source.cache.js +27 -24
  132. package/build/util/source.cache.js.map +1 -1
  133. package/build/util/swapping.lru.d.ts +0 -1
  134. package/build/util/swapping.lru.js +48 -7
  135. package/build/util/swapping.lru.js.map +1 -1
  136. package/build/util/validate.d.ts +17 -5
  137. package/build/util/validate.js +51 -15
  138. package/build/util/validate.js.map +1 -1
  139. package/build/wmts.capability.d.ts +1 -2
  140. package/build/wmts.capability.js +81 -12
  141. package/build/wmts.capability.js.map +1 -1
  142. package/bundle.sh +2 -2
  143. package/package.json +16 -18
  144. package/scripts/create.deployment.package.mjs +4 -11
  145. package/src/__tests__/config.data.ts +2 -6
  146. package/src/__tests__/index.test.ts +29 -27
  147. package/src/__tests__/tile.style.json.test.ts +40 -37
  148. package/src/__tests__/wmts.capability.test.ts +139 -120
  149. package/src/cli/render.preview.ts +14 -9
  150. package/src/cli/render.tile.ts +27 -18
  151. package/src/index.ts +31 -35
  152. package/src/routes/__tests__/attribution.test.ts +40 -37
  153. package/src/routes/__tests__/fonts.test.ts +68 -64
  154. package/src/routes/__tests__/health.test.ts +18 -17
  155. package/src/routes/__tests__/imagery.test.ts +11 -9
  156. package/src/routes/__tests__/preview.index.test.ts +114 -40
  157. package/src/routes/__tests__/sprites.test.ts +39 -34
  158. package/src/routes/__tests__/tile.json.test.ts +41 -39
  159. package/src/routes/__tests__/tile.style.json.test.ts +49 -46
  160. package/src/routes/__tests__/wmts.test.ts +28 -20
  161. package/src/routes/__tests__/xyz.test.ts +134 -55
  162. package/src/routes/attribution.ts +2 -2
  163. package/src/routes/config.ts +1 -0
  164. package/src/routes/fonts.ts +3 -3
  165. package/src/routes/health.ts +7 -13
  166. package/src/routes/imagery.ts +2 -1
  167. package/src/routes/ping.ts +1 -1
  168. package/src/routes/preview.index.ts +9 -5
  169. package/src/routes/preview.ts +44 -15
  170. package/src/routes/sprites.ts +4 -5
  171. package/src/routes/tile.json.ts +9 -2
  172. package/src/routes/tile.style.json.ts +89 -13
  173. package/src/routes/tile.wmts.ts +4 -3
  174. package/src/routes/tile.xyz.raster.ts +26 -22
  175. package/src/routes/tile.xyz.ts +1 -0
  176. package/src/routes/tile.xyz.vector.ts +5 -3
  177. package/src/routes/version.ts +3 -3
  178. package/src/util/__test__/config.loader.test.ts +38 -34
  179. package/src/util/__test__/filter.test.ts +19 -16
  180. package/src/util/__test__/validate.test.ts +28 -43
  181. package/src/util/assets.provider.ts +10 -9
  182. package/src/util/config.cache.ts +4 -3
  183. package/src/util/config.loader.ts +20 -14
  184. package/src/util/cotar.serve.ts +3 -2
  185. package/src/util/source.cache.ts +15 -26
  186. package/src/util/validate.ts +61 -14
  187. package/src/wmts.capability.ts +3 -3
  188. package/tsconfig.json +1 -0
  189. package/tsconfig.tsbuildinfo +1 -1
  190. package/typedoc.json +4 -0
  191. package/build/__tests__/config.data.d.ts.map +0 -1
  192. package/build/__tests__/index.test.d.ts.map +0 -1
  193. package/build/__tests__/tile.style.json.test.d.ts.map +0 -1
  194. package/build/__tests__/wmts.capability.test.d.ts.map +0 -1
  195. package/build/__tests__/xyz.util.d.ts.map +0 -1
  196. package/build/arcgis/__tests__/arcgis.style.json.test.d.ts +0 -2
  197. package/build/arcgis/__tests__/arcgis.style.json.test.d.ts.map +0 -1
  198. package/build/arcgis/__tests__/arcgis.style.json.test.js +0 -131
  199. package/build/arcgis/__tests__/arcgis.style.json.test.js.map +0 -1
  200. package/build/arcgis/__tests__/vector.tiler.server.test.d.ts +0 -2
  201. package/build/arcgis/__tests__/vector.tiler.server.test.d.ts.map +0 -1
  202. package/build/arcgis/__tests__/vector.tiler.server.test.js +0 -54
  203. package/build/arcgis/__tests__/vector.tiler.server.test.js.map +0 -1
  204. package/build/arcgis/arcgis.info.d.ts +0 -3
  205. package/build/arcgis/arcgis.info.d.ts.map +0 -1
  206. package/build/arcgis/arcgis.info.js +0 -25
  207. package/build/arcgis/arcgis.info.js.map +0 -1
  208. package/build/arcgis/arcgis.style.json.d.ts +0 -9
  209. package/build/arcgis/arcgis.style.json.d.ts.map +0 -1
  210. package/build/arcgis/arcgis.style.json.js +0 -75
  211. package/build/arcgis/arcgis.style.json.js.map +0 -1
  212. package/build/arcgis/vector.tile.server.d.ts +0 -8
  213. package/build/arcgis/vector.tile.server.d.ts.map +0 -1
  214. package/build/arcgis/vector.tile.server.js +0 -73
  215. package/build/arcgis/vector.tile.server.js.map +0 -1
  216. package/build/cli/render.preview.d.ts.map +0 -1
  217. package/build/cli/render.tile.d.ts.map +0 -1
  218. package/build/index.d.ts.map +0 -1
  219. package/build/routes/__tests__/attribution.test.d.ts.map +0 -1
  220. package/build/routes/__tests__/fonts.test.d.ts.map +0 -1
  221. package/build/routes/__tests__/health.test.d.ts.map +0 -1
  222. package/build/routes/__tests__/imagery.test.d.ts.map +0 -1
  223. package/build/routes/__tests__/memory.fs.d.ts.map +0 -1
  224. package/build/routes/__tests__/preview.index.test.d.ts.map +0 -1
  225. package/build/routes/__tests__/sprites.test.d.ts.map +0 -1
  226. package/build/routes/__tests__/tile.json.test.d.ts.map +0 -1
  227. package/build/routes/__tests__/tile.style.json.test.d.ts.map +0 -1
  228. package/build/routes/__tests__/wmts.test.d.ts.map +0 -1
  229. package/build/routes/__tests__/xyz.test.d.ts.map +0 -1
  230. package/build/routes/attribution.d.ts.map +0 -1
  231. package/build/routes/config.d.ts.map +0 -1
  232. package/build/routes/fonts.d.ts.map +0 -1
  233. package/build/routes/health.d.ts.map +0 -1
  234. package/build/routes/imagery.d.ts.map +0 -1
  235. package/build/routes/ping.d.ts.map +0 -1
  236. package/build/routes/preview.d.ts.map +0 -1
  237. package/build/routes/preview.index.d.ts.map +0 -1
  238. package/build/routes/sprites.d.ts.map +0 -1
  239. package/build/routes/tile.json.d.ts.map +0 -1
  240. package/build/routes/tile.style.json.d.ts.map +0 -1
  241. package/build/routes/tile.wmts.d.ts.map +0 -1
  242. package/build/routes/tile.xyz.d.ts.map +0 -1
  243. package/build/routes/tile.xyz.raster.d.ts.map +0 -1
  244. package/build/routes/tile.xyz.vector.d.ts.map +0 -1
  245. package/build/routes/version.d.ts.map +0 -1
  246. package/build/util/__test__/config.loader.test.d.ts.map +0 -1
  247. package/build/util/__test__/filter.test.d.ts.map +0 -1
  248. package/build/util/__test__/validate.test.d.ts.map +0 -1
  249. package/build/util/assets.provider.d.ts.map +0 -1
  250. package/build/util/config.cache.d.ts.map +0 -1
  251. package/build/util/config.loader.d.ts.map +0 -1
  252. package/build/util/cotar.serve.d.ts.map +0 -1
  253. package/build/util/etag.d.ts.map +0 -1
  254. package/build/util/filter.d.ts.map +0 -1
  255. package/build/util/response.d.ts.map +0 -1
  256. package/build/util/source.cache.d.ts.map +0 -1
  257. package/build/util/source.tracer.d.ts +0 -18
  258. package/build/util/source.tracer.d.ts.map +0 -1
  259. package/build/util/source.tracer.js +0 -26
  260. package/build/util/source.tracer.js.map +0 -1
  261. package/build/util/swapping.lru.d.ts.map +0 -1
  262. package/build/util/validate.d.ts.map +0 -1
  263. package/build/wmts.capability.d.ts.map +0 -1
  264. package/src/arcgis/__tests__/arcgis.style.json.test.ts +0 -157
  265. package/src/arcgis/__tests__/vector.tiler.server.test.ts +0 -70
  266. package/src/arcgis/arcgis.info.ts +0 -26
  267. package/src/arcgis/arcgis.style.json.ts +0 -83
  268. package/src/arcgis/vector.tile.server.ts +0 -81
  269. package/src/util/source.tracer.ts +0 -38
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter.test.d.ts","sourceRoot":"","sources":["../../../src/util/__test__/filter.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.test.d.ts","sourceRoot":"","sources":["../../../src/util/__test__/validate.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"assets.provider.d.ts","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAOnF,qBAAa,aAAa;IACxB;;;;;;;OAOG;IAEG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAc3D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM1E;;;;;;OAMG;IACG,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAepG;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.cache.d.ts","sourceRoot":"","sources":["../../src/util/config.cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAM,SAAS;IACb,cAAc,EAAE,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;gBAEzC,MAAM,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAcjD,IAAI,IAAI,IAAI,MAAM,CAGjB;CACF;AAED,qBAAa,WAAW;IACtB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;gBAClB,OAAO,EAAE,MAAM;IAI3B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;CAU5D;AAED,iDAAiD;AACjD,eAAO,MAAM,YAAY,aAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.loader.d.ts","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,sBAAsB,EAAY,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD,qBAAa,YAAY;IACvB,0BAA0B;WACb,gBAAgB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAShE,+EAA+E;IAC/E,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;WAOxC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAwB3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cotar.serve.d.ts","sourceRoot":"","sources":["../../src/util/cotar.serve.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAKnF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"etag.d.ts","sourceRoot":"","sources":["../../src/util/etag.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,eAAO,MAAM,IAAI;aACN,OAAO,GAAG,MAAM;uBAKN,iBAAiB,YAAY,MAAM,GAAG,OAAO;CAUjE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/util/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAEvE,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF,wBAAgB,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAKrF;AACD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAGhF;AASD,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CA2BzF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/util/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,eAAO,MAAM,QAAQ,QAAO,kBAA8D,CAAC;AAC3F,eAAO,MAAM,WAAW,QAAO,kBAAiE,CAAC;AACjG,eAAO,MAAM,SAAS,QAAO,kBAA+D,CAAC;AAC7F,eAAO,MAAM,UAAU,QAAS,iBAAiB,KAAG,kBACqD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.cache.d.ts","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,cAAM,WAAW,CAAC,CAAC,SAAS,QAAQ;IAClC,EAAE,EAAE,CAAC,CAAC;gBACM,EAAE,EAAE,CAAC;IAKjB,IAAI,IAAI,IAAI,MAAM,CAIjB;CACF;AAED,qBAAa,WAAW;IACtB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;gBACjD,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;CAa3C;AAED,oCAAoC;AACpC,eAAO,MAAM,SAAS,aAAqC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { ChunkSource } from '@chunkd/core';
2
- interface SourceRequest {
3
- id?: string;
4
- offset: number;
5
- length?: number;
6
- source: string;
7
- duration?: number;
8
- }
9
- export declare class SourceTracer {
10
- requests: SourceRequest[];
11
- /** Reset the request tracer */
12
- reset(): void;
13
- /** Override the fetchByte function to trace all requests for this source */
14
- trace(source: ChunkSource): void;
15
- }
16
- export declare const St: SourceTracer;
17
- export {};
18
- //# sourceMappingURL=source.tracer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.tracer.d.ts","sourceRoot":"","sources":["../../src/util/source.tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAM;IAE/B,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAIb,6EAA6E;IAC7E,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAejC;AAED,eAAO,MAAM,EAAE,cAAqB,CAAC"}
@@ -1,26 +0,0 @@
1
- import { sha256base58 } from '@basemaps/config';
2
- export class SourceTracer {
3
- constructor() {
4
- this.requests = [];
5
- }
6
- /** Reset the request tracer */
7
- reset() {
8
- this.requests = [];
9
- }
10
- /** Override the fetchByte function to trace all requests for this source */
11
- trace(source) {
12
- const originFetch = source.fetchBytes;
13
- source.fetchBytes = async (offset, length) => {
14
- const request = { source: source.uri, offset, length };
15
- const traceId = sha256base58(`${request.source}:${request.offset}:${request.length}`);
16
- request.id = traceId;
17
- this.requests.push(request);
18
- const startTime = Date.now();
19
- const ret = await originFetch.apply(source, [offset, length]);
20
- request.duration = Date.now() - startTime;
21
- return ret;
22
- };
23
- }
24
- }
25
- export const St = new SourceTracer();
26
- //# sourceMappingURL=source.tracer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.tracer.js","sourceRoot":"","sources":["../../src/util/source.tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAWhD,MAAM,OAAO,YAAY;IAAzB;QACE,aAAQ,GAAoB,EAAE,CAAC;IAuBjC,CAAC;IArBC,+BAA+B;IAC/B,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,MAAmB;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,MAAM,CAAC,UAAU,GAAG,KAAK,EAAE,MAAc,EAAE,MAAe,EAAwB,EAAE;YAClF,MAAM,OAAO,GAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAE9D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC1C,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"swapping.lru.d.ts","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACjD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,SAAK;IACT,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IAEX,cAAc,SAAM;gBAER,OAAO,EAAE,MAAM;IAI3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAoBzB,sBAAsB;IACtB,KAAK,IAAI,IAAI;IAMb,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAK9B,sDAAsD;IACtD,KAAK,IAAI,IAAI;IAcb,6DAA6D;IAC7D,IAAI,WAAW,IAAI,MAAM,CAIxB;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAc,aAAa,EAAkB,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7G,OAAO,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,eAAO,MAAM,QAAQ;IACnB;;;OAGG;gBACS,iBAAiB,GAAG,MAAM;2BAUf,MAAM,GAAG,aAAa,GAAG,IAAI;IAIpD,2FAA2F;6BAClE,iBAAiB,GAAG,WAAW,EAAE,GAAG,IAAI;4BAczC,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,IAAI;IAOlE,kEAAkE;uBAC/C,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI;IAOxD;;;;;;;;;OASG;aACM,kBAAkB,UAAU,CAAC,GAAG,OAAO;CAiCjD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wmts.capability.d.ts","sourceRoot":"","sources":["../src/wmts.capability.ts"],"names":[],"mappings":"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"}
@@ -1,157 +0,0 @@
1
- import { BaseConfig, ConfigProviderMemory, StyleJson } from '@basemaps/config';
2
- import { Env } from '@basemaps/shared';
3
- import o from 'ospec';
4
- import { createSandbox } from 'sinon';
5
- import { handler } from '../../index.js';
6
- import { ConfigLoader } from '../../util/config.loader.js';
7
- import { FakeData } from '../../__tests__/config.data.js';
8
- import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
9
-
10
- o.spec('arcgis/stylejson', () => {
11
- const host = 'https://tiles.test';
12
- const sandbox = createSandbox();
13
- const config = new ConfigProviderMemory();
14
-
15
- o.before(() => {
16
- process.env[Env.PublicUrlBase] = host;
17
- });
18
-
19
- o.beforeEach(() => {
20
- sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
21
- config.objects.clear();
22
- });
23
-
24
- o.afterEach(() => {
25
- sandbox.restore();
26
- });
27
-
28
- o('should not found tile set', async () => {
29
- const request = mockRequest('/v1/arcgis/rest/services/topographic/VectorTileServer/root.json', 'get', Api.header);
30
-
31
- const res = await handler.router.handle(request);
32
- o(res.status).equals(404);
33
- });
34
-
35
- o('should not found style', async () => {
36
- const request = mockRequest('/v1/arcgis/rest/services/topographic/VectorTileServer/root.json', 'get', Api.header);
37
- config.put(FakeData.tileSetVector('topographic'));
38
-
39
- const res = await handler.router.handle(request);
40
- o(res.status).equals(404);
41
- });
42
-
43
- const fakeStyle: StyleJson = {
44
- version: 8,
45
- id: 'test',
46
- name: 'topographic',
47
- sources: {
48
- basemaps_vector: {
49
- type: 'vector',
50
- url: `/vector`,
51
- },
52
- basemaps_raster: {
53
- type: 'raster',
54
- tiles: [`/raster`],
55
- },
56
- },
57
- layers: [
58
- {
59
- source: 'basemaps_vector',
60
- layout: {
61
- visibility: 'visible',
62
- },
63
- paint: {
64
- 'background-color': 'rgba(206, 229, 242, 1)',
65
- },
66
- id: 'Background-vector',
67
- type: 'background',
68
- minzoom: 0,
69
- },
70
- {
71
- source: 'basemaps_raster',
72
- layout: {
73
- visibility: 'visible',
74
- },
75
- paint: {
76
- 'background-color': 'rgba(222, 229, 132, 1)',
77
- },
78
- id: 'Background-raster',
79
- type: 'background',
80
- minzoom: 0,
81
- },
82
- ],
83
- glyphs: '/glyphs',
84
- sprite: '/sprite',
85
- metadata: { id: 'test' },
86
- };
87
-
88
- const fakeRecord = {
89
- id: 'st_topographic',
90
- name: 'topographic',
91
- style: fakeStyle,
92
- };
93
-
94
- o('should serve style json and remove the raster source and layers, then replace the vector url', async () => {
95
- const request = mockRequest('/v1/arcgis/rest/services/topographic/VectorTileServer/root.json', 'get', Api.header);
96
-
97
- config.put(FakeData.tileSetVector('topographic'));
98
- config.put(fakeRecord);
99
-
100
- const res = await handler.router.handle(request);
101
- o(res.status).equals(200);
102
- o(res.header('content-type')).equals('application/json');
103
- o(res.header('cache-control')).equals('no-store');
104
-
105
- const body = Buffer.from(res.body ?? '', 'base64').toString();
106
- fakeStyle.sources.basemaps_vector = {
107
- type: 'vector',
108
- url: `${host}/v1/arcgis/rest/services/topographic/VectorTileServer?api=${Api.key}&f=json`,
109
- };
110
- delete fakeStyle.sources.basemaps_raster;
111
- fakeStyle.layers = [fakeStyle.layers[0]];
112
-
113
- fakeStyle.sprite = `${host}/sprite`;
114
- fakeStyle.glyphs = `${host}/glyphs`;
115
-
116
- o(JSON.parse(body)).deepEquals(fakeStyle);
117
- });
118
-
119
- o('should not found for raster tileset', async () => {
120
- const request = mockRequest('/v1/arcgis/rest/services/raster/VectorTileServer/root.json', 'get', Api.header);
121
-
122
- config.put(FakeData.tileSetRaster('raster'));
123
- config.put(fakeRecord);
124
-
125
- const res = await handler.router.handle(request);
126
- o(res.status).equals(404);
127
- });
128
-
129
- o('should fine the new style with url query', async () => {
130
- const request = mockUrlRequest(
131
- '/v1/arcgis/rest/services/topographic/VectorTileServer/root.json',
132
- 'style=topolite',
133
- Api.header,
134
- );
135
-
136
- config.put({ id: 'st_topolite', name: 'topographic', style: fakeStyle } as BaseConfig);
137
- config.put(FakeData.tileSetVector('topographic'));
138
-
139
- const res = await handler.router.handle(request);
140
- o(res.status).equals(200);
141
- o(res.header('content-type')).equals('application/json');
142
- o(res.header('cache-control')).equals('no-store');
143
-
144
- const body = Buffer.from(res.body ?? '', 'base64').toString();
145
- fakeStyle.sources.basemaps_vector = {
146
- type: 'vector',
147
- url: `${host}/v1/arcgis/rest/services/topographic/VectorTileServer?api=${Api.key}&f=json`,
148
- };
149
- delete fakeStyle.sources.basemaps_raster;
150
- fakeStyle.layers = [fakeStyle.layers[0]];
151
-
152
- fakeStyle.sprite = `${host}/sprite`;
153
- fakeStyle.glyphs = `${host}/glyphs`;
154
-
155
- o(JSON.parse(body)).deepEquals(fakeStyle);
156
- });
157
- });
@@ -1,70 +0,0 @@
1
- import { ConfigProviderMemory } from '@basemaps/config';
2
- import { Env } from '@basemaps/shared';
3
- import o from 'ospec';
4
- import { createSandbox } from 'sinon';
5
- import { handler } from '../../index.js';
6
- import { ConfigLoader } from '../../util/config.loader.js';
7
- import { FakeData } from '../../__tests__/config.data.js';
8
- import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
9
-
10
- o.spec('arcgis/VectorTileServer', () => {
11
- const host = 'https://tiles.test';
12
- const sandbox = createSandbox();
13
- const config = new ConfigProviderMemory();
14
-
15
- o.before(() => {
16
- process.env[Env.PublicUrlBase] = host;
17
- });
18
-
19
- o.beforeEach(() => {
20
- sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
21
- config.objects.clear();
22
- });
23
-
24
- o.afterEach(() => {
25
- sandbox.restore();
26
- });
27
-
28
- o('should not found tile set', async () => {
29
- const request = mockUrlRequest('/v1/arcgis/rest/services/topographic/VectorTileServer', 'f=json', Api.header);
30
-
31
- const res = await handler.router.handle(request);
32
- o(res.status).equals(404);
33
- });
34
- o('should return the vector tile server', async () => {
35
- const request = mockUrlRequest('/v1/arcgis/rest/services/topographic/VectorTileServer', 'f=json', Api.header);
36
-
37
- config.put(FakeData.tileSetVector('topographic'));
38
-
39
- const res = await handler.router.handle(request);
40
- o(res.status).equals(200);
41
- o(res.header('content-type')).equals('application/json');
42
- o(res.header('cache-control')).equals('no-store');
43
-
44
- const body = JSON.parse(Buffer.from(res.body ?? '', 'base64').toString());
45
- o(body.tiles[0]).equals(`${host}/v1/tiles/topographic/WebMercatorQuad/{z}/{x}/{y}.pbf?api=${Api.key}`);
46
- o(body.tileInfo.lods.length).equals(17);
47
- });
48
- o('should not return with no f=json query', async () => {
49
- const request = mockRequest('/v1/arcgis/rest/services/topographic/VectorTileServer', 'get', Api.header);
50
-
51
- config.put(FakeData.tileSetVector('topographic'));
52
-
53
- const res = await handler.router.handle(request);
54
- o(res.status).equals(404);
55
- });
56
- o('should return ok for post request', async () => {
57
- const request = mockUrlRequest(
58
- '/v1/arcgis/rest/services/topographic/VectorTileServer',
59
- 'f=json',
60
- Api.header,
61
- 'POST',
62
- );
63
-
64
- config.put(FakeData.tileSetVector('topographic'));
65
-
66
- const res = await handler.router.handle(request);
67
- o(res.status).equals(200);
68
- o(res.body).deepEquals(`{"id":"${request.id}","correlationId":"${request.correlationId}","message":"ok"}`);
69
- });
70
- });
@@ -1,26 +0,0 @@
1
- import { Env } from '@basemaps/shared';
2
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
3
- import { Etag } from '../util/etag.js';
4
- import { NotFound, NotModified } from '../util/response.js';
5
-
6
- export async function arcgisInfoGet(req: LambdaHttpRequest): Promise<LambdaHttpResponse> {
7
- const host = Env.get(Env.PublicUrlBase);
8
- if (host == null) return NotFound();
9
- const info = {
10
- currentVersion: 10.1,
11
- fullVersion: '10.1',
12
- owningSystemUrl: host,
13
- };
14
-
15
- const json = JSON.stringify(info);
16
- const data = Buffer.from(json);
17
-
18
- const cacheKey = Etag.key(data);
19
- if (Etag.isNotModified(req, cacheKey)) return NotModified();
20
-
21
- const response = new LambdaHttpResponse(200, 'ok');
22
- response.header(HttpHeader.CacheControl, 'public, max-age=604800, stale-while-revalidate=86400');
23
- response.buffer(data, 'application/json');
24
- req.set('bytes', data.byteLength);
25
- return response;
26
- }
@@ -1,83 +0,0 @@
1
- import { Sources, StyleJson, TileSetType } from '@basemaps/config';
2
- import { Env, fsa } from '@basemaps/shared';
3
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
4
- import { convertRelativeUrl } from '../routes/tile.style.json.js';
5
- import { ConfigLoader } from '../util/config.loader.js';
6
- import { Etag } from '../util/etag.js';
7
- import { NotFound, NotModified } from '../util/response.js';
8
- import { Validate } from '../util/validate.js';
9
-
10
- interface StyleGet {
11
- Params: {
12
- tileSet: string;
13
- };
14
- }
15
-
16
- function tileserverUrl(tileSet: string, apiKey: string): string {
17
- const host = Env.get(Env.PublicUrlBase) ?? '';
18
- const url = `/v1/arcgis/rest/services/${tileSet}/VectorTileServer`;
19
- const fullUrl = new URL(fsa.join(host, url));
20
- fullUrl.searchParams.set('api', apiKey);
21
- fullUrl.searchParams.set('f', 'json');
22
- return fullUrl.toString().replace(/%7B/g, '{').replace(/%7D/g, '}');
23
- }
24
-
25
- function convertStyleJson(tileSet: string, style: StyleJson, apiKey: string): StyleJson {
26
- const sources: Sources = JSON.parse(JSON.stringify(style.sources));
27
- // Only keep the vector layer and update the source url
28
- for (const [key, value] of Object.entries(sources)) {
29
- if (value.type === 'vector') {
30
- value.url = tileserverUrl(tileSet, apiKey);
31
- sources[key] = value;
32
- } else {
33
- delete sources[key];
34
- }
35
- }
36
-
37
- // Remove all the not vector layers.
38
- const layers = [];
39
- for (const layer of style.layers) {
40
- if (layer.source != null && !sources.hasOwnProperty(layer.source)) continue;
41
- layers.push(layer);
42
- }
43
-
44
- return {
45
- version: 8,
46
- id: style.id,
47
- name: style.name,
48
- sources,
49
- layers,
50
- metadata: style.metadata ?? {},
51
- glyphs: convertRelativeUrl(style.glyphs),
52
- sprite: convertRelativeUrl(style.sprite),
53
- } as StyleJson;
54
- }
55
-
56
- export async function arcgisStyleJsonGet(req: LambdaHttpRequest<StyleGet>): Promise<LambdaHttpResponse> {
57
- const apiKey = Validate.apiKey(req);
58
- const config = await ConfigLoader.load(req);
59
- const tileSet = await config.TileSet.get(config.TileSet.id(req.params.tileSet));
60
- if (tileSet?.type !== TileSetType.Vector) return NotFound();
61
-
62
- const style = req.query.get('style');
63
- const styleName = style ? style : 'topographic'; // Defalut to topographic style
64
-
65
- // Get style Config from db
66
- const dbId = config.Style.id(styleName);
67
- const styleConfig = await config.Style.get(dbId);
68
- if (styleConfig == null) return NotFound();
69
-
70
- // Prepare sources and add linz source
71
- const styleJson = convertStyleJson(tileSet.name, styleConfig.style, apiKey);
72
- const data = Buffer.from(JSON.stringify(styleJson));
73
-
74
- const cacheKey = Etag.key(data);
75
- if (Etag.isNotModified(req, cacheKey)) return NotModified();
76
-
77
- const response = new LambdaHttpResponse(200, 'ok');
78
- response.header(HttpHeader.ETag, cacheKey);
79
- response.header(HttpHeader.CacheControl, 'no-store');
80
- response.buffer(data, 'application/json');
81
- req.set('bytes', data.byteLength);
82
- return response;
83
- }
@@ -1,81 +0,0 @@
1
- import { TileSetType } from '@basemaps/config';
2
- import { GoogleTms } from '@basemaps/geo';
3
- import { HttpHeader, LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
4
- import { convertRelativeUrl } from '../routes/tile.style.json.js';
5
- import { ConfigLoader } from '../util/config.loader.js';
6
- import { NotFound } from '../util/response.js';
7
- import { Validate } from '../util/validate.js';
8
-
9
- /** Zoom level for the tilematrix which will be slice by 1 during the covertion to arcgis tileserve lods */
10
- const MaxTileMatrixZoom = 18;
11
- const MinTileMatrixZoom = 1;
12
-
13
- export interface VectorTileServer {
14
- Params: {
15
- tileSet: string;
16
- };
17
- }
18
-
19
- export async function arcgisTileServerGet(req: LambdaHttpRequest<VectorTileServer>): Promise<LambdaHttpResponse> {
20
- const config = await ConfigLoader.load(req);
21
-
22
- const tileSet = await config.TileSet.get(config.TileSet.id(req.params.tileSet));
23
- if (tileSet?.type !== TileSetType.Vector) return NotFound();
24
- const apiKey = Validate.apiKey(req);
25
- const f = req.query.get('f');
26
- if (f !== 'json') return NotFound();
27
- const extent = {
28
- xmin: GoogleTms.extent.x,
29
- ymin: GoogleTms.extent.y,
30
- xmax: GoogleTms.extent.right,
31
- ymax: GoogleTms.extent.bottom,
32
- // TODO where is wkid from
33
- spatialReference: { wkid: 102100, latestWkid: GoogleTms.projection.code },
34
- };
35
- const vectorTileServer = {
36
- currentVersion: 10.81,
37
- name: tileSet.name,
38
- capabilities: 'TilesOnly',
39
- type: 'indexedVector',
40
- defaultStyles: '',
41
- tiles: [convertRelativeUrl(`/v1/tiles/${tileSet.name}/WebMercatorQuad/{z}/{x}/{y}.pbf`, apiKey)],
42
- exportTilesAllowed: false,
43
- maxExportTilesCount: 0,
44
- initialExtent: extent,
45
- fullExtent: extent,
46
- minScale: 0.0,
47
- maxScale: 0.0,
48
- tileInfo: {
49
- rows: 512,
50
- cols: 512,
51
- dpi: 96,
52
- format: 'pbf',
53
- origin: { x: GoogleTms.extent.x, y: GoogleTms.extent.bottom },
54
- spatialReference: { wkid: 102100, latestWkid: GoogleTms.projection.code },
55
- lods: GoogleTms.zooms.slice(MinTileMatrixZoom, MaxTileMatrixZoom).map((c, i) => {
56
- return {
57
- level: i,
58
- resolution: c.scaleDenominator * 0.28e-3,
59
- scale: c.scaleDenominator,
60
- };
61
- }),
62
- },
63
- maxzoom: 22,
64
- minLOD: 0,
65
- maxLOD: 15,
66
- resourceInfo: {
67
- styleVersion: 8,
68
- tileCompression: 'gzip',
69
- cacheInfo: { storageInfo: { packetSize: 128, storageFormat: 'compactV2' } },
70
- },
71
- };
72
-
73
- const json = JSON.stringify(vectorTileServer, null, 2);
74
- const data = Buffer.from(json);
75
-
76
- const response = new LambdaHttpResponse(200, 'ok');
77
- response.header(HttpHeader.CacheControl, 'no-store');
78
- response.buffer(data, 'application/json');
79
- req.set('bytes', data.byteLength);
80
- return response;
81
- }
@@ -1,38 +0,0 @@
1
- import { sha256base58 } from '@basemaps/config';
2
- import { ChunkSource } from '@chunkd/core';
3
-
4
- interface SourceRequest {
5
- id?: string;
6
- offset: number;
7
- length?: number;
8
- source: string;
9
- duration?: number;
10
- }
11
-
12
- export class SourceTracer {
13
- requests: SourceRequest[] = [];
14
-
15
- /** Reset the request tracer */
16
- reset(): void {
17
- this.requests = [];
18
- }
19
-
20
- /** Override the fetchByte function to trace all requests for this source */
21
- trace(source: ChunkSource): void {
22
- const originFetch = source.fetchBytes;
23
- source.fetchBytes = async (offset: number, length?: number): Promise<ArrayBuffer> => {
24
- const request: SourceRequest = { source: source.uri, offset, length };
25
- const traceId = sha256base58(`${request.source}:${request.offset}:${request.length}`);
26
- request.id = traceId;
27
- this.requests.push(request);
28
- const startTime = Date.now();
29
-
30
- const ret = await originFetch.apply(source, [offset, length]);
31
-
32
- request.duration = Date.now() - startTime;
33
- return ret;
34
- };
35
- }
36
- }
37
-
38
- export const St = new SourceTracer();