@basemaps/shared 6.34.0 → 6.35.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,28 @@
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.35.0](https://github.com/linz/basemaps/compare/v6.34.0...v6.35.0) (2022-09-14)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **lambda-tiler:** ensure wmts and style propagate config location ([#2445](https://github.com/linz/basemaps/issues/2445)) ([d93a34b](https://github.com/linz/basemaps/commit/d93a34b50bce9b49a30baa1fbfd7142332738d23))
12
+ * **shared:** actually catch read errors ([#2451](https://github.com/linz/basemaps/issues/2451)) ([e349f3e](https://github.com/linz/basemaps/commit/e349f3e81a1eb75d27bf69a1a6474f70a5b02ef8))
13
+ * **shared:** do not attempt to lookup roles for the role config data ([#2461](https://github.com/linz/basemaps/issues/2461)) ([bdd5c72](https://github.com/linz/basemaps/commit/bdd5c72f084d988f36c01204ebdae6641c9011aa))
14
+ * **shared:** ensure & is escaped in xml ([#2456](https://github.com/linz/basemaps/issues/2456)) ([665e433](https://github.com/linz/basemaps/commit/665e4335cbf52aeb2292295aba40fa40abf4c1b0))
15
+
16
+
17
+ ### Features
18
+
19
+ * switch to aws role provider from chunkd ([#2473](https://github.com/linz/basemaps/issues/2473)) ([87be0e0](https://github.com/linz/basemaps/commit/87be0e08610f02003cb4ec3f6ced9b2051ee1617))
20
+ * use $AWS_ROLE_CONFIG_PATH to be more consistent ([#2476](https://github.com/linz/basemaps/issues/2476)) ([e5d0f1f](https://github.com/linz/basemaps/commit/e5d0f1f6cdefd383366c2b7c53994568a5f67a21))
21
+ * **cli:** New cli to create cog map sheet from a give fgb file and config. ([#2472](https://github.com/linz/basemaps/issues/2472)) ([6cf2563](https://github.com/linz/basemaps/commit/6cf25638e2ae4fe365aa78ab77cd0d319c02d7a0))
22
+ * allow loading config from ?config ([#2442](https://github.com/linz/basemaps/issues/2442)) ([8f946d8](https://github.com/linz/basemaps/commit/8f946d8ffb155304b80c26aca0faf4c64136390f))
23
+
24
+
25
+
26
+
27
+
6
28
  # [6.34.0](https://github.com/linz/basemaps/compare/v6.33.0...v6.34.0) (2022-08-17)
7
29
 
8
30
  **Note:** Version bump only for package @basemaps/shared
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=url.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/url.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import o from 'ospec';
2
+ import { toQueryString } from '../url.js';
3
+ o.spec('toQueryString', () => {
4
+ o('should create a query string', () => {
5
+ o(toQueryString({ api: 'foo' })).equals('?api=foo');
6
+ });
7
+ o('should not create empty query strings', () => {
8
+ o(toQueryString({})).equals('');
9
+ o(toQueryString({ api: undefined })).equals('');
10
+ o(toQueryString({ api: null })).equals('');
11
+ });
12
+ o('should sort keys', () => {
13
+ o(toQueryString({ z: 'z', a: 'a' })).equals('?a=a&z=z');
14
+ });
15
+ });
16
+ //# sourceMappingURL=url.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.test.js","sourceRoot":"","sources":["../../src/__tests__/url.test.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,CAAC,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACtC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC9C,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,EAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACzB,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BasemapsConfigProvider } from '@basemaps/config';
2
+ export declare function setDefaultConfig(cfg: BasemapsConfigProvider): BasemapsConfigProvider;
3
+ export declare function getDefaultConfig(): BasemapsConfigProvider;
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAKhF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,sBAAsB,GAAG,sBAAsB,CAGpF;AAED,wBAAgB,gBAAgB,IAAI,sBAAsB,CAGzD"}
@@ -0,0 +1,13 @@
1
+ import { ConfigProviderDynamo } from '@basemaps/config';
2
+ import { Const, Env } from './const.js';
3
+ let ConfigDefault = new ConfigProviderDynamo(Const.TileMetadata.TableName);
4
+ export function setDefaultConfig(cfg) {
5
+ ConfigDefault = cfg;
6
+ return ConfigDefault;
7
+ }
8
+ export function getDefaultConfig() {
9
+ if (ConfigDefault.assets == null)
10
+ ConfigDefault.assets = Env.get(Env.AssetLocation);
11
+ return ConfigDefault;
12
+ }
13
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA0B,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAExC,IAAI,aAAa,GAA2B,IAAI,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAEnG,MAAM,UAAU,gBAAgB,CAAC,GAA2B;IAC1D,aAAa,GAAG,GAAG,CAAC;IACpB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,aAAa,CAAC,MAAM,IAAI,IAAI;QAAE,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACpF,OAAO,aAAa,CAAC;AACvB,CAAC"}
package/build/const.d.ts CHANGED
@@ -27,12 +27,6 @@ export declare const Env: {
27
27
  AwsRoleDurationHours: string;
28
28
  /** AWS role config bucket */
29
29
  AwsRoleConfigPath: string;
30
- /** Import Imagery bucket */
31
- ImportImageryBucket: string;
32
- /** Import Imagery files number limit */
33
- ImportFilesNumberLimit: string;
34
- /** Import Imagery files total size limit in GB */
35
- ImportFilesSizeLimitGb: string;
36
30
  Gdal: {
37
31
  /** Should the gdal docker container be used? */
38
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,qCAAqC;;IAGrC,yCAAyC;;IAGzC,0DAA0D;;IAG1D,6DAA6D;;IAG7D,uDAAuD;;IAGvD,6BAA6B;;IAG7B,4BAA4B;;IAG5B,wCAAwC;;IAGxC,kDAAkD;;;QAIhD,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,qCAAqC;;IAGrC,yCAAyC;;IAGzC,0DAA0D;;IAG1D,6DAA6D;;IAG7D,uDAAuD;;IAGvD,6BAA6B;;;QAI3B,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
@@ -27,13 +27,7 @@ export const Env = {
27
27
  /** Number of hours to assume a role for, @default 8 */
28
28
  AwsRoleDurationHours: 'AWS_ROLE_DURATION_HOURS',
29
29
  /** AWS role config bucket */
30
- AwsRoleConfigPath: 'ROLE_CONFIG_PATH',
31
- /** Import Imagery bucket */
32
- ImportImageryBucket: 'IMPORT_IMAGERY_BUCKET',
33
- /** Import Imagery files number limit */
34
- ImportFilesNumberLimit: 'FILES_NUMBER_LIMIT',
35
- /** Import Imagery files total size limit in GB */
36
- ImportFilesSizeLimitGb: 'FILES_SIZE_LIMIT_GB',
30
+ AwsRoleConfigPath: 'AWS_ROLE_CONFIG_PATH',
37
31
  Gdal: {
38
32
  /** Should the gdal docker container be used? */
39
33
  UseDocker: 'GDAL_DOCKER',
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,GAAG,EAAE;QACH,MAAM,EAAE,gBAAgB;KACzB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,IAAI;KACzB;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,cAAc;QACzB,kBAAkB,EAAE,IAAI;KACzB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,iDAAiD;IACjD,aAAa,EAAE,qBAAqB;IAEpC,qCAAqC;IACrC,aAAa,EAAE,0BAA0B;IAEzC,yCAAyC;IACzC,eAAe,EAAE,kBAAkB;IAEnC,0DAA0D;IAC1D,UAAU,EAAE,aAAa;IAEzB,6DAA6D;IAC7D,UAAU,EAAE,2BAA2B;IAEvC,uDAAuD;IACvD,oBAAoB,EAAE,yBAAyB;IAE/C,6BAA6B;IAC7B,iBAAiB,EAAE,kBAAkB;IAErC,4BAA4B;IAC5B,mBAAmB,EAAE,uBAAuB;IAE5C,wCAAwC;IACxC,sBAAsB,EAAE,oBAAoB;IAE5C,kDAAkD;IAClD,sBAAsB,EAAE,qBAAqB;IAE7C,IAAI,EAAE;QACJ,gDAAgD;QAChD,SAAS,EAAE,aAAa;QACxB,2DAA2D;QAC3D,eAAe,EAAE,uBAAuB;QACxC,kBAAkB,EAAE,2BAA2B;KAChD;IAED,SAAS,EAAE;QACT,YAAY,EAAE,0BAA0B;QACxC,sBAAsB,EAAE,qCAAqC;QAC7D,WAAW,EAAE,wBAAwB;KACtC;IAED,+EAA+E;IAC/E,GAAG,CAAC,OAAe;QACjB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,gGAAgG;IAChG,SAAS,CAAC,OAAe,EAAE,aAAqB;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;YACrC,OAAO,aAAa,CAAC;SACtB;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACjB,OAAO,aAAa,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY;QACV,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAC/C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,GAAG,EAAE;QACH,MAAM,EAAE,gBAAgB;KACzB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,QAAQ;QACnB,kBAAkB,EAAE,IAAI;KACzB;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,cAAc;QACzB,kBAAkB,EAAE,IAAI;KACzB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,iDAAiD;IACjD,aAAa,EAAE,qBAAqB;IAEpC,qCAAqC;IACrC,aAAa,EAAE,0BAA0B;IAEzC,yCAAyC;IACzC,eAAe,EAAE,kBAAkB;IAEnC,0DAA0D;IAC1D,UAAU,EAAE,aAAa;IAEzB,6DAA6D;IAC7D,UAAU,EAAE,2BAA2B;IAEvC,uDAAuD;IACvD,oBAAoB,EAAE,yBAAyB;IAE/C,6BAA6B;IAC7B,iBAAiB,EAAE,sBAAsB;IAEzC,IAAI,EAAE;QACJ,gDAAgD;QAChD,SAAS,EAAE,aAAa;QACxB,2DAA2D;QAC3D,eAAe,EAAE,uBAAuB;QACxC,kBAAkB,EAAE,2BAA2B;KAChD;IAED,SAAS,EAAE;QACT,YAAY,EAAE,0BAA0B;QACxC,sBAAsB,EAAE,qCAAqC;QAC7D,WAAW,EAAE,wBAAwB;KACtC;IAED,+EAA+E;IAC/E,GAAG,CAAC,OAAe;QACjB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,gGAAgG;IAChG,SAAS,CAAC,OAAe,EAAE,aAAqB;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;YACrC,OAAO,aAAa,CAAC;SACtB;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACjB,OAAO,aAAa,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY;QACV,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAC/C,CAAC;CACF,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from './file.config.js';
2
- export { RoleRegister, RoleConfig, BucketConfig } from './role.registry.js';
3
2
  import { fsa as fsaSource } from '@chunkd/fs';
4
3
  import { FileConfig } from './file.config.js';
5
4
  export declare type FsaJson = typeof fsaSource & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAM9C,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAI9D,oBAAY,OAAO,GAAG,OAAO,SAAS,GAAG;IACvC,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,sCAAsC;IACtC,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,GAAG,SAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ9C,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAI9D,oBAAY,OAAO,GAAG,OAAO,SAAS,GAAG;IACvC,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,sCAAsC;IACtC,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,GAAG,SAA8B,CAAC"}
@@ -1,12 +1,13 @@
1
1
  export * from './file.config.js';
2
- export { RoleRegister } from './role.registry.js';
3
2
  import { parseUri } from '@chunkd/core';
4
3
  import { fsa as fsaSource } from '@chunkd/fs';
5
4
  import { FsAwsS3 } from '@chunkd/source-aws';
6
- import { AwsCredentials } from '@chunkd/source-aws-v2';
5
+ import { AwsCredentials, FsAwsS3ProviderV2 } from '@chunkd/source-aws-v2';
7
6
  import S3 from 'aws-sdk/clients/s3.js';
8
7
  import { promisify } from 'util';
9
8
  import { createGzip, gunzip } from 'zlib';
9
+ import { Env } from '../const.js';
10
+ import { LogConfig } from '../log.js';
10
11
  import { isConfigS3Role } from './file.config.js';
11
12
  const pGunzip = promisify(gunzip);
12
13
  export const fsa = fsaSource;
@@ -41,5 +42,15 @@ fsa.configure = function configure(cfg) {
41
42
  const bucketUri = `s3://${res.bucket}/`;
42
43
  this.register(bucketUri, AwsCredentials.fsFromRole(cfg.roleArn, cfg.externalId));
43
44
  };
44
- fsa.register('s3://', new FsAwsS3(new S3()));
45
+ const s3Fs = new FsAwsS3(new S3());
46
+ fsa.register('s3://', s3Fs);
47
+ const bucketProviderConfig = Env.get(Env.AwsRoleConfigPath);
48
+ if (bucketProviderConfig != null) {
49
+ const provider = new FsAwsS3ProviderV2(bucketProviderConfig, fsa);
50
+ provider.onFileSystemCreated = (ro, fs) => {
51
+ LogConfig.get().debug({ roleArn: ro.roleArn, prefix: ro.prefix }, 'FileSystem:Registered');
52
+ fsa.register(ro.prefix, fs);
53
+ };
54
+ s3Fs.credentials = provider;
55
+ }
45
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAA4B,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAsC,CAAC;AASvE,MAAM,CAAC,MAAM,GAAG,GAAG,SAA2B,CAAC;AAE/C,GAAG,CAAC,QAAQ,GAAG,KAAK,UAAU,QAAQ,CAAI,QAAgB;IACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAM,CAAC;KAC1D;SAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAM,CAAC;KACzC;AACH,CAAC,CAAC;AAEF,GAAG,CAAC,SAAS,GAAG,KAAK,UAAU,SAAS,CAAI,QAAgB,EAAE,GAAM;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACnC;SAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACnC;AACH,CAAC,CAAC;AAEF,GAAG,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,GAAe;IAChD,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,uBAAuB;IACtD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,mDAAmD;IAErF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACnF,CAAC,CAAC;AAEF,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export { Config } from '@basemaps/config';
2
1
  export { Const, Env } from './const.js';
3
2
  export { LogConfig, LogType } from './log.js';
4
3
  export * from './api.js';
@@ -6,6 +5,8 @@ export { V, VNode, VNodeElement, VNodeText } from './vdom.js';
6
5
  export { CompositeError } from './composite.error.js';
7
6
  export { LoggerFatalError } from './logger.fatal.error.js';
8
7
  export { TileSetName, TileSetNameValues } from './proj/tile.set.name.js';
8
+ export { setDefaultConfig, getDefaultConfig } from './config.js';
9
+ export { toQueryString } from './url.js';
9
10
  export * from './proj/projection.js';
10
11
  export * from './file/index.js';
11
12
  export * from './util.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
package/build/index.js CHANGED
@@ -1,9 +1,5 @@
1
1
  // Force aws-sdk connection reuse
2
2
  process.env['AWS_NODEJS_CONNECTION_REUSE_ENABLED'] = '1';
3
- import { Config, ConfigProviderDynamo } from '@basemaps/config';
4
- import { Const } from './const.js';
5
- Config.setConfigProvider(new ConfigProviderDynamo(Const.TileMetadata.TableName));
6
- export { Config } from '@basemaps/config';
7
3
  export { Const, Env } from './const.js';
8
4
  export { LogConfig } from './log.js';
9
5
  export * from './api.js';
@@ -11,6 +7,8 @@ export { V, VNode, VNodeElement, VNodeText } from './vdom.js';
11
7
  export { CompositeError } from './composite.error.js';
12
8
  export { LoggerFatalError } from './logger.fatal.error.js';
13
9
  export { TileSetName, TileSetNameValues } from './proj/tile.set.name.js';
10
+ export { setDefaultConfig, getDefaultConfig } from './config.js';
11
+ export { toQueryString } from './url.js';
14
12
  export * from './proj/projection.js';
15
13
  export * from './file/index.js';
16
14
  export * from './util.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,GAAG,GAAG,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,iBAAiB,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAW,MAAM,UAAU,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,GAAG,GAAG,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAW,MAAM,UAAU,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
package/build/url.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ /** Convert to a a sorted query string or empty string if no query parameters are provided */
2
+ export declare function toQueryString(r: Record<string, string | null | undefined>): string;
3
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAelF"}
package/build/url.js ADDED
@@ -0,0 +1,18 @@
1
+ /** Convert to a a sorted query string or empty string if no query parameters are provided */
2
+ export function toQueryString(r) {
3
+ const entries = Object.entries(r);
4
+ if (entries.length === 0)
5
+ return '';
6
+ const search = new URLSearchParams();
7
+ for (const e of entries) {
8
+ if (e[1] == null)
9
+ continue;
10
+ search.set(e[0], e[1]);
11
+ }
12
+ search.sort();
13
+ const query = search.toString();
14
+ if (query === '')
15
+ return '';
16
+ return `?${query}`;
17
+ }
18
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,CAA4C;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;YAAE,SAAS;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,MAAM,CAAC,IAAI,EAAE,CAAC;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,IAAI,KAAK,EAAE,CAAC;AACrB,CAAC"}
package/build/vdom.js CHANGED
@@ -99,7 +99,7 @@ export class VNodeElement extends VNode {
99
99
  const val = this.attrs[key];
100
100
  if (val == null)
101
101
  continue;
102
- out += ` ${key}="${val}"`;
102
+ out += ` ${key}="${escapeUTF8(val)}"`;
103
103
  }
104
104
  return out;
105
105
  }
package/build/vdom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vdom.js","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vdom.js","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE7D;;IAEI;AACJ,MAAM,OAAgB,KAAK;IACzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,GAAG,CAAC;QAChB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACnC,CAAC;CAIF;AAED;;IAEI;AACJ,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGlC,YAAY,IAAY;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,KAAK,GAAG,CAAC;QAChB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,WAAW,CAAC,CAAS;QACvB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAChB,CAAC;CACF;AAED;;IAEI;AACJ,MAAM,OAAO,YAAa,SAAQ,KAAK;IAKrC,YAAY,GAAW,EAAE,KAA6B,EAAE,QAAiB;QACvE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;SACrC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,WAAW,CAAC,CAAS;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,QAAQ,CAAC,KAAK,GAAG,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;QAEhD,IAAI,QAAQ,KAAK,EAAE;YAAE,OAAO,GAAG,MAAM,KAAK,CAAC;QAC3C,OAAO,GAAG,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,CAAC,IAAI,CAAC,GAAW;QACf,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,IAAI,CAAC,GAAW,EAAE,GAAG,IAAc;QACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,CAAC,eAAe;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,KAAK,YAAY,YAAY;gBAAE,MAAM,KAAK,CAAC;QAElF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,GAAG,IAAI,IAAI;gBAAE,SAAS;YAC1B,GAAG,IAAI,IAAI,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;SACvC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,gBAAgB,CAAC,KAAK,GAAG,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,EAAE,YAAY,SAAS;gBAAE,OAAO,EAAE,CAAC,WAAW,CAAC;SACpD;QACD,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7F,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,QAAoC;IAC7D,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAO,EAAE,CAAC;KACX;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,UAAU,GAAY,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;YACxB,IAAI,CAAC,IAAI,IAAI;gBAAE,SAAS;YACxB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;gBAClD,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,SAAS;aACV;YAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,OAAO,UAAU,CAAC;KACnB;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QACvE,OAAO,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC1C;IACD,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC;AAmBD,MAAM,UAAU,CAAC,CAAC,GAAW,EAAE,IAAU,EAAE,QAAoC;IAC7E,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ,EAAE;QACb,IAAI,QAAQ,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACvD,QAAQ,GAAG,IAAI,CAAC;KACjB;IAED,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basemaps/shared",
3
- "version": "6.34.0",
3
+ "version": "6.35.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,10 +23,11 @@
23
23
  "test": "ospec --globs 'build/**/*.test.js'"
24
24
  },
25
25
  "dependencies": {
26
- "@basemaps/config": "^6.34.0",
26
+ "@basemaps/config": "^6.35.0",
27
27
  "@basemaps/geo": "^6.32.1",
28
- "@basemaps/tiler": "^6.32.1",
29
- "@chunkd/source-aws-v2": "^8.4.0",
28
+ "@basemaps/tiler": "^6.35.0",
29
+ "@chunkd/fs": "^8.5.1",
30
+ "@chunkd/source-aws-v2": "^8.5.1",
30
31
  "@linzjs/geojson": "^6.32.1",
31
32
  "@linzjs/metrics": "^6.32.1",
32
33
  "aws-sdk": "^2.890.0",
@@ -39,7 +40,6 @@
39
40
  },
40
41
  "devDependencies": {
41
42
  "@types/aws-lambda": "^8.10.75",
42
- "@types/geojson": "^7946.0.7",
43
43
  "@types/proj4": "^2.5.2",
44
44
  "@types/sax": "^1.2.1"
45
45
  },
@@ -49,5 +49,5 @@
49
49
  "files": [
50
50
  "build/"
51
51
  ],
52
- "gitHead": "1685fa12be66df74bc64d7f76b7355390980a43f"
52
+ "gitHead": "dcebd7149ab318ea979b5d1ba34a9f82fc41b935"
53
53
  }
@@ -1,25 +0,0 @@
1
- export interface RoleConfig {
2
- bucket: string;
3
- accountId: string;
4
- roleArn: string;
5
- externalId?: string;
6
- roleSessionDuration?: number;
7
- }
8
- export interface BucketConfig {
9
- v: number;
10
- buckets: RoleConfig[];
11
- version: string;
12
- package: string;
13
- hash: string;
14
- updatedAt: string;
15
- }
16
- /** Attempt to list the target path, if it fails with a 403 Forbidden assume we do not have permission to do read it */
17
- export declare function canRead(path: string): Promise<boolean>;
18
- export declare class RoleRegister {
19
- /** Get all imagery source aws roles */
20
- static _loadRoles(): Promise<RoleConfig[]>;
21
- static _loadRolesPromise: Promise<RoleConfig[]> | undefined;
22
- static loadRoles(): Promise<RoleConfig[]>;
23
- static findRole(path: string): Promise<RoleConfig | undefined>;
24
- }
25
- //# sourceMappingURL=role.registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.registry.d.ts","sourceRoot":"","sources":["../../src/file/role.registry.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,uHAAuH;AACvH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU5D;AAED,qBAAa,YAAY;IACvB,uCAAuC;WAC1B,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAOhD,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5D,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;WAK5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CAerE"}
@@ -1,52 +0,0 @@
1
- import { Env } from '../const.js';
2
- import { fsa } from '@chunkd/fs';
3
- import { AwsCredentials } from '@chunkd/source-aws-v2';
4
- function isForbidden(e) {
5
- if (typeof e !== 'object')
6
- return false;
7
- if (e == null)
8
- return false;
9
- return e.code === 403;
10
- }
11
- /** Attempt to list the target path, if it fails with a 403 Forbidden assume we do not have permission to do read it */
12
- export async function canRead(path) {
13
- try {
14
- await fsa.list(path).next();
15
- return true;
16
- }
17
- catch (e) {
18
- // Permission denied
19
- if (isForbidden(e))
20
- return false;
21
- // Un related error
22
- throw e;
23
- }
24
- }
25
- export class RoleRegister {
26
- /** Get all imagery source aws roles */
27
- static async _loadRoles() {
28
- const configPath = Env.get(Env.AwsRoleConfigPath);
29
- if (configPath == null)
30
- return [];
31
- const config = await fsa.readJson(configPath);
32
- return config.buckets;
33
- }
34
- static loadRoles() {
35
- if (RoleRegister._loadRolesPromise == null)
36
- RoleRegister._loadRolesPromise = this._loadRoles();
37
- return RoleRegister._loadRolesPromise;
38
- }
39
- static async findRole(path) {
40
- const isAbleToRead = await canRead(path);
41
- // If we can directly read/write this path we don't need to register a role for it
42
- if (isAbleToRead)
43
- return;
44
- const roles = await this.loadRoles();
45
- const targetRole = roles.find((f) => path.startsWith(`s3://${f.bucket}`));
46
- if (targetRole == null)
47
- throw new Error(`Failed to read ${path}`);
48
- fsa.register(`s3://${targetRole.bucket}`, AwsCredentials.fsFromRole(targetRole.roleArn, targetRole.externalId, targetRole.roleSessionDuration));
49
- return targetRole;
50
- }
51
- }
52
- //# sourceMappingURL=role.registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.registry.js","sourceRoot":"","sources":["../../src/file/role.registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAQ,CAAuB,CAAC,IAAI,KAAK,GAAG,CAAC;AAC/C,CAAC;AAED,uHAAuH;AACvH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,IAAI;QACF,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAU,EAAE;QACnB,oBAAoB;QACpB,IAAI,WAAW,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACjC,mBAAmB;QACnB,MAAM,CAAC,CAAC;KACT;AACH,CAAC;AAED,MAAM,OAAO,YAAY;IACvB,uCAAuC;IACvC,MAAM,CAAC,KAAK,CAAC,UAAU;QACrB,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAGD,MAAM,CAAC,SAAS;QACd,IAAI,YAAY,CAAC,iBAAiB,IAAI,IAAI;YAAE,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/F,OAAO,YAAY,CAAC,iBAAiB,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,kFAAkF;QAClF,IAAI,YAAY;YAAE,OAAO;QAEzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,UAAU,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAElE,GAAG,CAAC,QAAQ,CACV,QAAQ,UAAU,CAAC,MAAM,EAAE,EAC3B,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,mBAAmB,CAAC,CACrG,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}