@basemaps/shared 7.14.0 → 7.16.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.
@@ -5,5 +5,7 @@ export declare const CliInfo: {
5
5
  hash: string;
6
6
  buildId?: string;
7
7
  };
8
+ /** ISO date of when this command was run */
9
+ export declare const CliDate: string;
8
10
  /** Unique Id for this instance of the cli being run */
9
11
  export declare const CliId: string;
package/build/cli/info.js CHANGED
@@ -8,6 +8,8 @@ export const CliInfo = {
8
8
  hash: process.env['GIT_HASH'] ?? GitTag().hash,
9
9
  buildId: process.env['BUILD_ID'],
10
10
  };
11
+ /** ISO date of when this command was run */
12
+ export const CliDate = new Date().toISOString();
11
13
  /** Unique Id for this instance of the cli being run */
12
14
  export const CliId = ulid.ulid();
13
15
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/cli/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,uCAAuC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAyE;IAC3F,mGAAmG;IACnG,OAAO,EAAE,GAAG,GAAG,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,MAAM,EAAE,CAAC,OAAO;IACvD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI;IAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;CACjC,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/cli/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,uCAAuC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAyE;IAC3F,mGAAmG;IACnG,OAAO,EAAE,GAAG,GAAG,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,MAAM,EAAE,CAAC,OAAO;IACvD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI;IAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;CACjC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAEhD,uDAAuD;AACvD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC"}
@@ -41,9 +41,26 @@ credentials.onFileSystemFound = (acc, fs, path) => {
41
41
  applyS3MiddleWare(fs);
42
42
  fsa.register(acc.prefix, fs);
43
43
  };
44
+ /**
45
+ * Split JSON or comma separated lists into individual components
46
+ *
47
+ * Allowing for credentials to be loaded from multiple sources eg
48
+ *
49
+ * @example comma separated list
50
+ * ```typescript
51
+ * "s3://foo/bar.json,s3://foo/baz.json"
52
+ * ```
53
+ */
54
+ function splitConfig(x) {
55
+ if (x.startsWith('['))
56
+ return JSON.parse(x);
57
+ return x.split(',');
58
+ }
44
59
  const credentialPath = Env.get(Env.AwsRoleConfigPath);
45
- if (credentialPath)
46
- credentials.registerConfig(fsa.toUrl(credentialPath), s3Fs);
60
+ if (credentialPath) {
61
+ for (const loc of splitConfig(credentialPath))
62
+ credentials.registerConfig(fsa.toUrl(loc), s3Fs);
63
+ }
47
64
  s3Fs.credentials = credentials;
48
65
  fsa.register('https://', new FsHttp());
49
66
  fsa.register('s3://', s3Fs);
@@ -1 +1 @@
1
- {"version":3,"file":"file.system.js","sourceRoot":"","sources":["../src/file.system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.system.js","sourceRoot":"","sources":["../src/file.system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,111 @@
1
+ /* eslint-disable no-console */
2
+ import { Bounds, Epsg, getXyOrder, GoogleTms, Projection, ProjectionLoader } from '@basemaps/geo';
3
+ import { writeFileSync } from 'fs';
4
+ import { CliInfo } from '../cli/info.js';
5
+ /**
6
+ * Attempt to create a debug tile matrix given a projection code.
7
+ *
8
+ * General flow of the creation
9
+ * - Lookup the projection information from spatial reference
10
+ * - Attempt to find the bounds of the projection
11
+ * - Using the bounds attempt to find a tile matrix zoom level that would cover the entire bounds
12
+ * - Create a basic debugging tile matrix from the information
13
+ */
14
+ /**
15
+ * Change the projection to create here
16
+ */
17
+ const TargetProjection = 3793;
18
+ /**
19
+ * Find a zoom level that has approximatly the same bounds as the bounds of the source projection,
20
+ * because the WebMercatorQuad covers the entire world most other projections do not work well, outside
21
+ * their own bounds try and find a zoom level that does not overflow the bounds too much
22
+ *
23
+ * @param minSize
24
+ * @returns one zoom level bigger than the minimum zoom level
25
+ */
26
+ function findZoomOffset(minSize) {
27
+ for (let i = 1; i < GoogleTms.maxZoom; i++) {
28
+ const size = GoogleTms.pixelScale(i) * 256;
29
+ const sizeDiff = minSize - size;
30
+ if (sizeDiff > 0)
31
+ return Math.max(0, i - 1);
32
+ }
33
+ return 0;
34
+ }
35
+ /**
36
+ * Normalize axis names to X or Y
37
+ *
38
+ * @param ax Axis
39
+ * @returns Normalized axis name
40
+ * @throws if axis is unknown
41
+ */
42
+ function axisName(ax) {
43
+ switch (ax.abbreviation.toLowerCase()) {
44
+ case 'x':
45
+ case 'e':
46
+ return 'x';
47
+ case 'y':
48
+ case 'n':
49
+ return 'y';
50
+ default:
51
+ throw new Error('Unknown axis abbreviation: ' + ax.abbreviation);
52
+ }
53
+ }
54
+ async function main() {
55
+ await ProjectionLoader.load(TargetProjection);
56
+ const proj = Projection.get(TargetProjection);
57
+ // Load the projection JSON from spatialreference and look for a bounding box of the projection
58
+ const projJson = (await fetch(`https://spatialreference.org/ref/epsg/${TargetProjection}/projjson.json`).then((f) => f.json()));
59
+ const upperLeft = proj.fromWgs84([projJson.bbox.west_longitude, projJson.bbox.north_latitude]);
60
+ const lowerRight = proj.fromWgs84([projJson.bbox.east_longitude, projJson.bbox.south_latitude]);
61
+ const minSize = Math.max(Math.abs(upperLeft[0] - lowerRight[0]), Math.abs(upperLeft[1] - lowerRight[1]));
62
+ const zOffset = findZoomOffset(minSize);
63
+ console.log('found zoom offset: ' + zOffset);
64
+ const filePrefix = `./debug-tms-${TargetProjection}`;
65
+ const centerLon = (projJson.bbox.west_longitude + projJson.bbox.east_longitude) / 2;
66
+ const centerLat = (projJson.bbox.north_latitude + projJson.bbox.south_latitude) / 2;
67
+ const bounds = Bounds.fromUpperLeftLowerRight({ x: projJson.bbox.east_longitude, y: projJson.bbox.north_latitude }, { x: projJson.bbox.west_longitude, y: projJson.bbox.south_latitude });
68
+ const feature = Projection.get(Epsg.Wgs84).boundsToGeoJsonFeature(bounds);
69
+ console.log('Writing bounds', `${filePrefix}-bounds.geojson`);
70
+ writeFileSync(`${filePrefix}-bounds.geojson`, JSON.stringify(feature));
71
+ const tileZeroWidth = GoogleTms.pixelScale(zOffset) * 256;
72
+ const halfTileZeroWidth = tileZeroWidth / 2;
73
+ const centerProjected = proj.fromWgs84([centerLon, centerLat]);
74
+ const tileMatrix = structuredClone(GoogleTms.def);
75
+ const xyOrder = getXyOrder(TargetProjection);
76
+ const xy = xyOrder === 'xy' ? { x: 0, y: 1 } : { x: 1, y: 0 };
77
+ const axisOrder = projJson.coordinate_system.axis.map(axisName).join('');
78
+ if (xyOrder !== axisOrder) {
79
+ throw new Error(`getXyOrder: ${axisOrder} is not the same as expected ordering from proj json`);
80
+ }
81
+ tileMatrix.title = 'Debug tile matrix for EPSG:' + TargetProjection;
82
+ tileMatrix.boundingBox.lowerCorner = [
83
+ centerProjected[xy.x] - halfTileZeroWidth,
84
+ centerProjected[xy.y] - halfTileZeroWidth,
85
+ ];
86
+ tileMatrix.boundingBox.upperCorner = [
87
+ centerProjected[xy.x] + halfTileZeroWidth,
88
+ centerProjected[xy.y] + halfTileZeroWidth,
89
+ ];
90
+ delete tileMatrix.wellKnownScaleSet;
91
+ tileMatrix.tileMatrix = tileMatrix.tileMatrix.slice(zOffset).map((x, i) => {
92
+ x.identifier = String(i);
93
+ x.matrixWidth = 2 ** i;
94
+ x.matrixHeight = 2 ** i;
95
+ x.topLeftCorner = [tileMatrix.boundingBox.upperCorner[0], tileMatrix.boundingBox.lowerCorner[1]];
96
+ return x;
97
+ });
98
+ tileMatrix.identifier = `Debug_` + projJson.name.replace(/ /g, '').replace(/\//g, '_');
99
+ tileMatrix.supportedCRS = `https://www.opengis.net/def/crs/EPSG/0/${TargetProjection}`;
100
+ tileMatrix.boundingBox.crs = tileMatrix.supportedCRS;
101
+ // Log how the tile matrix was generated
102
+ tileMatrix['$generated'] = { ...CliInfo, createdAt: new Date().toISOString() };
103
+ tileMatrix['$options'] = { sourceTileMatrix: GoogleTms.identifier, zoomOffset: zOffset };
104
+ console.log('Writing tile matrix', `${filePrefix}-tile-matrix.json`);
105
+ writeFileSync(`${filePrefix}-tile-matrix.json`, JSON.stringify(tileMatrix, null, 2));
106
+ }
107
+ main().catch((e) => {
108
+ console.error(e);
109
+ throw e;
110
+ });
111
+ //# sourceMappingURL=debug.tile.matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.tile.matrix.js","sourceRoot":"","sources":["../../src/scripts/debug.tile.matrix.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAqB,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAuB9B;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3C,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;QAChC,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,EAAgB;IAChC,QAAQ,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb;YACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE9C,+FAA+F;IAC/F,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,yCAAyC,gBAAgB,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAClH,CAAC,CAAC,IAAI,EAAE,CACT,CAAa,CAAC;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAEhG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,OAAO,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,eAAe,gBAAgB,EAAE,CAAC;IAErD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAC3C,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EACpE,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CACrE,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,UAAU,iBAAiB,CAAC,CAAC;IAC9D,aAAa,CAAC,GAAG,UAAU,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvE,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC1D,MAAM,iBAAiB,GAAG,aAAa,GAAG,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAmE,CAAC;IAEpH,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE7C,MAAM,EAAE,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAE9D,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,sDAAsD,CAAC,CAAC;IAClG,CAAC;IAED,UAAU,CAAC,KAAK,GAAG,6BAA6B,GAAG,gBAAgB,CAAC;IACpE,UAAU,CAAC,WAAW,CAAC,WAAW,GAAG;QACnC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iBAAiB;QACzC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iBAAiB;KAC1C,CAAC;IACF,UAAU,CAAC,WAAW,CAAC,WAAW,GAAG;QACnC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iBAAiB;QACzC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iBAAiB;KAC1C,CAAC;IAEF,OAAO,UAAU,CAAC,iBAAiB,CAAC;IAEpC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,aAAa,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvF,UAAU,CAAC,YAAY,GAAG,0CAA0C,gBAAgB,EAAE,CAAC;IACvF,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;IAErD,wCAAwC;IACxC,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/E,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,UAAU,mBAAmB,CAAC,CAAC;IACrE,aAAa,CAAC,GAAG,UAAU,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,CAAC;AACV,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basemaps/shared",
3
- "version": "7.14.0",
3
+ "version": "7.16.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,8 +26,8 @@
26
26
  "@aws-sdk/client-dynamodb": "^3.470.0",
27
27
  "@aws-sdk/client-s3": "^3.472.0",
28
28
  "@aws-sdk/util-dynamodb": "^3.470.0",
29
- "@basemaps/config": "^7.14.0",
30
- "@basemaps/geo": "^7.12.0",
29
+ "@basemaps/config": "^7.16.0",
30
+ "@basemaps/geo": "^7.16.0",
31
31
  "@chunkd/fs": "^11.2.0",
32
32
  "@chunkd/fs-aws": "^11.3.0",
33
33
  "@chunkd/middleware": "^11.1.0",
@@ -48,5 +48,5 @@
48
48
  "files": [
49
49
  "build/"
50
50
  ],
51
- "gitHead": "72f2a811d4851c6f50758617c9e65179d2b27bc8"
51
+ "gitHead": "25fa7659b84a40205ceacda8b2ca5f48e1dc6f7b"
52
52
  }