@basemaps/shared 6.23.0 → 6.25.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 CHANGED
@@ -3,6 +3,37 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [6.25.0](https://github.com/linz/basemaps/compare/v6.24.2...v6.25.0) (2022-05-11)
7
+
8
+
9
+ ### Features
10
+
11
+ * **config:** serve tilejson 3.0.0 and allow raster imagery ([#2173](https://github.com/linz/basemaps/issues/2173)) ([29f5313](https://github.com/linz/basemaps/commit/29f53131e917fa0b3ce6f280e8f9e09f4fe6e957))
12
+ * **lambda-tiler:** Import api for import imagery jobs. ([#2170](https://github.com/linz/basemaps/issues/2170)) ([76b6175](https://github.com/linz/basemaps/commit/76b6175930db2a04f24437c7a05e7a70f160f7cd))
13
+
14
+
15
+
16
+
17
+
18
+ ## [6.24.2](https://github.com/linz/basemaps/compare/v6.24.1...v6.24.2) (2022-04-20)
19
+
20
+ **Note:** Version bump only for package @basemaps/shared
21
+
22
+
23
+
24
+
25
+
26
+ ## [6.24.1](https://github.com/linz/basemaps/compare/v6.24.0...v6.24.1) (2022-04-07)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * **shared:** Projection.tyryGet do not throw if no projection is defined ([#2145](https://github.com/linz/basemaps/issues/2145)) ([7592fe5](https://github.com/linz/basemaps/commit/7592fe53c023f341f916520a7014fd00436df245))
32
+
33
+
34
+
35
+
36
+
6
37
  # [6.23.0](https://github.com/linz/basemaps/compare/v6.22.1...v6.23.0) (2022-04-04)
7
38
 
8
39
 
@@ -1,7 +1,7 @@
1
1
  import { GoogleTms, Nztm2000Tms, Nztm2000QuadTms } from '@basemaps/geo';
2
- import { ImageFormat } from '@basemaps/tiler';
2
+ import { ImageFormat, VectorFormat } from '@basemaps/geo';
3
3
  import o from 'ospec';
4
- import { tileAttributionFromPath, TileType, tileWmtsFromPath, tileXyzFromPath, VectorFormat } from '../api.path.js';
4
+ import { tileAttributionFromPath, TileType, tileWmtsFromPath, tileXyzFromPath } from '../api.path.js';
5
5
  o.spec('api.path', () => {
6
6
  o.spec('tileXyzFromPath', () => {
7
7
  o('should be case sensitive for tile matrix ids', () => {
@@ -31,7 +31,7 @@ o.spec('api.path', () => {
31
31
  x: 3456,
32
32
  y: 5432,
33
33
  z: 10,
34
- ext: ImageFormat.WEBP,
34
+ ext: ImageFormat.Webp,
35
35
  });
36
36
  o(tileXyzFromPath([])).equals(null);
37
37
  o(tileXyzFromPath(['aerial', 'EPSG:3857', '10', '3456'])).equals(null);
@@ -42,7 +42,7 @@ o.spec('api.path', () => {
42
42
  x: 3456,
43
43
  y: 5432,
44
44
  z: 10,
45
- ext: ImageFormat.WEBP,
45
+ ext: ImageFormat.Webp,
46
46
  });
47
47
  });
48
48
  o('should parse vector tiles', () => {
@@ -1,5 +1,4 @@
1
- import { Tile, TileMatrixSet } from '@basemaps/geo';
2
- import { ImageFormat } from '@basemaps/tiler';
1
+ import { Tile, TileMatrixSet, ImageFormat, VectorFormat } from '@basemaps/geo';
3
2
  export interface ActionData {
4
3
  version: string;
5
4
  action: string;
@@ -11,9 +10,6 @@ export declare enum TileType {
11
10
  Tile = "tile",
12
11
  Attribution = "attribution"
13
12
  }
14
- export declare enum VectorFormat {
15
- MapboxVectorTiles = "pbf"
16
- }
17
13
  export declare type TileData = TileDataXyz | TileDataWmts | TileDataAttribution;
18
14
  interface NameTileMatrix {
19
15
  name: string;
@@ -34,6 +30,7 @@ export interface TileDataAttribution extends NameTileMatrix {
34
30
  export declare function setNameAndProjection(req: {
35
31
  set: (key: string, val: any) => void;
36
32
  }, data: TileData): void;
33
+ export declare function extractTileMatrixSet(text: string): TileMatrixSet | null;
37
34
  export declare function tileXyzFromPath(path: string[]): TileDataXyz | null;
38
35
  export declare function tileAttributionFromPath(path: string[]): TileDataAttribution | null;
39
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"api.path.d.ts","sourceRoot":"","sources":["../src/api.path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAkB,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AACD,oBAAY,YAAY;IACtB,iBAAiB,QAAQ;CAC1B;AAED,oBAAY,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,mBAAmB,CAAC;AAExE,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,EAAE,cAAc;IACvD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,GAAG,EAAE,WAAW,GAAG,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAIxG;AAQD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAoBlE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,GAAG,IAAI,CAQlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI,CAWpE;AAED;;IAEI;AACJ,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAM5D"}
1
+ {"version":3,"file":"api.path.d.ts","sourceRoot":"","sources":["../src/api.path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAkB,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGrG,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AAED,oBAAY,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,mBAAmB,CAAC;AAExE,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,EAAE,cAAc;IACvD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,GAAG,EAAE,WAAW,GAAG,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAIxG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAIvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAoBlE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,GAAG,IAAI,CAQlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI,CAWpE;AAED;;IAEI;AACJ,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAM5D"}
package/build/api.path.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Epsg, TileMatrixSets } from '@basemaps/geo';
1
+ import { Epsg, TileMatrixSets, VectorFormat } from '@basemaps/geo';
2
2
  import { getImageFormat } from '@basemaps/tiler';
3
3
  export var TileType;
4
4
  (function (TileType) {
@@ -6,17 +6,13 @@ export var TileType;
6
6
  TileType["Tile"] = "tile";
7
7
  TileType["Attribution"] = "attribution";
8
8
  })(TileType || (TileType = {}));
9
- export var VectorFormat;
10
- (function (VectorFormat) {
11
- VectorFormat["MapboxVectorTiles"] = "pbf";
12
- })(VectorFormat || (VectorFormat = {}));
13
9
  export function setNameAndProjection(req, data) {
14
10
  req.set('tileSet', data.name);
15
11
  if (data.tileMatrix == null)
16
12
  return;
17
13
  req.set('projection', data.tileMatrix.projection);
18
14
  }
19
- function extractTileMatrixSet(text) {
15
+ export function extractTileMatrixSet(text) {
20
16
  var _a;
21
17
  const projection = Epsg.parse(text);
22
18
  if (projection != null)
package/build/const.d.ts CHANGED
@@ -23,6 +23,10 @@ export declare const Env: {
23
23
  BatchIndex: string;
24
24
  /** Number of hours to assume a role for, @default 8 */
25
25
  AwsRoleDurationHours: string;
26
+ /** AWS role config bucket */
27
+ AwsRoleConfigBucket: string;
28
+ /** Import Imagery bucket */
29
+ ImportImageryBucket: string;
26
30
  Gdal: {
27
31
  /** Should the gdal docker container be used? */
28
32
  UseDocker: string;
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK;;;;;;;;;;;;;CAajB,CAAC;AAEF,eAAO,MAAM,GAAG;IACd,iDAAiD;;IAGjD,yCAAyC;;IAGzC,0DAA0D;;IAG1D,6DAA6D;;IAG7D,uDAAuD;;;QAIrD,gDAAgD;;QAEhD,2DAA2D;;;;;;;;;IAW7D,+EAA+E;iBAClE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC,gGAAgG;uBAC7E,MAAM,iBAAiB,MAAM,GAAG,MAAM;oBAazC,OAAO;CAGxB,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK;;;;;;;;;;;;;CAajB,CAAC;AAEF,eAAO,MAAM,GAAG;IACd,iDAAiD;;IAGjD,yCAAyC;;IAGzC,0DAA0D;;IAG1D,6DAA6D;;IAG7D,uDAAuD;;IAGvD,6BAA6B;;IAG7B,4BAA4B;;;QAI1B,gDAAgD;;QAEhD,2DAA2D;;;;;;;;;IAW7D,+EAA+E;iBAClE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC,gGAAgG;uBAC7E,MAAM,iBAAiB,MAAM,GAAG,MAAM;oBAazC,OAAO;CAGxB,CAAC"}
package/build/const.js CHANGED
@@ -24,6 +24,10 @@ export const Env = {
24
24
  BatchIndex: 'AWS_BATCH_JOB_ARRAY_INDEX',
25
25
  /** Number of hours to assume a role for, @default 8 */
26
26
  AwsRoleDurationHours: 'AWS_ROLE_DURATION_HOURS',
27
+ /** AWS role config bucket */
28
+ AwsRoleConfigBucket: 'ROLE_CONFIG_BUCKET',
29
+ /** Import Imagery bucket */
30
+ ImportImageryBucket: 'IMPORT_IMAGERY_BUCKET',
27
31
  Gdal: {
28
32
  /** Should the gdal docker container be used? */
29
33
  UseDocker: 'GDAL_DOCKER',
@@ -1,4 +1,4 @@
1
- import { EpsgCode } from '@basemaps/geo';
1
+ import { Epsg, EpsgCode } from '@basemaps/geo';
2
2
  import { round } from '@basemaps/test/build/rounding.js';
3
3
  import { bboxToPolygon } from '@linzjs/geojson';
4
4
  import o from 'ospec';
@@ -16,6 +16,13 @@ o.spec('Projection', () => {
16
16
  const reverse = nztmProj.fromWgs84(output);
17
17
  o(round(reverse, 2)).deepEquals([1180000, 4758000]);
18
18
  });
19
+ o('tryGet should not throw if epsg is defined but projection is not', () => {
20
+ const count = Epsg.Codes.size;
21
+ const epsg = new Epsg(Math.random());
22
+ o(Projection.tryGet(epsg)).equals(null);
23
+ Epsg.Codes.delete(epsg.code);
24
+ o(Epsg.Codes.size).equals(count);
25
+ });
19
26
  o('toGeoJson', () => {
20
27
  const geojson = googleProj.toGeoJson(qkToNamedBounds(['31', '33']));
21
28
  const { features } = geojson;
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/proj/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EACL,IAAI,EACJ,WAAW,EACX,qBAAqB,EAKtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUnC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAUD,qBAAa,UAAU;IACrB,IAAI,EAAE,IAAI,CAAC;IAEX,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAAkB;IAEpC;;OAEG;IACH,OAAO;IAaP,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU;IAMjE;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI;IAYvE;;;;;SAKK;IACL,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,UAAU,GAAG,QAAQ,EAAE,EAAE,EAAE;IAS5F;;OAEG;IACH,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAEjD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAEnD;IAED;;;;;;SAMK;IACL,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAOnD;;;;;;;;SAQK;IACL,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,KAAK,GAAG,WAAW;IAezE,6DAA6D;IAC7D,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,qBAAqB;IAOtD;;;;;;;;SAQK;IACL,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,MAAM;IAU/E,yCAAyC;IACzC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAY5D;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM;IAOjE;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IA8BnD;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAI/E;;;;;;SAMK;IACL,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAKtF"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/proj/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EACL,IAAI,EACJ,WAAW,EACX,qBAAqB,EAKtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUnC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAUD,qBAAa,UAAU;IACrB,IAAI,EAAE,IAAI,CAAC;IAEX,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAAkB;IAEpC;;OAEG;IACH,OAAO;IAaP,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU;IAMjE;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI;IAkBvE;;;;;SAKK;IACL,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,UAAU,GAAG,QAAQ,EAAE,EAAE,EAAE;IAS5F;;OAEG;IACH,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAEjD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAEnD;IAED;;;;;;SAMK;IACL,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAOnD;;;;;;;;SAQK;IACL,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,KAAK,GAAG,WAAW;IAezE,6DAA6D;IAC7D,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,qBAAqB;IAOtD;;;;;;;;SAQK;IACL,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,MAAM;IAU/E,yCAAyC;IACzC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAY5D;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM;IAOjE;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IA8BnD;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAI/E;;;;;;SAMK;IACL,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAKtF"}
@@ -59,12 +59,18 @@ export class Projection {
59
59
  const epsgCode = getEpsgCode(unk);
60
60
  if (epsgCode == null)
61
61
  return null;
62
+ // Existing projection logic, cache and reuse
62
63
  let proj = CodeMap.get(epsgCode);
63
64
  if (proj != null)
64
65
  return proj;
66
+ // ensure the EPSG Code has been registered in basemaps
65
67
  const epsg = Epsg.tryGet(epsgCode);
66
68
  if (epsg == null)
67
69
  return null;
70
+ // Ensure proj has a transform for this projection
71
+ const def = Proj.defs(epsg.toEpsgString());
72
+ if (def == null)
73
+ return null;
68
74
  proj = new Projection(epsg);
69
75
  CodeMap.set(epsgCode, proj);
70
76
  return proj;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basemaps/shared",
3
- "version": "6.23.0",
3
+ "version": "6.25.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,9 +23,9 @@
23
23
  "test": "ospec --globs 'build/**/*.test.js'"
24
24
  },
25
25
  "dependencies": {
26
- "@basemaps/config": "^6.21.1",
27
- "@basemaps/geo": "^6.21.1",
28
- "@basemaps/tiler": "^6.23.0",
26
+ "@basemaps/config": "^6.25.0",
27
+ "@basemaps/geo": "^6.25.0",
28
+ "@basemaps/tiler": "^6.25.0",
29
29
  "@chunkd/source-aws-v2": "^8.1.0",
30
30
  "@linzjs/geojson": "^6.21.1",
31
31
  "@linzjs/metrics": "^6.21.1",
@@ -49,5 +49,5 @@
49
49
  "files": [
50
50
  "build/"
51
51
  ],
52
- "gitHead": "5c956ba1b1f87c1712fcc4f9d4afc20e7a427285"
52
+ "gitHead": "7ef26df6d42b79298035033fb6434d086fa642f8"
53
53
  }