@basemaps/cli 6.45.0 → 7.0.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 +31 -0
- package/README.md +10 -108
- package/build/cli/config/action.bundle.d.ts.map +1 -1
- package/build/cli/config/action.bundle.js +2 -4
- package/build/cli/config/action.bundle.js.map +1 -1
- package/build/cli/config/action.import.d.ts +3 -3
- package/build/cli/config/action.import.d.ts.map +1 -1
- package/build/cli/config/action.import.js.map +1 -1
- package/build/cli/config/config.update.d.ts.map +1 -1
- package/build/cli/config/config.update.js +2 -2
- package/build/cli/config/config.update.js.map +1 -1
- package/build/cli/index.d.ts.map +1 -1
- package/build/cli/index.js +4 -13
- package/build/cli/index.js.map +1 -1
- package/build/cli/overview/action.create.overview.d.ts +2 -0
- package/build/cli/overview/action.create.overview.d.ts.map +1 -1
- package/build/cli/overview/action.create.overview.js +5 -1
- package/build/cli/overview/action.create.overview.js.map +1 -1
- package/build/cli/util.d.ts +1 -6
- package/build/cli/util.d.ts.map +1 -1
- package/build/cli/util.js +19 -27
- package/build/cli/util.js.map +1 -1
- package/build/cog/builder.d.ts +1 -1
- package/build/cog/builder.d.ts.map +1 -1
- package/build/cog/builder.js +1 -1
- package/build/cog/builder.js.map +1 -1
- package/build/cog/cutline.d.ts +1 -1
- package/build/cog/cutline.d.ts.map +1 -1
- package/build/cog/cutline.js +1 -1
- package/build/cog/cutline.js.map +1 -1
- package/package.json +10 -15
- package/build/cli/base.cli.d.ts +0 -1
- package/build/cli/base.cli.d.ts.map +0 -1
- package/build/cli/base.cli.js +0 -2
- package/build/cli/base.cli.js.map +0 -1
- package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
- package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
- package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
- package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
- package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/semver.test.js +0 -62
- package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
- package/build/cli/cogify/action.cog.d.ts +0 -20
- package/build/cli/cogify/action.cog.d.ts.map +0 -1
- package/build/cli/cogify/action.cog.js +0 -198
- package/build/cli/cogify/action.cog.js.map +0 -1
- package/build/cli/cogify/action.job.d.ts +0 -28
- package/build/cli/cogify/action.job.d.ts.map +0 -1
- package/build/cli/cogify/action.job.js +0 -176
- package/build/cli/cogify/action.job.js.map +0 -1
- package/build/cli/cogify/action.make.cog.d.ts +0 -23
- package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
- package/build/cli/cogify/action.make.cog.js +0 -218
- package/build/cli/cogify/action.make.cog.js.map +0 -1
- package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
- package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
- package/build/cli/cogify/action.make.cog.pr.js +0 -96
- package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
- package/build/cli/cogify/batch.job.d.ts +0 -40
- package/build/cli/cogify/batch.job.d.ts.map +0 -1
- package/build/cli/cogify/batch.job.js +0 -205
- package/build/cli/cogify/batch.job.js.map +0 -1
- package/build/cli/cogify/cutline.d.ts +0 -5
- package/build/cli/cogify/cutline.d.ts.map +0 -1
- package/build/cli/cogify/cutline.js +0 -33
- package/build/cli/cogify/cutline.js.map +0 -1
- package/build/cli/cogify/semver.util.d.ts +0 -24
- package/build/cli/cogify/semver.util.d.ts.map +0 -1
- package/build/cli/cogify/semver.util.js +0 -56
- package/build/cli/cogify/semver.util.js.map +0 -1
- package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
- package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
- package/build/cli/config/action.cog.mapsheet.js +0 -107
- package/build/cli/config/action.cog.mapsheet.js.map +0 -1
- package/build/cli/github/github.d.ts +0 -49
- package/build/cli/github/github.d.ts.map +0 -1
- package/build/cli/github/github.js +0 -107
- package/build/cli/github/github.js.map +0 -1
- package/build/cli/github/make.cog.pr.d.ts +0 -42
- package/build/cli/github/make.cog.pr.d.ts.map +0 -1
- package/build/cli/github/make.cog.pr.js +0 -173
- package/build/cli/github/make.cog.pr.js.map +0 -1
- package/build/cli/sprites/action.sprites.d.ts +0 -11
- package/build/cli/sprites/action.sprites.d.ts.map +0 -1
- package/build/cli/sprites/action.sprites.js +0 -42
- package/build/cli/sprites/action.sprites.js.map +0 -1
- package/build/cog/__tests__/builder.test.d.ts +0 -2
- package/build/cog/__tests__/builder.test.d.ts.map +0 -1
- package/build/cog/__tests__/builder.test.js +0 -81
- package/build/cog/__tests__/builder.test.js.map +0 -1
- package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
- package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.stac.job.test.js +0 -319
- package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
- package/build/cog/__tests__/cog.test.d.ts +0 -2
- package/build/cog/__tests__/cog.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.test.js +0 -91
- package/build/cog/__tests__/cog.test.js.map +0 -1
- package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
- package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.vrt.test.js +0 -229
- package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
- package/build/cog/__tests__/cutline.test.d.ts +0 -2
- package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
- package/build/cog/__tests__/cutline.test.js +0 -300
- package/build/cog/__tests__/cutline.test.js.map +0 -1
- package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
- package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
- package/build/cog/__tests__/projection.loader.test.js +0 -27
- package/build/cog/__tests__/projection.loader.test.js.map +0 -1
- package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
- package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
- package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
- package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
- package/build/cog/cog.d.ts +0 -22
- package/build/cog/cog.d.ts.map +0 -1
- package/build/cog/cog.js +0 -72
- package/build/cog/cog.js.map +0 -1
- package/build/cog/cog.stac.job.d.ts +0 -106
- package/build/cog/cog.stac.job.d.ts.map +0 -1
- package/build/cog/cog.stac.job.js +0 -257
- package/build/cog/cog.stac.job.js.map +0 -1
- package/build/cog/cog.vrt.d.ts +0 -18
- package/build/cog/cog.vrt.d.ts.map +0 -1
- package/build/cog/cog.vrt.js +0 -102
- package/build/cog/cog.vrt.js.map +0 -1
- package/build/cog/constants.d.ts +0 -5
- package/build/cog/constants.d.ts.map +0 -1
- package/build/cog/constants.js +0 -5
- package/build/cog/constants.js.map +0 -1
- package/build/cog/job.factory.d.ts +0 -10
- package/build/cog/job.factory.d.ts.map +0 -1
- package/build/cog/job.factory.js +0 -92
- package/build/cog/job.factory.js.map +0 -1
- package/build/cog/projection.loader.d.ts +0 -13
- package/build/cog/projection.loader.d.ts.map +0 -1
- package/build/cog/projection.loader.js +0 -27
- package/build/cog/projection.loader.js.map +0 -1
- package/build/cog/stac.d.ts +0 -32
- package/build/cog/stac.d.ts.map +0 -1
- package/build/cog/stac.js +0 -3
- package/build/cog/stac.js.map +0 -1
- package/build/cog/types.d.ts +0 -83
- package/build/cog/types.d.ts.map +0 -1
- package/build/cog/types.js +0 -2
- package/build/cog/types.js.map +0 -1
- package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
- package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
- package/build/gdal/__tests__/gdal.progress.test.js +0 -22
- package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
- package/build/gdal/__tests__/gdal.test.d.ts +0 -2
- package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
- package/build/gdal/__tests__/gdal.test.js +0 -52
- package/build/gdal/__tests__/gdal.test.js.map +0 -1
- package/build/gdal/gdal.cog.d.ts +0 -42
- package/build/gdal/gdal.cog.d.ts.map +0 -1
- package/build/gdal/gdal.cog.js +0 -108
- package/build/gdal/gdal.cog.js.map +0 -1
- package/build/gdal/gdal.command.d.ts +0 -44
- package/build/gdal/gdal.command.d.ts.map +0 -1
- package/build/gdal/gdal.command.js +0 -87
- package/build/gdal/gdal.command.js.map +0 -1
- package/build/gdal/gdal.config.d.ts +0 -51
- package/build/gdal/gdal.config.d.ts.map +0 -1
- package/build/gdal/gdal.config.js +0 -23
- package/build/gdal/gdal.config.js.map +0 -1
- package/build/gdal/gdal.d.ts +0 -19
- package/build/gdal/gdal.d.ts.map +0 -1
- package/build/gdal/gdal.docker.d.ts +0 -18
- package/build/gdal/gdal.docker.d.ts.map +0 -1
- package/build/gdal/gdal.docker.js +0 -82
- package/build/gdal/gdal.docker.js.map +0 -1
- package/build/gdal/gdal.js +0 -28
- package/build/gdal/gdal.js.map +0 -1
- package/build/gdal/gdal.local.d.ts +0 -10
- package/build/gdal/gdal.local.d.ts.map +0 -1
- package/build/gdal/gdal.local.js +0 -22
- package/build/gdal/gdal.local.js.map +0 -1
- package/build/gdal/gdal.progress.d.ts +0 -16
- package/build/gdal/gdal.progress.d.ts.map +0 -1
- package/build/gdal/gdal.progress.js +0 -50
- package/build/gdal/gdal.progress.js.map +0 -1
- package/build/index.d.ts +0 -6
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -6
- package/build/index.js.map +0 -1
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
const UrbanRuralCutLine = {
|
|
2
|
-
href: 's3://linz-basemaps-source/cutline/2020-05-07-cutline-nz-coasts-rural-and-urban.geojson',
|
|
3
|
-
blend: 20,
|
|
4
|
-
};
|
|
5
|
-
const DefaultCutlines = [
|
|
6
|
-
{
|
|
7
|
-
filter: 'sentinel',
|
|
8
|
-
cutline: { href: 's3://linz-basemaps-source/cutline/2020-05-12-cutline-nz-ci.geojson.gz', blend: 5 },
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
filter: 'chatham',
|
|
12
|
-
cutline: { href: 's3://linz-basemaps-source/cutline/2020-05-12-cutline-nz-ci.geojson.gz', blend: 5 },
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
filter: 'geographx',
|
|
16
|
-
cutline: {
|
|
17
|
-
href: 's3://linz-basemaps-source/cutline/2021-11-10-cutline-51153-nz-coastlines-and-islands-polygons-topo-150k.geojson.gz',
|
|
18
|
-
blend: 0,
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
filter: 'topo50',
|
|
23
|
-
cutline: { href: 's3://linz-basemaps-source/cutline/2020-08-10-cutline-topo50.geojson.gz', blend: 0 },
|
|
24
|
-
},
|
|
25
|
-
{ filter: 'satellite', cutline: UrbanRuralCutLine },
|
|
26
|
-
{ filter: 'urban', cutline: UrbanRuralCutLine },
|
|
27
|
-
{ filter: 'rural', cutline: UrbanRuralCutLine },
|
|
28
|
-
];
|
|
29
|
-
export function getCutline(imageryName = '') {
|
|
30
|
-
var _a;
|
|
31
|
-
return (_a = DefaultCutlines.find((f) => imageryName.toLowerCase().includes(f.filter))) === null || _a === void 0 ? void 0 : _a.cutline;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=cutline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cutline.js","sourceRoot":"","sources":["../../../src/cli/cogify/cutline.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,wFAAwF;IAC9F,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB;QACE,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,EAAE,IAAI,EAAE,uEAAuE,EAAE,KAAK,EAAE,CAAC,EAAE;KACrG;IACD;QACE,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,uEAAuE,EAAE,KAAK,EAAE,CAAC,EAAE;KACrG;IACD;QACE,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE;YACP,IAAI,EAAE,oHAAoH;YAC1H,KAAK,EAAE,CAAC;SACT;KACF;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,EAAE,IAAI,EAAE,wEAAwE,EAAE,KAAK,EAAE,CAAC,EAAE;KACtG;IAED,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE;IACnD,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE;IAC/C,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE;CAChD,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,WAAW,GAAG,EAAE;;IACzC,OAAO,MAAA,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,0CAAE,OAAO,CAAC;AAC5F,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export declare const SemVer: {
|
|
2
|
-
/**
|
|
3
|
-
* Encode a semver string into a number
|
|
4
|
-
* @example
|
|
5
|
-
* '0.0.1' => 1
|
|
6
|
-
* 'v0.1.0' => 1024
|
|
7
|
-
* @param v version to encode
|
|
8
|
-
*/
|
|
9
|
-
toNumber(v: string): number;
|
|
10
|
-
/**
|
|
11
|
-
* Decoded a number encoded semver
|
|
12
|
-
* @example 1 => '0.0.1'
|
|
13
|
-
* @param v version to decode
|
|
14
|
-
*/
|
|
15
|
-
fromNumber(v: number): string;
|
|
16
|
-
/**
|
|
17
|
-
* Compare two semver's
|
|
18
|
-
* @param vA version A
|
|
19
|
-
* @param vB version B
|
|
20
|
-
* @returns 0 if equal, >0 if vA > vB, <0 otherwise
|
|
21
|
-
*/
|
|
22
|
-
compare(vA: string, vB: string): number;
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=semver.util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"semver.util.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/semver.util.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM;IACjB;;;;;;OAMG;gBACS,MAAM,GAAG,MAAM;IAmB3B;;;;OAIG;kBACW,MAAM,GAAG,MAAM;IAO7B;;;;;OAKG;gBACS,MAAM,MAAM,MAAM,GAAG,MAAM;CAGxC,CAAC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/** major.minor.patch */
|
|
2
|
-
const MaxLength = 3;
|
|
3
|
-
/** fits into a int32 with out forcing a uint conversion */
|
|
4
|
-
const EncodeBits = 10;
|
|
5
|
-
/** Max size for a single semver number (1024) */
|
|
6
|
-
const MaxEncode = 2 ** EncodeBits - 1;
|
|
7
|
-
export const SemVer = {
|
|
8
|
-
/**
|
|
9
|
-
* Encode a semver string into a number
|
|
10
|
-
* @example
|
|
11
|
-
* '0.0.1' => 1
|
|
12
|
-
* 'v0.1.0' => 1024
|
|
13
|
-
* @param v version to encode
|
|
14
|
-
*/
|
|
15
|
-
toNumber(v) {
|
|
16
|
-
if (v.startsWith('v'))
|
|
17
|
-
v = v.slice(1);
|
|
18
|
-
const chunks = v.split('.');
|
|
19
|
-
if (chunks.length > MaxLength)
|
|
20
|
-
throw new Error(`Failed to parse semver "${v}" too long`);
|
|
21
|
-
let output = 0;
|
|
22
|
-
for (let i = 0; i < chunks.length; i++) {
|
|
23
|
-
const chunk = chunks[i];
|
|
24
|
-
if (chunk === '')
|
|
25
|
-
break;
|
|
26
|
-
const num = parseInt(chunk);
|
|
27
|
-
if (isNaN(num))
|
|
28
|
-
throw new Error(`Failed to parse semver "${v}"`);
|
|
29
|
-
if (num > MaxEncode)
|
|
30
|
-
throw new Error(`Failed to parse semver "${v}" ${chunk} is too large`);
|
|
31
|
-
output |= num << ((MaxLength - i - 1) * EncodeBits);
|
|
32
|
-
}
|
|
33
|
-
return output;
|
|
34
|
-
},
|
|
35
|
-
/**
|
|
36
|
-
* Decoded a number encoded semver
|
|
37
|
-
* @example 1 => '0.0.1'
|
|
38
|
-
* @param v version to decode
|
|
39
|
-
*/
|
|
40
|
-
fromNumber(v) {
|
|
41
|
-
const major = (v >> 20) & MaxEncode;
|
|
42
|
-
const minor = (v >> 10) & MaxEncode;
|
|
43
|
-
const patch = v & MaxEncode;
|
|
44
|
-
return `${major}.${minor}.${patch}`;
|
|
45
|
-
},
|
|
46
|
-
/**
|
|
47
|
-
* Compare two semver's
|
|
48
|
-
* @param vA version A
|
|
49
|
-
* @param vB version B
|
|
50
|
-
* @returns 0 if equal, >0 if vA > vB, <0 otherwise
|
|
51
|
-
*/
|
|
52
|
-
compare(vA, vB) {
|
|
53
|
-
return SemVer.toNumber(vA) - SemVer.toNumber(vB);
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=semver.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"semver.util.js","sourceRoot":"","sources":["../../../src/cli/cogify/semver.util.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,2DAA2D;AAC3D,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,iDAAiD;AACjD,MAAM,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,CAAS;QAChB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAEzF,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,EAAE;gBAAE,MAAM;YAExB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC;YAE5F,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;SACrD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,CAAS;QAClB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;QAC5B,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,EAAU,EAAE,EAAU;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;CACF,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
2
|
-
export declare class CommandCogMapSheet extends CommandLineAction {
|
|
3
|
-
private path;
|
|
4
|
-
private config;
|
|
5
|
-
private output;
|
|
6
|
-
private include;
|
|
7
|
-
private exclude;
|
|
8
|
-
constructor();
|
|
9
|
-
protected onDefineParameters(): void;
|
|
10
|
-
onExecute(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=action.cog.mapsheet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.cog.mapsheet.d.ts","sourceRoot":"","sources":["../../../src/cli/config/action.cog.mapsheet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,4BAA4B,CAAC;AAS3F,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6B;;IAU5C,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAiC9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CA2DjC"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
|
-
import { Bounds } from '@basemaps/geo';
|
|
3
|
-
import { fsa, LogConfig } from '@basemaps/shared';
|
|
4
|
-
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
5
|
-
import * as fgb from 'flatgeobuf/lib/mjs/geojson.js';
|
|
6
|
-
export class CommandCogMapSheet extends CommandLineAction {
|
|
7
|
-
constructor() {
|
|
8
|
-
super({
|
|
9
|
-
actionName: 'create-mapsheet',
|
|
10
|
-
summary: 'Create a cog mapsheet from provided flatgeobuf',
|
|
11
|
-
documentation: 'Given a valid path of raw imagery and create a config bundle file',
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
onDefineParameters() {
|
|
15
|
-
this.path = this.defineStringParameter({
|
|
16
|
-
argumentName: 'PATH',
|
|
17
|
-
parameterLongName: '--path',
|
|
18
|
-
description: 'Path of flatgeobuf, this can be both a local path or s3 location',
|
|
19
|
-
required: true,
|
|
20
|
-
});
|
|
21
|
-
this.config = this.defineStringParameter({
|
|
22
|
-
argumentName: 'CONFIG',
|
|
23
|
-
parameterLongName: '--config',
|
|
24
|
-
description: 'Path of basemaps config json, this can be both a local path or s3 location',
|
|
25
|
-
required: true,
|
|
26
|
-
});
|
|
27
|
-
this.output = this.defineStringParameter({
|
|
28
|
-
argumentName: 'OUTPUT',
|
|
29
|
-
parameterLongName: '--output',
|
|
30
|
-
description: 'Output of the mapsheet file',
|
|
31
|
-
required: true,
|
|
32
|
-
});
|
|
33
|
-
this.include = this.defineStringParameter({
|
|
34
|
-
argumentName: 'INCLUDE',
|
|
35
|
-
parameterLongName: '--include',
|
|
36
|
-
description: 'Include the layers with the pattern in the layer name.',
|
|
37
|
-
required: false,
|
|
38
|
-
});
|
|
39
|
-
this.exclude = this.defineStringParameter({
|
|
40
|
-
argumentName: 'EXCLUDE',
|
|
41
|
-
parameterLongName: '--exclude',
|
|
42
|
-
description: 'Exclude the layers with the pattern in the layer name.',
|
|
43
|
-
required: false,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
async onExecute() {
|
|
47
|
-
const logger = LogConfig.get();
|
|
48
|
-
const path = this.path.value;
|
|
49
|
-
if (path == null)
|
|
50
|
-
throw new Error('Please provide valid a fgb path.');
|
|
51
|
-
const config = this.config.value;
|
|
52
|
-
if (config == null)
|
|
53
|
-
throw new Error('Please provide valid a config path.');
|
|
54
|
-
const include = this.include.value ? new RegExp(this.include.value.toLowerCase(), 'i') : undefined;
|
|
55
|
-
const exclude = this.exclude.value ? new RegExp(this.exclude.value.toLowerCase(), 'i') : undefined;
|
|
56
|
-
const outputPath = this.output.value;
|
|
57
|
-
if (outputPath == null)
|
|
58
|
-
throw new Error('Please provide valid a output path.');
|
|
59
|
-
logger.info({ path }, 'MapSheet:LoadFgb');
|
|
60
|
-
const buf = await fsa.read(path);
|
|
61
|
-
logger.info({ config }, 'MapSheet:LoadConfig');
|
|
62
|
-
const configJson = await fsa.readJson(config);
|
|
63
|
-
const men = ConfigProviderMemory.fromJson(configJson);
|
|
64
|
-
const rest = fgb.deserialize(buf);
|
|
65
|
-
const aerial = await men.TileSet.get('ts_aerial');
|
|
66
|
-
if (aerial == null)
|
|
67
|
-
throw new Error('Invalid config file.');
|
|
68
|
-
const layers = aerial.layers.filter((c) => c[2193] != null && (c.maxZoom == null || c.maxZoom > 19) && (c.minZoom == null || c.minZoom < 32));
|
|
69
|
-
const imageryIds = new Set();
|
|
70
|
-
for (const layer of layers) {
|
|
71
|
-
if (exclude && exclude.test(layer.name))
|
|
72
|
-
continue;
|
|
73
|
-
if (include && !include.test(layer.name))
|
|
74
|
-
continue;
|
|
75
|
-
if (layer[2193] != null)
|
|
76
|
-
imageryIds.add(layer[2193]);
|
|
77
|
-
}
|
|
78
|
-
const imagery = await men.Imagery.getAll(imageryIds);
|
|
79
|
-
const output = [];
|
|
80
|
-
logger.info({ path, config }, 'MapSheet:CreateMapSheet');
|
|
81
|
-
for (const feature of rest.features) {
|
|
82
|
-
if (feature.properties == null)
|
|
83
|
-
continue;
|
|
84
|
-
const sheetCode = feature.properties.sheet_code_id;
|
|
85
|
-
const current = { sheetCode, files: [] };
|
|
86
|
-
output.push(current);
|
|
87
|
-
const bounds = Bounds.fromMultiPolygon(feature.geometry.coordinates);
|
|
88
|
-
for (const layer of layers) {
|
|
89
|
-
if (layer[2193] == null)
|
|
90
|
-
continue;
|
|
91
|
-
const img = imagery.get(layer[2193]);
|
|
92
|
-
if (img == null)
|
|
93
|
-
continue;
|
|
94
|
-
if (img.bounds == null || Bounds.fromJson(img.bounds).intersects(bounds)) {
|
|
95
|
-
for (const file of img.files) {
|
|
96
|
-
if (bounds.intersects(Bounds.fromJson(file))) {
|
|
97
|
-
current.files.push(`${img.uri}/${file.name}.tiff`);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
logger.info({ outputPath }, 'MapSheet:WriteOutput');
|
|
104
|
-
fsa.write(outputPath, JSON.stringify(output, null, 2));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=action.cog.mapsheet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.cog.mapsheet.js","sourceRoot":"","sources":["../../../src/cli/config/action.cog.mapsheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { LogType } from '@basemaps/shared';
|
|
2
|
-
import { Api } from '@octokit/plugin-rest-endpoint-methods/dist-types/types.js';
|
|
3
|
-
export declare class Github {
|
|
4
|
-
repo: string;
|
|
5
|
-
org: string;
|
|
6
|
-
logger: LogType;
|
|
7
|
-
repoName: string;
|
|
8
|
-
octokit: Api;
|
|
9
|
-
constructor(repo: string, logger: LogType);
|
|
10
|
-
isOk: (s: number) => boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Clone the repository
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
clone(): void;
|
|
16
|
-
/**
|
|
17
|
-
* Get branch by name if exists, or create a new branch by name.
|
|
18
|
-
*
|
|
19
|
-
* @returns {branch} github references or the new created branch
|
|
20
|
-
*/
|
|
21
|
-
getBranch(branch: string): string;
|
|
22
|
-
/**
|
|
23
|
-
* Config github user email and user name
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
configUser(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Commit the changes to current branch
|
|
29
|
-
*
|
|
30
|
-
*/
|
|
31
|
-
add(paths: string[]): void;
|
|
32
|
-
/**
|
|
33
|
-
* Commit the changes to current branch
|
|
34
|
-
*
|
|
35
|
-
*/
|
|
36
|
-
commit(message: string): void;
|
|
37
|
-
/**
|
|
38
|
-
* Push the local brach
|
|
39
|
-
*
|
|
40
|
-
*/
|
|
41
|
-
push(): void;
|
|
42
|
-
/**
|
|
43
|
-
* Create pull request
|
|
44
|
-
* This needs to use github API to create Pull request by access token.
|
|
45
|
-
*
|
|
46
|
-
*/
|
|
47
|
-
createPullRequests(branch: string, title: string, draft: boolean): Promise<number>;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=github.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/cli/github/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,GAAG,EAAE,MAAM,2DAA2D,CAAC;AAGhF,qBAAa,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;gBAED,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAazC,IAAI,MAAO,MAAM,KAAG,OAAO,CAAyB;IAEpD;;;OAGG;IACH,KAAK,IAAI,IAAI;IAMb;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAajC;;;OAGG;IACH,UAAU,IAAI,IAAI;IASlB;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAO1B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK7B;;;OAGG;IACH,IAAI,IAAI,IAAI;IAKZ;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAczF"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Env } from '@basemaps/shared';
|
|
2
|
-
import { execFileSync } from 'child_process';
|
|
3
|
-
import { Octokit } from '@octokit/core';
|
|
4
|
-
import { restEndpointMethods } from '@octokit/plugin-rest-endpoint-methods';
|
|
5
|
-
export class Github {
|
|
6
|
-
constructor(repo, logger) {
|
|
7
|
-
this.isOk = (s) => s >= 200 && s <= 299;
|
|
8
|
-
this.repo = repo;
|
|
9
|
-
this.logger = logger;
|
|
10
|
-
const [org, repoName] = repo.split('/');
|
|
11
|
-
if (org == null || repoName == null)
|
|
12
|
-
throw new Error(`Badly formatted repo name: ${repo}`);
|
|
13
|
-
this.org = org;
|
|
14
|
-
this.repoName = repoName;
|
|
15
|
-
const token = Env.get(Env.GitHubToken);
|
|
16
|
-
if (token == null)
|
|
17
|
-
throw new Error('Please set up github token environment variable.');
|
|
18
|
-
this.octokit = restEndpointMethods(new Octokit({ auth: token }));
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Clone the repository
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
clone() {
|
|
25
|
-
const ssh = `git@github.com:${this.repo}.git`;
|
|
26
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Clone');
|
|
27
|
-
execFileSync('git', ['clone', ssh]).toString().trim();
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get branch by name if exists, or create a new branch by name.
|
|
31
|
-
*
|
|
32
|
-
* @returns {branch} github references or the new created branch
|
|
33
|
-
*/
|
|
34
|
-
getBranch(branch) {
|
|
35
|
-
this.logger.info({ branch }, 'GitHub: Get branch');
|
|
36
|
-
try {
|
|
37
|
-
execFileSync('git', ['checkout', branch], { cwd: this.repoName }).toString().trim();
|
|
38
|
-
this.logger.info({ branch }, 'GitHub: Branch Checkout');
|
|
39
|
-
return branch;
|
|
40
|
-
}
|
|
41
|
-
catch (_a) {
|
|
42
|
-
this.logger.info({ branch }, 'GitHub: Create New Branch');
|
|
43
|
-
execFileSync('git', ['checkout', '-b', branch], { cwd: this.repoName }).toString().trim();
|
|
44
|
-
return branch;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Config github user email and user name
|
|
49
|
-
*
|
|
50
|
-
*/
|
|
51
|
-
configUser() {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
const email = (_a = Env.get('GIT_USER_EMAIL')) !== null && _a !== void 0 ? _a : 'basemaps@linz.govt.nz';
|
|
54
|
-
const name = (_b = Env.get('GIT_USER_NAME')) !== null && _b !== void 0 ? _b : 'basemaps[bot]';
|
|
55
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Config User Email');
|
|
56
|
-
execFileSync('git', ['config', 'user.email', email], { cwd: this.repoName }).toString().trim();
|
|
57
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Config User Name');
|
|
58
|
-
execFileSync('git', ['config', 'user.name', name], { cwd: this.repoName }).toString().trim();
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Commit the changes to current branch
|
|
62
|
-
*
|
|
63
|
-
*/
|
|
64
|
-
add(paths) {
|
|
65
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Add Path');
|
|
66
|
-
for (const path of paths) {
|
|
67
|
-
execFileSync('git', ['add', path], { cwd: this.repoName }).toString().trim();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Commit the changes to current branch
|
|
72
|
-
*
|
|
73
|
-
*/
|
|
74
|
-
commit(message) {
|
|
75
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Commit all');
|
|
76
|
-
execFileSync('git', ['commit', '-am', message], { cwd: this.repoName }).toString().trim();
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Push the local brach
|
|
80
|
-
*
|
|
81
|
-
*/
|
|
82
|
-
push() {
|
|
83
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Push');
|
|
84
|
-
execFileSync('git', ['push', 'origin', 'HEAD'], { cwd: this.repoName }).toString().trim();
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Create pull request
|
|
88
|
-
* This needs to use github API to create Pull request by access token.
|
|
89
|
-
*
|
|
90
|
-
*/
|
|
91
|
-
async createPullRequests(branch, title, draft) {
|
|
92
|
-
// Create pull request from the give head
|
|
93
|
-
const response = await this.octokit.rest.pulls.create({
|
|
94
|
-
owner: this.org,
|
|
95
|
-
repo: this.repoName,
|
|
96
|
-
title,
|
|
97
|
-
head: branch,
|
|
98
|
-
base: 'master',
|
|
99
|
-
draft,
|
|
100
|
-
});
|
|
101
|
-
if (!this.isOk(response.status))
|
|
102
|
-
throw new Error('Failed to create pull request.');
|
|
103
|
-
this.logger.info({ branch, url: response.data.html_url }, 'GitHub: Create Pull Request');
|
|
104
|
-
return response.data.number;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=github.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/cli/github/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ConfigLayer, ConfigTileSetRaster, ConfigTileSetVector } from '@basemaps/config';
|
|
2
|
-
import { LogType } from '@basemaps/shared';
|
|
3
|
-
import { Category } from '../cogify/action.make.cog.pr.js';
|
|
4
|
-
import { Github } from './github.js';
|
|
5
|
-
export declare class MakeCogGithub extends Github {
|
|
6
|
-
imagery: string;
|
|
7
|
-
_formatInstalled: boolean;
|
|
8
|
-
constructor(imagery: string, repo: string, logger: LogType);
|
|
9
|
-
/**
|
|
10
|
-
* Install the dependencies for the cloned repo
|
|
11
|
-
*/
|
|
12
|
-
npmInstall(): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Format the config files by prettier
|
|
15
|
-
*/
|
|
16
|
-
formatConfigFile(path?: string): void;
|
|
17
|
-
/**
|
|
18
|
-
* Prepare and create pull request for the aerial tileset config
|
|
19
|
-
*/
|
|
20
|
-
updateRasterTileSet(filename: string, layer: ConfigLayer, category: Category, individual: boolean): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Set the default setting for the category
|
|
23
|
-
*/
|
|
24
|
-
setDefaultConfig(layer: ConfigLayer, category: Category): ConfigLayer;
|
|
25
|
-
/**
|
|
26
|
-
* Add new layer at the bottom of related category
|
|
27
|
-
*/
|
|
28
|
-
addLayer(layer: ConfigLayer, tileSet: ConfigTileSetRaster, category: Category): ConfigTileSetRaster;
|
|
29
|
-
/**
|
|
30
|
-
* Prepare raster tileSet config json
|
|
31
|
-
*/
|
|
32
|
-
prepareRasterTileSetConfig(layer: ConfigLayer, tileSet: ConfigTileSetRaster, category: Category): Promise<ConfigTileSetRaster | undefined>;
|
|
33
|
-
/**
|
|
34
|
-
* Prepare and create pull request for the aerial tileset config
|
|
35
|
-
*/
|
|
36
|
-
updateVectorTileSet(filename: string, layer: ConfigLayer): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Prepare raster tileSet config json
|
|
39
|
-
*/
|
|
40
|
-
prepareVectorTileSetConfig(layer: ConfigLayer, tileSet: ConfigTileSetVector): Promise<ConfigTileSetVector>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=make.cog.pr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"make.cog.pr.d.ts","sourceRoot":"","sources":["../../../src/cli/github/make.cog.pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEX,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAO,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAA0B,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,qBAAa,aAAc,SAAQ,MAAM;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,UAAS;gBACb,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAK1D;;OAEG;IACH,UAAU,IAAI,OAAO;IAMrB;;OAEG;IACH,gBAAgB,CAAC,IAAI,SAAc,GAAG,IAAI;IAM1C;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC;IA4ChB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW;IAOrE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,GAAG,mBAAmB;IAYnG;;OAEG;IACG,0BAA0B,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgC3C;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B9E;;OAEG;IACG,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAUjH"}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { ConfigId, ConfigPrefix, TileSetType, } from '@basemaps/config';
|
|
2
|
-
import { fsa } from '@basemaps/shared';
|
|
3
|
-
import { Category, DefaultCategorySetting } from '../cogify/action.make.cog.pr.js';
|
|
4
|
-
import { Github } from './github.js';
|
|
5
|
-
import { execFileSync } from 'child_process';
|
|
6
|
-
export class MakeCogGithub extends Github {
|
|
7
|
-
constructor(imagery, repo, logger) {
|
|
8
|
-
super(repo, logger);
|
|
9
|
-
this._formatInstalled = false;
|
|
10
|
-
this.imagery = imagery;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Install the dependencies for the cloned repo
|
|
14
|
-
*/
|
|
15
|
-
npmInstall() {
|
|
16
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Npm Install');
|
|
17
|
-
execFileSync('npm', ['install', '--include=dev'], { cwd: this.repoName });
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Format the config files by prettier
|
|
22
|
-
*/
|
|
23
|
-
formatConfigFile(path = './config/') {
|
|
24
|
-
if (!this._formatInstalled)
|
|
25
|
-
this._formatInstalled = this.npmInstall();
|
|
26
|
-
this.logger.info({ repository: this.repo }, 'GitHub: Prettier');
|
|
27
|
-
execFileSync('npx', ['prettier', '-w', path], { cwd: this.repoName });
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Prepare and create pull request for the aerial tileset config
|
|
31
|
-
*/
|
|
32
|
-
async updateRasterTileSet(filename, layer, category, individual) {
|
|
33
|
-
const branch = `feat/bot-config-raster-${this.imagery}`;
|
|
34
|
-
// Clone the basemaps-config repo and checkout branch
|
|
35
|
-
this.clone();
|
|
36
|
-
this.configUser();
|
|
37
|
-
this.getBranch(branch);
|
|
38
|
-
this.logger.info({ imagery: this.imagery }, 'GitHub: Get the master TileSet config file');
|
|
39
|
-
if (individual) {
|
|
40
|
-
// Prepare new standalone tileset config
|
|
41
|
-
const tileSet = {
|
|
42
|
-
type: TileSetType.Raster,
|
|
43
|
-
id: ConfigId.prefix(ConfigPrefix.TileSet, layer.name),
|
|
44
|
-
title: layer.title,
|
|
45
|
-
layers: [layer],
|
|
46
|
-
};
|
|
47
|
-
const tileSetPath = fsa.joinAll('config', 'tileset', 'individual', `${layer.name}.json`);
|
|
48
|
-
const fullPath = fsa.join(this.repoName, tileSetPath);
|
|
49
|
-
await fsa.write(fullPath, JSON.stringify(tileSet));
|
|
50
|
-
// Format the config file by prettier
|
|
51
|
-
this.formatConfigFile(tileSetPath);
|
|
52
|
-
this.add([tileSetPath]);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
// Prepare new aerial tileset config
|
|
56
|
-
const tileSetPath = fsa.joinAll('config', 'tileset', `${filename}.json`);
|
|
57
|
-
const fullPath = fsa.join(this.repoName, tileSetPath);
|
|
58
|
-
const tileSet = await fsa.readJson(fullPath);
|
|
59
|
-
const newTileSet = await this.prepareRasterTileSetConfig(layer, tileSet, category);
|
|
60
|
-
// skip pull request if not an urban or rural imagery
|
|
61
|
-
if (newTileSet == null)
|
|
62
|
-
return;
|
|
63
|
-
await fsa.write(fullPath, JSON.stringify(newTileSet));
|
|
64
|
-
// Format the config file by prettier
|
|
65
|
-
this.formatConfigFile(tileSetPath);
|
|
66
|
-
this.add([tileSetPath]);
|
|
67
|
-
}
|
|
68
|
-
// Commit and push the changes
|
|
69
|
-
const message = `config(raster): Add imagery ${this.imagery} to ${filename} config file.`;
|
|
70
|
-
this.commit(message);
|
|
71
|
-
this.push();
|
|
72
|
-
await this.createPullRequests(branch, message, false);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Set the default setting for the category
|
|
76
|
-
*/
|
|
77
|
-
setDefaultConfig(layer, category) {
|
|
78
|
-
layer.category = category;
|
|
79
|
-
const defaultSetting = DefaultCategorySetting[category];
|
|
80
|
-
if (defaultSetting.minZoom != null && layer.minZoom != null)
|
|
81
|
-
layer.minZoom = defaultSetting.minZoom;
|
|
82
|
-
return layer;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Add new layer at the bottom of related category
|
|
86
|
-
*/
|
|
87
|
-
addLayer(layer, tileSet, category) {
|
|
88
|
-
for (let i = tileSet.layers.length - 1; i >= 0; i--) {
|
|
89
|
-
// Add new layer at the end of category
|
|
90
|
-
if (tileSet.layers[i].category === category) {
|
|
91
|
-
// Find first valid category and insert new record above that.
|
|
92
|
-
tileSet.layers.splice(i + 1, 0, layer);
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return tileSet;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Prepare raster tileSet config json
|
|
100
|
-
*/
|
|
101
|
-
async prepareRasterTileSetConfig(layer, tileSet, category) {
|
|
102
|
-
// Reprocess existing layer
|
|
103
|
-
for (let i = 0; i < tileSet.layers.length; i++) {
|
|
104
|
-
if (tileSet.layers[i].name === layer.name) {
|
|
105
|
-
tileSet.layers[i] = layer;
|
|
106
|
-
return tileSet;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// Set default Config if not existing layer
|
|
110
|
-
this.setDefaultConfig(layer, category);
|
|
111
|
-
// Set layer zoom level and add to latest order
|
|
112
|
-
if (category === Category.Rural) {
|
|
113
|
-
for (let i = 0; i < tileSet.layers.length; i++) {
|
|
114
|
-
// Add new layer above the first Urban
|
|
115
|
-
if (tileSet.layers[i].category === Category.Urban) {
|
|
116
|
-
// Find first valid Urban and insert new record above that.
|
|
117
|
-
tileSet.layers.splice(i, 0, layer);
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
else if (category === Category.Other) {
|
|
123
|
-
// Add new layer at the bottom
|
|
124
|
-
tileSet.layers.push(layer);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this.addLayer(layer, tileSet, category);
|
|
128
|
-
}
|
|
129
|
-
return tileSet;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Prepare and create pull request for the aerial tileset config
|
|
133
|
-
*/
|
|
134
|
-
async updateVectorTileSet(filename, layer) {
|
|
135
|
-
const branch = `feat/bot-config-vector-${this.imagery}`;
|
|
136
|
-
// Clone the basemaps-config repo and checkout branch
|
|
137
|
-
this.clone();
|
|
138
|
-
this.configUser();
|
|
139
|
-
this.getBranch(branch);
|
|
140
|
-
// Prepare new aerial tileset config
|
|
141
|
-
this.logger.info({ imagery: this.imagery }, 'GitHub: Get the master TileSet config file');
|
|
142
|
-
const tileSetPath = fsa.joinAll('config', 'tileset', `${filename}.json`);
|
|
143
|
-
const fullPath = fsa.join(this.repoName, tileSetPath);
|
|
144
|
-
const tileSet = await fsa.readJson(fullPath);
|
|
145
|
-
const newTileSet = await this.prepareVectorTileSetConfig(layer, tileSet);
|
|
146
|
-
// skip pull request if not an urban or rural imagery
|
|
147
|
-
if (newTileSet == null)
|
|
148
|
-
return;
|
|
149
|
-
await fsa.write(fullPath, JSON.stringify(newTileSet));
|
|
150
|
-
// Format the config file by prettier
|
|
151
|
-
this.formatConfigFile(tileSetPath);
|
|
152
|
-
// Commit and push the changes
|
|
153
|
-
const message = `config(vector): Update the ${this.imagery} to ${filename} config file.`;
|
|
154
|
-
this.add([tileSetPath]);
|
|
155
|
-
this.commit(message);
|
|
156
|
-
this.push();
|
|
157
|
-
await this.createPullRequests(branch, message, false);
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Prepare raster tileSet config json
|
|
161
|
-
*/
|
|
162
|
-
async prepareVectorTileSetConfig(layer, tileSet) {
|
|
163
|
-
// Reprocess existing layer
|
|
164
|
-
for (let i = 0; i < tileSet.layers.length; i++) {
|
|
165
|
-
if (tileSet.layers[i].name === layer.name) {
|
|
166
|
-
tileSet.layers[i] = layer;
|
|
167
|
-
return tileSet;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return tileSet;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
//# sourceMappingURL=make.cog.pr.js.map
|