@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.
- package/CHANGELOG.md +42 -0
- package/README.md +93 -1
- package/build/__tests__/config.data.d.ts +0 -1
- package/build/__tests__/config.data.js +2 -6
- package/build/__tests__/config.data.js.map +1 -1
- package/build/__tests__/index.test.d.ts +0 -1
- package/build/__tests__/index.test.js +28 -27
- package/build/__tests__/index.test.js.map +1 -1
- package/build/__tests__/tile.style.json.test.d.ts +0 -1
- package/build/__tests__/tile.style.json.test.js +38 -37
- package/build/__tests__/tile.style.json.test.js.map +1 -1
- package/build/__tests__/wmts.capability.test.d.ts +0 -1
- package/build/__tests__/wmts.capability.test.js +111 -122
- package/build/__tests__/wmts.capability.test.js.map +1 -1
- package/build/__tests__/xyz.util.d.ts +0 -1
- package/build/cli/render.preview.d.ts +0 -1
- package/build/cli/render.preview.js +13 -9
- package/build/cli/render.preview.js.map +1 -1
- package/build/cli/render.tile.d.ts +0 -1
- package/build/cli/render.tile.js +25 -17
- package/build/cli/render.tile.js.map +1 -1
- package/build/index.d.ts +0 -1
- package/build/index.js +27 -31
- package/build/index.js.map +1 -1
- package/build/routes/__tests__/attribution.test.d.ts +0 -1
- package/build/routes/__tests__/attribution.test.js +38 -37
- package/build/routes/__tests__/attribution.test.js.map +1 -1
- package/build/routes/__tests__/fonts.test.d.ts +0 -1
- package/build/routes/__tests__/fonts.test.js +61 -63
- package/build/routes/__tests__/fonts.test.js.map +1 -1
- package/build/routes/__tests__/health.test.d.ts +0 -1
- package/build/routes/__tests__/health.test.js +16 -16
- package/build/routes/__tests__/health.test.js.map +1 -1
- package/build/routes/__tests__/imagery.test.d.ts +0 -1
- package/build/routes/__tests__/imagery.test.js +10 -9
- package/build/routes/__tests__/imagery.test.js.map +1 -1
- package/build/routes/__tests__/memory.fs.d.ts +2 -3
- package/build/routes/__tests__/preview.index.test.d.ts +0 -1
- package/build/routes/__tests__/preview.index.test.js +88 -42
- package/build/routes/__tests__/preview.index.test.js.map +1 -1
- package/build/routes/__tests__/sprites.test.d.ts +0 -1
- package/build/routes/__tests__/sprites.test.js +34 -34
- package/build/routes/__tests__/sprites.test.js.map +1 -1
- package/build/routes/__tests__/tile.json.test.d.ts +0 -1
- package/build/routes/__tests__/tile.json.test.js +45 -51
- package/build/routes/__tests__/tile.json.test.js.map +1 -1
- package/build/routes/__tests__/tile.style.json.test.d.ts +0 -1
- package/build/routes/__tests__/tile.style.json.test.js +49 -50
- package/build/routes/__tests__/tile.style.json.test.js.map +1 -1
- package/build/routes/__tests__/wmts.test.d.ts +0 -1
- package/build/routes/__tests__/wmts.test.js +27 -20
- package/build/routes/__tests__/wmts.test.js.map +1 -1
- package/build/routes/__tests__/xyz.test.d.ts +0 -1
- package/build/routes/__tests__/xyz.test.js +97 -49
- package/build/routes/__tests__/xyz.test.js.map +1 -1
- package/build/routes/attribution.d.ts +1 -1
- package/build/routes/attribution.js +4 -5
- package/build/routes/attribution.js.map +1 -1
- package/build/routes/config.d.ts +0 -1
- package/build/routes/config.js +1 -2
- package/build/routes/config.js.map +1 -1
- package/build/routes/fonts.d.ts +0 -1
- package/build/routes/fonts.js +2 -3
- package/build/routes/fonts.js.map +1 -1
- package/build/routes/health.d.ts +1 -2
- package/build/routes/health.js +5 -15
- package/build/routes/health.js.map +1 -1
- package/build/routes/imagery.d.ts +0 -1
- package/build/routes/imagery.js +1 -1
- package/build/routes/imagery.js.map +1 -1
- package/build/routes/ping.d.ts +0 -1
- package/build/routes/ping.js +1 -1
- package/build/routes/ping.js.map +1 -1
- package/build/routes/preview.d.ts +6 -5
- package/build/routes/preview.index.d.ts +0 -1
- package/build/routes/preview.index.js +6 -5
- package/build/routes/preview.index.js.map +1 -1
- package/build/routes/preview.js +35 -10
- package/build/routes/preview.js.map +1 -1
- package/build/routes/sprites.d.ts +0 -1
- package/build/routes/sprites.js +2 -4
- package/build/routes/sprites.js.map +1 -1
- package/build/routes/tile.json.d.ts +0 -1
- package/build/routes/tile.json.js +10 -5
- package/build/routes/tile.json.js.map +1 -1
- package/build/routes/tile.style.json.d.ts +1 -1
- package/build/routes/tile.style.json.js +79 -16
- package/build/routes/tile.style.json.js.map +1 -1
- package/build/routes/tile.wmts.d.ts +0 -1
- package/build/routes/tile.wmts.js +8 -9
- package/build/routes/tile.wmts.js.map +1 -1
- package/build/routes/tile.xyz.d.ts +0 -1
- package/build/routes/tile.xyz.js.map +1 -1
- package/build/routes/tile.xyz.raster.d.ts +7 -8
- package/build/routes/tile.xyz.raster.js +17 -13
- package/build/routes/tile.xyz.raster.js.map +1 -1
- package/build/routes/tile.xyz.vector.d.ts +0 -1
- package/build/routes/tile.xyz.vector.js +4 -3
- package/build/routes/tile.xyz.vector.js.map +1 -1
- package/build/routes/version.d.ts +0 -1
- package/build/routes/version.js +3 -4
- package/build/routes/version.js.map +1 -1
- package/build/util/__test__/config.loader.test.d.ts +0 -1
- package/build/util/__test__/config.loader.test.js +35 -34
- package/build/util/__test__/config.loader.test.js.map +1 -1
- package/build/util/__test__/filter.test.d.ts +0 -1
- package/build/util/__test__/filter.test.js +17 -16
- package/build/util/__test__/filter.test.js.map +1 -1
- package/build/util/__test__/validate.test.d.ts +0 -1
- package/build/util/__test__/validate.test.js +26 -43
- package/build/util/__test__/validate.test.js.map +1 -1
- package/build/util/assets.provider.d.ts +5 -5
- package/build/util/assets.provider.js +8 -8
- package/build/util/assets.provider.js.map +1 -1
- package/build/util/config.cache.d.ts +2 -2
- package/build/util/config.cache.js +14 -3
- package/build/util/config.cache.js.map +1 -1
- package/build/util/config.loader.d.ts +0 -1
- package/build/util/config.loader.js +18 -13
- package/build/util/config.loader.js.map +1 -1
- package/build/util/cotar.serve.d.ts +3 -3
- package/build/util/cotar.serve.js +2 -2
- package/build/util/cotar.serve.js.map +1 -1
- package/build/util/etag.d.ts +0 -1
- package/build/util/etag.js.map +1 -1
- package/build/util/filter.d.ts +0 -1
- package/build/util/filter.js +4 -5
- package/build/util/filter.js.map +1 -1
- package/build/util/response.d.ts +0 -1
- package/build/util/source.cache.d.ts +8 -9
- package/build/util/source.cache.js +27 -24
- package/build/util/source.cache.js.map +1 -1
- package/build/util/swapping.lru.d.ts +0 -1
- package/build/util/swapping.lru.js +48 -7
- package/build/util/swapping.lru.js.map +1 -1
- package/build/util/validate.d.ts +17 -5
- package/build/util/validate.js +51 -15
- package/build/util/validate.js.map +1 -1
- package/build/wmts.capability.d.ts +1 -2
- package/build/wmts.capability.js +81 -12
- package/build/wmts.capability.js.map +1 -1
- package/bundle.sh +2 -2
- package/package.json +16 -18
- package/scripts/create.deployment.package.mjs +4 -11
- package/src/__tests__/config.data.ts +2 -6
- package/src/__tests__/index.test.ts +29 -27
- package/src/__tests__/tile.style.json.test.ts +40 -37
- package/src/__tests__/wmts.capability.test.ts +139 -120
- package/src/cli/render.preview.ts +14 -9
- package/src/cli/render.tile.ts +27 -18
- package/src/index.ts +31 -35
- package/src/routes/__tests__/attribution.test.ts +40 -37
- package/src/routes/__tests__/fonts.test.ts +68 -64
- package/src/routes/__tests__/health.test.ts +18 -17
- package/src/routes/__tests__/imagery.test.ts +11 -9
- package/src/routes/__tests__/preview.index.test.ts +114 -40
- package/src/routes/__tests__/sprites.test.ts +39 -34
- package/src/routes/__tests__/tile.json.test.ts +41 -39
- package/src/routes/__tests__/tile.style.json.test.ts +49 -46
- package/src/routes/__tests__/wmts.test.ts +28 -20
- package/src/routes/__tests__/xyz.test.ts +134 -55
- package/src/routes/attribution.ts +2 -2
- package/src/routes/config.ts +1 -0
- package/src/routes/fonts.ts +3 -3
- package/src/routes/health.ts +7 -13
- package/src/routes/imagery.ts +2 -1
- package/src/routes/ping.ts +1 -1
- package/src/routes/preview.index.ts +9 -5
- package/src/routes/preview.ts +44 -15
- package/src/routes/sprites.ts +4 -5
- package/src/routes/tile.json.ts +9 -2
- package/src/routes/tile.style.json.ts +89 -13
- package/src/routes/tile.wmts.ts +4 -3
- package/src/routes/tile.xyz.raster.ts +26 -22
- package/src/routes/tile.xyz.ts +1 -0
- package/src/routes/tile.xyz.vector.ts +5 -3
- package/src/routes/version.ts +3 -3
- package/src/util/__test__/config.loader.test.ts +38 -34
- package/src/util/__test__/filter.test.ts +19 -16
- package/src/util/__test__/validate.test.ts +28 -43
- package/src/util/assets.provider.ts +10 -9
- package/src/util/config.cache.ts +4 -3
- package/src/util/config.loader.ts +20 -14
- package/src/util/cotar.serve.ts +3 -2
- package/src/util/source.cache.ts +15 -26
- package/src/util/validate.ts +61 -14
- package/src/wmts.capability.ts +3 -3
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/typedoc.json +4 -0
- package/build/__tests__/config.data.d.ts.map +0 -1
- package/build/__tests__/index.test.d.ts.map +0 -1
- package/build/__tests__/tile.style.json.test.d.ts.map +0 -1
- package/build/__tests__/wmts.capability.test.d.ts.map +0 -1
- package/build/__tests__/xyz.util.d.ts.map +0 -1
- package/build/arcgis/__tests__/arcgis.style.json.test.d.ts +0 -2
- package/build/arcgis/__tests__/arcgis.style.json.test.d.ts.map +0 -1
- package/build/arcgis/__tests__/arcgis.style.json.test.js +0 -131
- package/build/arcgis/__tests__/arcgis.style.json.test.js.map +0 -1
- package/build/arcgis/__tests__/vector.tiler.server.test.d.ts +0 -2
- package/build/arcgis/__tests__/vector.tiler.server.test.d.ts.map +0 -1
- package/build/arcgis/__tests__/vector.tiler.server.test.js +0 -54
- package/build/arcgis/__tests__/vector.tiler.server.test.js.map +0 -1
- package/build/arcgis/arcgis.info.d.ts +0 -3
- package/build/arcgis/arcgis.info.d.ts.map +0 -1
- package/build/arcgis/arcgis.info.js +0 -25
- package/build/arcgis/arcgis.info.js.map +0 -1
- package/build/arcgis/arcgis.style.json.d.ts +0 -9
- package/build/arcgis/arcgis.style.json.d.ts.map +0 -1
- package/build/arcgis/arcgis.style.json.js +0 -75
- package/build/arcgis/arcgis.style.json.js.map +0 -1
- package/build/arcgis/vector.tile.server.d.ts +0 -8
- package/build/arcgis/vector.tile.server.d.ts.map +0 -1
- package/build/arcgis/vector.tile.server.js +0 -73
- package/build/arcgis/vector.tile.server.js.map +0 -1
- package/build/cli/render.preview.d.ts.map +0 -1
- package/build/cli/render.tile.d.ts.map +0 -1
- package/build/index.d.ts.map +0 -1
- package/build/routes/__tests__/attribution.test.d.ts.map +0 -1
- package/build/routes/__tests__/fonts.test.d.ts.map +0 -1
- package/build/routes/__tests__/health.test.d.ts.map +0 -1
- package/build/routes/__tests__/imagery.test.d.ts.map +0 -1
- package/build/routes/__tests__/memory.fs.d.ts.map +0 -1
- package/build/routes/__tests__/preview.index.test.d.ts.map +0 -1
- package/build/routes/__tests__/sprites.test.d.ts.map +0 -1
- package/build/routes/__tests__/tile.json.test.d.ts.map +0 -1
- package/build/routes/__tests__/tile.style.json.test.d.ts.map +0 -1
- package/build/routes/__tests__/wmts.test.d.ts.map +0 -1
- package/build/routes/__tests__/xyz.test.d.ts.map +0 -1
- package/build/routes/attribution.d.ts.map +0 -1
- package/build/routes/config.d.ts.map +0 -1
- package/build/routes/fonts.d.ts.map +0 -1
- package/build/routes/health.d.ts.map +0 -1
- package/build/routes/imagery.d.ts.map +0 -1
- package/build/routes/ping.d.ts.map +0 -1
- package/build/routes/preview.d.ts.map +0 -1
- package/build/routes/preview.index.d.ts.map +0 -1
- package/build/routes/sprites.d.ts.map +0 -1
- package/build/routes/tile.json.d.ts.map +0 -1
- package/build/routes/tile.style.json.d.ts.map +0 -1
- package/build/routes/tile.wmts.d.ts.map +0 -1
- package/build/routes/tile.xyz.d.ts.map +0 -1
- package/build/routes/tile.xyz.raster.d.ts.map +0 -1
- package/build/routes/tile.xyz.vector.d.ts.map +0 -1
- package/build/routes/version.d.ts.map +0 -1
- package/build/util/__test__/config.loader.test.d.ts.map +0 -1
- package/build/util/__test__/filter.test.d.ts.map +0 -1
- package/build/util/__test__/validate.test.d.ts.map +0 -1
- package/build/util/assets.provider.d.ts.map +0 -1
- package/build/util/config.cache.d.ts.map +0 -1
- package/build/util/config.loader.d.ts.map +0 -1
- package/build/util/cotar.serve.d.ts.map +0 -1
- package/build/util/etag.d.ts.map +0 -1
- package/build/util/filter.d.ts.map +0 -1
- package/build/util/response.d.ts.map +0 -1
- package/build/util/source.cache.d.ts.map +0 -1
- package/build/util/source.tracer.d.ts +0 -18
- package/build/util/source.tracer.d.ts.map +0 -1
- package/build/util/source.tracer.js +0 -26
- package/build/util/source.tracer.js.map +0 -1
- package/build/util/swapping.lru.d.ts.map +0 -1
- package/build/util/validate.d.ts.map +0 -1
- package/build/wmts.capability.d.ts.map +0 -1
- package/src/arcgis/__tests__/arcgis.style.json.test.ts +0 -157
- package/src/arcgis/__tests__/vector.tiler.server.test.ts +0 -70
- package/src/arcgis/arcgis.info.ts +0 -26
- package/src/arcgis/arcgis.style.json.ts +0 -83
- package/src/arcgis/vector.tile.server.ts +0 -81
- package/src/util/source.tracer.ts +0 -38
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { getAllImagery } from '@basemaps/config';
|
|
2
|
-
import { Bounds, Epsg, TileMatrixSet, TileMatrixSets
|
|
3
|
-
import { Env,
|
|
2
|
+
import { Bounds, Epsg, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
|
|
3
|
+
import { Env, stringToUrlFolder, Tiff } from '@basemaps/shared';
|
|
4
4
|
import { Tiler } from '@basemaps/tiler';
|
|
5
5
|
import { TileMakerSharp } from '@basemaps/tiler-sharp';
|
|
6
|
-
import { CogTiff } from '@cogeotiff/core';
|
|
7
6
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
8
7
|
import pLimit from 'p-limit';
|
|
9
8
|
import { ConfigLoader } from '../util/config.loader.js';
|
|
@@ -11,6 +10,7 @@ import { Etag } from '../util/etag.js';
|
|
|
11
10
|
import { filterLayers } from '../util/filter.js';
|
|
12
11
|
import { NotFound, NotModified } from '../util/response.js';
|
|
13
12
|
import { CoSources } from '../util/source.cache.js';
|
|
13
|
+
import { Validate } from '../util/validate.js';
|
|
14
14
|
const LoadingQueue = pLimit(Env.getNumber(Env.TiffConcurrency, 25));
|
|
15
15
|
export function getTiffName(name) {
|
|
16
16
|
const lowerName = name.toLowerCase();
|
|
@@ -20,11 +20,11 @@ export function getTiffName(name) {
|
|
|
20
20
|
}
|
|
21
21
|
/** Check to see if a cloud archive is a Tiff or a Cotar */
|
|
22
22
|
export function isArchiveTiff(x) {
|
|
23
|
-
if (x instanceof
|
|
23
|
+
if (x instanceof Tiff)
|
|
24
24
|
return true;
|
|
25
|
-
if (x.source.
|
|
25
|
+
if (x.source.url.pathname.endsWith('.tiff'))
|
|
26
26
|
return true;
|
|
27
|
-
if (x.source.
|
|
27
|
+
if (x.source.url.pathname.endsWith('.tif'))
|
|
28
28
|
return true;
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
@@ -55,6 +55,7 @@ export const TileXyzRaster = {
|
|
|
55
55
|
}
|
|
56
56
|
if (!bounds.intersects(Bounds.fromJson(img.bounds)))
|
|
57
57
|
continue;
|
|
58
|
+
const imgUrl = stringToUrlFolder(img.uri);
|
|
58
59
|
for (const c of img.files) {
|
|
59
60
|
if (!bounds.intersects(Bounds.fromJson(c)))
|
|
60
61
|
continue;
|
|
@@ -64,10 +65,10 @@ export const TileXyzRaster = {
|
|
|
64
65
|
img.overviews.maxZoom >= filterZoom &&
|
|
65
66
|
img.overviews.minZoom <= filterZoom &&
|
|
66
67
|
ignoreOverview !== true) {
|
|
67
|
-
output.push(
|
|
68
|
+
output.push(new URL(img.overviews.path, imgUrl));
|
|
68
69
|
break;
|
|
69
70
|
}
|
|
70
|
-
const tiffPath =
|
|
71
|
+
const tiffPath = new URL(getTiffName(c.name), imgUrl);
|
|
71
72
|
output.push(tiffPath);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -77,7 +78,7 @@ export const TileXyzRaster = {
|
|
|
77
78
|
const toLoad = [];
|
|
78
79
|
for (const assetPath of assets) {
|
|
79
80
|
toLoad.push(LoadingQueue(() => {
|
|
80
|
-
if (assetPath.endsWith('.tar.co')) {
|
|
81
|
+
if (assetPath.pathname.endsWith('.tar.co')) {
|
|
81
82
|
return CoSources.getCotar(assetPath).catch((error) => {
|
|
82
83
|
req.log.warn({ error, tiff: assetPath }, 'Load:Cotar:Failed');
|
|
83
84
|
return null;
|
|
@@ -96,9 +97,10 @@ export const TileXyzRaster = {
|
|
|
96
97
|
return TileXyzRaster.getAssetsForBounds(req, tileSet, xyz.tileMatrix, tileBounds, xyz.tile.z);
|
|
97
98
|
},
|
|
98
99
|
async tile(req, tileSet, xyz) {
|
|
99
|
-
|
|
100
|
-
if (
|
|
100
|
+
const tileOutput = Validate.pipeline(tileSet, xyz.tileType, xyz.pipeline);
|
|
101
|
+
if (tileOutput == null)
|
|
101
102
|
return NotFound();
|
|
103
|
+
req.set('pipeline', tileOutput.name);
|
|
102
104
|
const assetPaths = await this.getAssetsForTile(req, tileSet, xyz);
|
|
103
105
|
const cacheKey = Etag.key(assetPaths);
|
|
104
106
|
if (Etag.isNotModified(req, cacheKey))
|
|
@@ -108,10 +110,12 @@ export const TileXyzRaster = {
|
|
|
108
110
|
const layers = await tiler.tile(assets, xyz.tile.x, xyz.tile.y, xyz.tile.z);
|
|
109
111
|
const res = await TileComposer.compose({
|
|
110
112
|
layers,
|
|
113
|
+
pipeline: tileOutput.pipeline,
|
|
111
114
|
format: xyz.tileType,
|
|
112
|
-
background:
|
|
113
|
-
resizeKernel:
|
|
115
|
+
background: tileOutput.background ?? tileSet.background ?? DefaultBackground,
|
|
116
|
+
resizeKernel: tileOutput.resizeKernel ?? tileSet.resizeKernel ?? DefaultResizeKernel,
|
|
114
117
|
metrics: req.timer,
|
|
118
|
+
log: req.log,
|
|
115
119
|
});
|
|
116
120
|
req.set('layersUsed', res.layers);
|
|
117
121
|
req.set('bytes', res.buffer.byteLength);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile.xyz.raster.js","sourceRoot":"","sources":["../../src/routes/tile.xyz.raster.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tile.xyz.raster.js","sourceRoot":"","sources":["../../src/routes/tile.xyz.raster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { GoogleTms
|
|
1
|
+
import { GoogleTms } from '@basemaps/geo';
|
|
2
|
+
import { fsa } from '@basemaps/shared';
|
|
2
3
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
3
4
|
import { isGzip } from '../util/cotar.serve.js';
|
|
4
5
|
import { Etag } from '../util/etag.js';
|
|
@@ -7,7 +8,7 @@ import { CoSources } from '../util/source.cache.js';
|
|
|
7
8
|
export const tileXyzVector = {
|
|
8
9
|
/** Serve a MVT vector tile */
|
|
9
10
|
async tile(req, tileSet, xyz) {
|
|
10
|
-
if (xyz.tileType !==
|
|
11
|
+
if (xyz.tileType !== 'pbf')
|
|
11
12
|
return NotFound();
|
|
12
13
|
if (xyz.tileMatrix.identifier !== GoogleTms.identifier)
|
|
13
14
|
return NotFound();
|
|
@@ -25,7 +26,7 @@ export const tileXyzVector = {
|
|
|
25
26
|
if (Etag.isNotModified(req, cacheKey))
|
|
26
27
|
return NotModified();
|
|
27
28
|
req.timer.start('cotar:load');
|
|
28
|
-
const cotar = await CoSources.getCotar(layerId);
|
|
29
|
+
const cotar = await CoSources.getCotar(fsa.toUrl(layerId));
|
|
29
30
|
if (cotar == null)
|
|
30
31
|
return new LambdaHttpResponse(500, 'Failed to load VectorTiles');
|
|
31
32
|
req.timer.end('cotar:load');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile.xyz.vector.js","sourceRoot":"","sources":["../../src/routes/tile.xyz.vector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"tile.xyz.vector.js","sourceRoot":"","sources":["../../src/routes/tile.xyz.vector.ts"],"names":[],"mappings":"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"}
|
package/build/routes/version.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { HttpHeader, LambdaHttpResponse } from '@linzjs/lambda';
|
|
2
2
|
export async function versionGet() {
|
|
3
|
-
var _a;
|
|
4
3
|
const response = new LambdaHttpResponse(200, 'ok');
|
|
5
4
|
response.header(HttpHeader.CacheControl, 'no-store');
|
|
6
5
|
response.json({
|
|
@@ -8,17 +7,17 @@ export async function versionGet() {
|
|
|
8
7
|
* last git version tag
|
|
9
8
|
* @example "v6.42.1"
|
|
10
9
|
*/
|
|
11
|
-
version:
|
|
10
|
+
version: process.env['GIT_VERSION'] ?? 'dev',
|
|
12
11
|
/**
|
|
13
12
|
* Full git commit hash
|
|
14
13
|
* @example "e4231b1ee62c276c8657c56677ced02681dfe5d6"
|
|
15
14
|
*/
|
|
16
|
-
hash: process.env
|
|
15
|
+
hash: process.env['GIT_HASH'],
|
|
17
16
|
/**
|
|
18
17
|
* The exact build that this release was run from
|
|
19
18
|
* @example "1658821493-3"
|
|
20
19
|
*/
|
|
21
|
-
buildId: process.env
|
|
20
|
+
buildId: process.env['BUILD_ID'],
|
|
22
21
|
});
|
|
23
22
|
return response;
|
|
24
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/routes/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,UAAU
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/routes/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC;QACZ;;;WAGG;QACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK;QAC5C;;;WAGG;QACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC7B;;;WAGG;QACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KACjC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,88 +1,89 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { afterEach, before, beforeEach, describe, it } from 'node:test';
|
|
1
3
|
import { base58, ConfigProviderMemory } from '@basemaps/config';
|
|
2
4
|
import { fsa } from '@basemaps/shared';
|
|
5
|
+
import { FsMemory } from '@chunkd/fs';
|
|
3
6
|
import { LambdaHttpResponse } from '@linzjs/lambda';
|
|
4
|
-
import o from 'ospec';
|
|
5
7
|
import { createSandbox } from 'sinon';
|
|
6
|
-
import { FsMemory } from '@chunkd/source-memory';
|
|
7
8
|
import { FakeData } from '../../__tests__/config.data.js';
|
|
8
9
|
import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
9
10
|
import { CachedConfig } from '../config.cache.js';
|
|
10
11
|
import { ConfigLoader } from '../config.loader.js';
|
|
11
|
-
|
|
12
|
+
describe('ConfigLoader', () => {
|
|
12
13
|
const memory = new FsMemory();
|
|
13
14
|
const config = new ConfigProviderMemory();
|
|
14
15
|
const sandbox = createSandbox();
|
|
15
|
-
|
|
16
|
+
before(() => {
|
|
16
17
|
fsa.register('memory://', memory);
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
+
beforeEach(() => {
|
|
19
20
|
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
20
21
|
});
|
|
21
|
-
|
|
22
|
+
afterEach(() => {
|
|
22
23
|
sandbox.restore();
|
|
23
24
|
config.objects.clear();
|
|
24
25
|
memory.files.clear();
|
|
25
26
|
CachedConfig.cache.clear();
|
|
26
27
|
});
|
|
27
|
-
|
|
28
|
+
it('should return default config', async () => {
|
|
28
29
|
const provider = await ConfigLoader.load(mockRequest('/v1/fonts.json'));
|
|
29
|
-
|
|
30
|
+
assert.deepEqual(provider, config);
|
|
30
31
|
});
|
|
31
|
-
|
|
32
|
+
it('should Not working with wrong config url', async () => {
|
|
32
33
|
const error = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=notapath`, Api.header))
|
|
33
34
|
.then(() => null)
|
|
34
35
|
.catch((e) => e);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
assert.equal(error instanceof LambdaHttpResponse, true);
|
|
37
|
+
assert.equal(error.status, 400);
|
|
38
|
+
assert.equal(error.statusDescription, 'Invalid configuration location protocol:file:');
|
|
38
39
|
});
|
|
39
|
-
|
|
40
|
+
it('should Not working with wrong protocol', async () => {
|
|
40
41
|
const error = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=memory1://linz-basemaps/config`, Api.header))
|
|
41
42
|
.then(() => null)
|
|
42
43
|
.catch((e) => e);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
assert.equal(error instanceof LambdaHttpResponse, true);
|
|
45
|
+
assert.equal(error.status, 400);
|
|
46
|
+
assert.equal(error.statusDescription, 'Invalid configuration location protocol:memory1:');
|
|
46
47
|
});
|
|
47
|
-
|
|
48
|
+
it('should Not working with wrong s3 bucket', async () => {
|
|
48
49
|
const error = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=s3://wrong-bucket/config`, Api.header))
|
|
49
50
|
.then(() => null)
|
|
50
51
|
.catch((e) => e);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
assert.equal(error instanceof LambdaHttpResponse, true);
|
|
53
|
+
assert.equal(error.status, 400);
|
|
54
|
+
assert.equal(error.statusDescription, 'Bucket: "wrong-bucket" is not a allowed bucket location');
|
|
54
55
|
});
|
|
55
|
-
const location = 'memory://linz-basemaps/config.json';
|
|
56
|
-
|
|
56
|
+
const location = new URL('memory://linz-basemaps/config.json');
|
|
57
|
+
it('should Not working with no file in the path', async () => {
|
|
57
58
|
const error = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${location}`, Api.header))
|
|
58
59
|
.then(() => null)
|
|
59
60
|
.catch((e) => e);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
assert.equal(error instanceof LambdaHttpResponse, true);
|
|
62
|
+
assert.equal(error.status, 400);
|
|
63
|
+
assert.equal(error.statusDescription, `Invalid config location at ${location}`);
|
|
63
64
|
});
|
|
64
|
-
|
|
65
|
+
it('should get expected config file', async () => {
|
|
65
66
|
const expectedConfig = new ConfigProviderMemory();
|
|
66
67
|
expectedConfig.put(FakeData.tileSetRaster('aerial'));
|
|
67
68
|
await fsa.write(location, Buffer.from(JSON.stringify(expectedConfig.toJson())));
|
|
68
69
|
const provider = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${location}`, Api.header));
|
|
69
|
-
|
|
70
|
+
assert.deepEqual(await provider.Imagery.get('aerial'), await expectedConfig.Imagery.get('aerial'));
|
|
70
71
|
});
|
|
71
|
-
|
|
72
|
+
it('should get expected config file with base58 location', async () => {
|
|
72
73
|
const expectedConfig = new ConfigProviderMemory();
|
|
73
74
|
expectedConfig.put(FakeData.tileSetVector('topographic'));
|
|
74
75
|
await fsa.write(location, Buffer.from(JSON.stringify(expectedConfig.toJson())));
|
|
75
|
-
const provider = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${base58.encode(Buffer.from(location))}`, Api.header));
|
|
76
|
-
|
|
76
|
+
const provider = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${base58.encode(Buffer.from(location.href))}`, Api.header));
|
|
77
|
+
assert.deepEqual(await provider.Imagery.get('topographic'), await expectedConfig.Imagery.get('topographic'));
|
|
77
78
|
});
|
|
78
79
|
const deletedLocation = 'memory://linz-basemaps/config-deleted.json';
|
|
79
|
-
|
|
80
|
+
it('should Error 400 if config file not exists', async () => {
|
|
80
81
|
const error = await ConfigLoader.load(mockUrlRequest('/v1/tiles/🦄 🌈/NZTM2000Quad/tile.json', `?config=${deletedLocation}`, Api.header))
|
|
81
82
|
.then(() => null)
|
|
82
83
|
.catch((e) => e);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
assert.equal(error instanceof LambdaHttpResponse, true);
|
|
85
|
+
assert.equal(error.status, 400);
|
|
86
|
+
assert.equal(error.statusDescription, `Invalid config location at ${deletedLocation}`);
|
|
86
87
|
});
|
|
87
88
|
});
|
|
88
89
|
//# sourceMappingURL=config.loader.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.loader.test.js","sourceRoot":"","sources":["../../../src/util/__test__/config.loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"config.loader.test.js","sourceRoot":"","sources":["../../../src/util/__test__/config.loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { describe, it } from 'node:test';
|
|
2
3
|
import { mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
3
4
|
import { filterLayers } from '../filter.js';
|
|
4
|
-
|
|
5
|
+
describe('filterLayers', () => {
|
|
5
6
|
const sourceLayers = [
|
|
6
7
|
{
|
|
7
8
|
name: 'waikato-0_625m-snc12836-2004',
|
|
@@ -20,45 +21,45 @@ o.spec('filterLayers', () => {
|
|
|
20
21
|
title: 'Otago 0.375m SN3806 (1975)',
|
|
21
22
|
},
|
|
22
23
|
];
|
|
23
|
-
|
|
24
|
+
it('should not filter with empty parameters', () => {
|
|
24
25
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js'), sourceLayers);
|
|
25
|
-
|
|
26
|
+
assert.deepEqual(layers, sourceLayers);
|
|
26
27
|
});
|
|
27
|
-
|
|
28
|
+
it('should filter date[after]', () => {
|
|
28
29
|
const dateAfter = '2003-12-31T23:59:59.999';
|
|
29
30
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js', `?date[after]=${dateAfter}`), sourceLayers);
|
|
30
|
-
|
|
31
|
+
assert.deepEqual(layers, [sourceLayers[0]]);
|
|
31
32
|
});
|
|
32
|
-
|
|
33
|
+
it('should filter date[before]', () => {
|
|
33
34
|
const dateBefore = '2003-01-01T00:00:00.000Z';
|
|
34
35
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js', `?date[before]=${dateBefore}`), sourceLayers);
|
|
35
|
-
|
|
36
|
+
assert.deepEqual(layers, sourceLayers.slice(1));
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
it('should filter date[before] in between years', () => {
|
|
38
39
|
const dateBefore = '2026-01-01T00:00:00.000Z';
|
|
39
40
|
const layer = [{ name: '', title: 'Waikato 0.625m SNC12836 (2020-2028)' }];
|
|
40
41
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js', `?date[before]=${dateBefore}`), layer);
|
|
41
|
-
|
|
42
|
+
assert.deepEqual(layers, layer);
|
|
42
43
|
});
|
|
43
|
-
|
|
44
|
+
it('should filter date[after] in between years', () => {
|
|
44
45
|
const dateAfter = '2026-12-31T23:59:59.999Z';
|
|
45
46
|
const layer = [{ name: '', title: 'Waikato 0.625m SNC12836 (2020-2028)' }];
|
|
46
47
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js', `?date[after]=${dateAfter}`), layer);
|
|
47
|
-
|
|
48
|
+
assert.deepEqual(layers, layer);
|
|
48
49
|
});
|
|
49
|
-
|
|
50
|
+
it('should filter date[after] and date[before] in between years', () => {
|
|
50
51
|
const dateAfter = '2026-12-31T23:59:59.999Z';
|
|
51
52
|
const dateBefore = '2028-01-01T00:00:00.000Z';
|
|
52
53
|
const layer = [{ name: '', title: 'Waikato 0.625m SNC12836 (2020-2028)' }];
|
|
53
54
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js', `?date[after]=${dateAfter}&date[before]=${dateBefore}`), layer);
|
|
54
|
-
|
|
55
|
+
assert.deepEqual(layers, layer);
|
|
55
56
|
});
|
|
56
|
-
|
|
57
|
+
it('should filter date[after] and date[before] in between years with single year', () => {
|
|
57
58
|
const dateAfter = '2026-12-31T23:59:59.999Z';
|
|
58
59
|
const dateBefore = '2028-01-01T00:00:00.000Z';
|
|
59
60
|
const layer = [{ name: '', title: 'Waikato 0.625m SNC12836 (2028)' }];
|
|
60
61
|
const layers = filterLayers(mockUrlRequest('/foo/bar,js', `?date[after]=${dateAfter}&date[before]=${dateBefore}`), layer);
|
|
61
|
-
|
|
62
|
+
assert.deepEqual(layers, layer);
|
|
62
63
|
});
|
|
63
64
|
});
|
|
64
65
|
//# sourceMappingURL=filter.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.test.js","sourceRoot":"","sources":["../../../src/util/__test__/filter.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter.test.js","sourceRoot":"","sources":["../../../src/util/__test__/filter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { describe, it } from 'node:test';
|
|
3
|
+
import { GoogleTms, Nztm2000QuadTms, Nztm2000Tms } from '@basemaps/geo';
|
|
3
4
|
import { mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
4
5
|
import { Validate } from '../validate.js';
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
describe('GetImageFormats', () => {
|
|
7
|
+
it('should parse all formats', () => {
|
|
7
8
|
const req = mockUrlRequest('/v1/blank', 'format=png&format=jpeg');
|
|
8
9
|
const formats = Validate.getRequestedFormats(req);
|
|
9
|
-
|
|
10
|
+
assert.deepEqual(formats, ['png', 'jpeg']);
|
|
10
11
|
});
|
|
11
|
-
|
|
12
|
+
it('should ignore bad formats', () => {
|
|
12
13
|
const req = mockUrlRequest('/v1/blank', 'format=fake&format=mvt');
|
|
13
14
|
const formats = Validate.getRequestedFormats(req);
|
|
14
|
-
|
|
15
|
+
assert.equal(formats, null);
|
|
15
16
|
});
|
|
16
|
-
|
|
17
|
+
it('should de-dupe formats', () => {
|
|
17
18
|
const req = mockUrlRequest('/v1/blank', 'format=png&format=jpeg&format=png&format=jpeg&format=png&format=jpeg');
|
|
18
19
|
const formats = Validate.getRequestedFormats(req);
|
|
19
|
-
|
|
20
|
+
assert.deepEqual(formats, ['png', 'jpeg']);
|
|
20
21
|
});
|
|
21
|
-
|
|
22
|
+
it('should support "tileFormat" Alias all formats', () => {
|
|
22
23
|
const req = mockUrlRequest('/v1/blank', 'tileFormat=png&format=jpeg');
|
|
23
24
|
const formats = Validate.getRequestedFormats(req);
|
|
24
|
-
|
|
25
|
+
assert.deepEqual(formats, ['jpeg', 'png']);
|
|
25
26
|
});
|
|
26
|
-
|
|
27
|
+
it('should not duplicate "tileFormat" alias all formats', () => {
|
|
27
28
|
const req = mockUrlRequest('/v1/blank', 'tileFormat=jpeg&format=jpeg');
|
|
28
29
|
const formats = Validate.getRequestedFormats(req);
|
|
29
|
-
|
|
30
|
+
assert.deepEqual(formats, ['jpeg']);
|
|
30
31
|
});
|
|
31
32
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
o((_d = Validate.getTileMatrixSet('2193')) === null || _d === void 0 ? void 0 : _d.identifier).equals(Nztm2000Tms.identifier);
|
|
33
|
+
describe('getTileMatrixSet', () => {
|
|
34
|
+
it('should lookup epsg codes', () => {
|
|
35
|
+
assert.equal(Validate.getTileMatrixSet('EPSG:3857')?.identifier, GoogleTms.identifier);
|
|
36
|
+
assert.equal(Validate.getTileMatrixSet('EPSG:2193')?.identifier, Nztm2000Tms.identifier);
|
|
37
|
+
assert.equal(Validate.getTileMatrixSet('3857')?.identifier, GoogleTms.identifier);
|
|
38
|
+
assert.equal(Validate.getTileMatrixSet('2193')?.identifier, Nztm2000Tms.identifier);
|
|
39
39
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
o((_c = Validate.getTileMatrixSet('Nztm2000')) === null || _c === void 0 ? void 0 : _c.identifier).equals(Nztm2000Tms.identifier);
|
|
40
|
+
it('should lookup by identifier', () => {
|
|
41
|
+
assert.equal(Validate.getTileMatrixSet('WebMercatorQuad')?.identifier, GoogleTms.identifier);
|
|
42
|
+
assert.equal(Validate.getTileMatrixSet('NZTM2000Quad')?.identifier, Nztm2000QuadTms.identifier);
|
|
43
|
+
assert.equal(Validate.getTileMatrixSet('Nztm2000')?.identifier, Nztm2000Tms.identifier);
|
|
45
44
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
o((_a = Validate.getTileMatrixSet('Nztm2000Quad')) === null || _a === void 0 ? void 0 : _a.identifier).equals(undefined);
|
|
45
|
+
it('should be case sensitive', () => {
|
|
46
|
+
assert.equal(Validate.getTileMatrixSet('Nztm2000Quad')?.identifier, undefined);
|
|
49
47
|
});
|
|
50
48
|
});
|
|
51
|
-
o.spec('getTileFormat', () => {
|
|
52
|
-
for (const ext of Object.values(ImageFormat)) {
|
|
53
|
-
o('should support image format:' + ext, () => {
|
|
54
|
-
o(Validate.getTileFormat(ext)).equals(ext);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
o('should support vector format: mvt', () => {
|
|
58
|
-
o(Validate.getTileFormat('pbf')).equals(VectorFormat.MapboxVectorTiles);
|
|
59
|
-
});
|
|
60
|
-
for (const fmt of ['FAKE', /* 'JPEG' // TODO should this be case sensitive ,*/ 'mvt', 'json']) {
|
|
61
|
-
o('should not support format:' + fmt, () => {
|
|
62
|
-
o(Validate.getTileFormat(fmt)).equals(null);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
49
|
//# sourceMappingURL=validate.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../../../src/util/__test__/validate.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../../../src/util/__test__/validate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
|
|
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(
|
|
13
|
-
getFromCotar(path:
|
|
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
|