@cogeotiff/cli 6.1.1 → 7.2.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 +39 -0
- package/build/action.dump.tile.d.ts.map +1 -1
- package/build/action.dump.tile.js +2 -2
- package/build/action.info.d.ts.map +1 -1
- package/build/action.info.js +17 -14
- package/build/action.tile.d.ts.map +1 -1
- package/build/action.tile.js +1 -5
- package/build/action.util.d.ts +1 -1
- package/build/action.util.d.ts.map +1 -1
- package/build/action.util.js +3 -4
- package/build/cli.log.d.ts +2 -2
- package/build/cli.log.d.ts.map +1 -1
- package/build/cli.table.js +1 -1
- package/build/util.tile.d.ts +2 -2
- package/build/util.tile.d.ts.map +1 -1
- package/build/util.tile.js +1 -1
- package/package.json +8 -8
- package/src/action.dump.tile.ts +5 -4
- package/src/action.info.ts +19 -16
- package/src/action.tile.ts +1 -6
- package/src/action.util.ts +2 -3
- package/src/util.tile.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,45 @@
|
|
|
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
|
+
# [7.2.0](https://github.com/blacha/cogeotiff/compare/v7.1.0...v7.2.0) (2022-08-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **cli:** correct indentation for gdal metadata ([4b2a153](https://github.com/blacha/cogeotiff/commit/4b2a153b7e4e1071a2d754ff1bc3fc1731a5173a))
|
|
12
|
+
* **core:** sometimes MASK_INTERLEAVED_WITH_IMAGERY is prefixed with a space so trim it ([5002e22](https://github.com/blacha/cogeotiff/commit/5002e22bdd0a6480d210d89ce6878b3e4df0efd9))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# [7.1.0](https://github.com/blacha/cogeotiff/compare/v7.0.0...v7.1.0) (2022-06-22)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **core:** load the ghost header bytes if requested ([b1f0116](https://github.com/blacha/cogeotiff/commit/b1f01164da1ad7deed7c3754e0106ccfea773338))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
* **cli:** log all the ghost options out ([8c67420](https://github.com/blacha/cogeotiff/commit/8c67420c8ec270e908f17dfe944d2323c1bfb682))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# [7.0.0](https://github.com/blacha/cogeotiff/compare/v6.1.1...v7.0.0) (2022-03-17)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Features
|
|
38
|
+
|
|
39
|
+
* **core:** upgrade chunkd and remove logger for internal fetches ([#832](https://github.com/blacha/cogeotiff/issues/832)) ([71bd740](https://github.com/blacha/cogeotiff/commit/71bd7409706e4a82e6a29b2a3fc0e8b25221e9fc))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
6
45
|
## [6.1.1](https://github.com/blacha/cogeotiff/compare/v6.1.0...v6.1.1) (2022-01-26)
|
|
7
46
|
|
|
8
47
|
**Note:** Version bump only for package @cogeotiff/cli
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.dump.tile.d.ts","sourceRoot":"","sources":["../src/action.dump.tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAA2D,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"action.dump.tile.d.ts","sourceRoot":"","sources":["../src/action.dump.tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAA2D,MAAM,4BAA4B,CAAC;AAoBxH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE;QACN,IAAI,EAAE,SAAS,CAAC;QAChB,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;KAC7G,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAwBD,qBAAa,cAAe,SAAQ,iBAAiB;IACjD,OAAO,CAAC,IAAI,CAA2C;IACvD,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAc;;IAYtB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCtE,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBrE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuDhC,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAyBvC"}
|
|
@@ -111,7 +111,7 @@ export class ActionDumpTile extends CommandLineAction {
|
|
|
111
111
|
this.logger.info({ ...img.tileSize, ...img.tileCount }, 'TileInfo');
|
|
112
112
|
const tileCount = img.tileCount;
|
|
113
113
|
// Load all offsets in
|
|
114
|
-
await img.tileOffset.load(
|
|
114
|
+
await img.tileOffset.load();
|
|
115
115
|
for (let x = 0; x < tileCount.x; x++) {
|
|
116
116
|
for (let y = 0; y < tileCount.y; y++) {
|
|
117
117
|
const promise = TileQueue(() => writeTile(tif, x, y, index, output, this.logger));
|
|
@@ -191,4 +191,4 @@ export class ActionDumpTile extends CommandLineAction {
|
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmR1bXAudGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hY3Rpb24uZHVtcC50aWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQTJELE1BQU0sNEJBQTRCLENBQUM7QUFDeEgsT0FBTyxDQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFHN0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDOUIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMscUJBQXFCO0FBQzFDLFNBQVMsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUM5RixDQUFDO0FBRUQsTUFBTSxT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WSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ25DLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGlCQUFpQixFQUFFLFFBQVE7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzFDLFlBQVksRUFBRSxPQUFPO1lBQ3JCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsaUJBQWlCLEVBQUUsU0FBUztZQUM1QixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ3JDLFlBQVksRUFBRSxRQUFRO1lBQ3RCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsaUJBQWlCLEVBQUUsVUFBVTtZQUM3QixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZ1RpZmYsIFRpZmZWZXJzaW9uIH0gZnJvbSAnQGNvZ2VvdGlmZi9jb3JlJztcbmltcG9ydCB7IENvbW1hbmRMaW5lQWN0aW9uLCBDb21tYW5kTGluZUludGVnZXJQYXJhbWV0ZXIsIENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnQHJ1c2hzdGFjay90cy1jb21tYW5kLWxpbmUnO1xuaW1wb3J0IGMgZnJvbSAnYW5zaS1jb2xvcnMnO1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQWN0aW9uVXRpbCwgQ2xpUmVzdWx0TWFwIH0gZnJvbSAnLi9hY3Rpb24udXRpbC5qcyc7XG5pbXBvcnQgeyBsb2dnZXIgYXMgQ2xpTG9nZ2VyIH0gZnJvbSAnLi9jbGkubG9nLmpzJztcbmltcG9ydCB7IHRvQnl0ZVNpemVTdHJpbmcgfSBmcm9tICcuL3V0aWwuYnl0ZXMuanMnO1xuaW1wb3J0IHsgZ2V0VGlsZU5hbWUsIHdyaXRlVGlsZSB9IGZyb20gJy4vdXRpbC50aWxlLmpzJztcbmltcG9ydCBQTGltaXQgZnJvbSAncC1saW1pdCc7XG5pbXBvcnQgeyBDaHVua1NvdXJjZUJhc2UsIExvZ1R5cGUgfSBmcm9tICdAY2h1bmtkL2NvcmUnO1xuXG5jb25zdCBSYWQyRGVnID0gMTgwIC8gTWF0aC5QSTtcbmNvbnN0IEEgPSA2Mzc4MTM3LjA7IC8vIDkwMDkxMyBwcm9wZXJ0aWVzLlxuZnVuY3Rpb24gdG9MYXRMbmcoeDogbnVtYmVyLCB5OiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICByZXR1cm4gWyh4ICogUmFkMkRlZykgLyBBLCAoTWF0aC5QSSAqIDAuNSAtIDIuMCAqIE1hdGguYXRhbihNYXRoLmV4cCgteSAvIEEpKSkgKiBSYWQyRGVnXTtcbn1cblxuY29uc3QgVGlsZVF1ZXVlID0gUExpbWl0KDI1KTtcblxuZXhwb3J0IGludGVyZmFjZSBHZW9Kc29uUG9seWdvbiB7XG4gICAgdHlwZTogJ0ZlYXR1cmUnO1xuICAgIGdlb21ldHJ5OiB7XG4gICAgICAgIHR5cGU6ICdQb2x5Z29uJztcbiAgICAgICAgY29vcmRpbmF0ZXM6IFtbW251bWJlciwgbnVtYmVyXSwgW251bWJlciwgbnVtYmVyXSwgW251bWJlciwgbnVtYmVyXSwgW251bWJlciwgbnVtYmVyXSwgW251bWJlciwgbnVtYmVyXV1dO1xuICAgIH07XG4gICAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmZ1bmN0aW9uIG1ha2VQb2x5Z29uKHhNaW46IG51bWJlciwgeU1pbjogbnVtYmVyLCB4TWF4OiBudW1iZXIsIHlNYXg6IG51bWJlcik6IEdlb0pzb25Qb2x5Z29uIHtcbiAgICBjb25zdCBbbG5nTWluLCBsYXRNaW5dID0gdG9MYXRMbmcoeE1pbiwgeU1pbik7XG4gICAgY29uc3QgW2xuZ01heCwgbGF0TWF4XSA9IHRvTGF0TG5nKHhNYXgsIHlNYXgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBbbG5nTWluLCBsYXRNaW5dLFxuICAgICAgICAgICAgICAgICAgICBbbG5nTWluLCBsYXRNYXhdLFxuICAgICAgICAgICAgICAgICAgICBbbG5nTWF4LCBsYXRNYXhdLFxuICAgICAgICAgICAgICAgICAgICBbbG5nTWF4LCBsYXRNaW5dLFxuICAgICAgICAgICAgICAgICAgICBbbG5nTWluLCBsYXRNaW5dLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EdW1wVGlsZSBleHRlbmRzIENvbW1hbmRMaW5lQWN0aW9uIHtcbiAgICBwcml2YXRlIGZpbGU6IENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBpbWFnZUluZGV4OiBDb21tYW5kTGluZUludGVnZXJQYXJhbWV0ZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIG91dHB1dDogQ29tbWFuZExpbmVTdHJpbmdQYXJhbWV0ZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIG91dHB1dENvdW50ID0gMDtcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nVHlwZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgYWN0aW9uTmFtZTogJ2R1bXAnLFxuICAgICAgICAgICAgc3VtbWFyeTogJ0R1bXAgdGlsZXMgZnJvbSBhIENPRycsXG4gICAgICAgICAgICBkb2N1bWVudGF0aW9uOiAnU3R1ZmYnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBDbGlMb2dnZXIuY2hpbGQoeyBhY3Rpb246ICd0aWxlJyB9KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIHRoaXMgb25seSB3b3JrcyBmb3IgV1NHODRcbiAgICBhc3luYyBkdW1wQm91bmRzKHRpZjogQ29nVGlmZiwgb3V0cHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyh7IGluZGV4IH0sICdDcmVhdGVUaWxlQm91bmRzJyk7XG4gICAgICAgIGNvbnN0IGltZyA9IHRpZi5nZXRJbWFnZShpbmRleCk7XG4gICAgICAgIGlmICghaW1nLmlzVGlsZWQoKSB8fCAhaW1nLmlzR2VvTG9jYXRlZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGZlYXR1cmVzOiBHZW9Kc29uUG9seWdvbltdID0gW107XG4gICAgICAgIGNvbnN0IGZlYXR1cmVDb2xsZWN0aW9uID0ge1xuICAgICAgICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgICAgICAgIGZlYXR1cmVzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHRpbGVDb3VudCA9IGltZy50aWxlQ291bnQ7XG4gICAgICAgIGNvbnN0IHRpbGVJbmZvID0gaW1nLnRpbGVTaXplO1xuICAgICAgICBjb25zdCB0aWxlU2l6ZSA9IGltZy5zaXplO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0SW1hZ2UgPSB0aWYuaW1hZ2VzWzBdO1xuICAgICAgICBjb25zdCBmaXJzdFRpbGVTaXplID0gZmlyc3RJbWFnZS5zaXplO1xuICAgICAgICBjb25zdCBvcmlnaW4gPSBmaXJzdEltYWdlLm9yaWdpbjtcbiAgICAgICAgY29uc3QgcmVzb2x1dGlvbiA9IGZpcnN0SW1hZ2UucmVzb2x1dGlvbjtcblxuICAgICAgICBjb25zdCB4U2NhbGUgPSAocmVzb2x1dGlvblswXSAqIGZpcnN0VGlsZVNpemUud2lkdGgpIC8gdGlsZVNpemUud2lkdGg7XG4gICAgICAgIGNvbnN0IHlTY2FsZSA9IChyZXNvbHV0aW9uWzFdICogZmlyc3RUaWxlU2l6ZS5oZWlnaHQpIC8gdGlsZVNpemUuaGVpZ2h0O1xuXG4gICAgICAgIGZvciAobGV0IHkgPSAwOyB5IDwgdGlsZUNvdW50Lnk7IHkrKykge1xuICAgICAgICAgICAgY29uc3QgeU1heCA9IG9yaWdpblsxXSArIHkgKiB0aWxlSW5mby5oZWlnaHQgKiB5U2NhbGU7XG4gICAgICAgICAgICBjb25zdCB5TWluID0geU1heCArIHRpbGVJbmZvLmhlaWdodCAqIHlTY2FsZTtcbiAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgdGlsZUNvdW50Lng7IHgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHhNaW4gPSBvcmlnaW5bMF0gKyB4ICogdGlsZUluZm8ud2lkdGggKiB4U2NhbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgeE1heCA9IHhNaW4gKyB0aWxlSW5mby53aWR0aCAqIHhTY2FsZTtcbiAgICAgICAgICAgICAgICBmZWF0dXJlcy5wdXNoKG1ha2VQb2x5Z29uKHhNaW4sIHlNaW4sIHhNYXgsIHlNYXgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4ob3V0cHV0LCBgaSR7aW5kZXh9LmJvdW5kcy5nZW9qc29uYCksIEpTT04uc3RyaW5naWZ5KGZlYXR1cmVDb2xsZWN0aW9uLCBudWxsLCAyKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZHVtcEluZGV4KHRpZjogQ29nVGlmZiwgb3V0cHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyh7IGluZGV4IH0sICdDcmVhdGVJbmRleEh0bWwnKTtcbiAgICAgICAgY29uc3QgaW1nID0gdGlmLmdldEltYWdlKGluZGV4KTtcbiAgICAgICAgaWYgKCFpbWcuaXNUaWxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHRpbGVDb3VudCwgdGlsZVNpemUgfSA9IGltZztcblxuICAgICAgICBjb25zdCBzdHlsZXMgPSBgPHN0eWxlPi5jIHsgbWluLXdpZHRoOiAke3RpbGVTaXplLndpZHRofXB4OyBtaW4taGVpZ2h0OiAke3RpbGVTaXplLmhlaWdodH1weCB9PC9zdHlsZT5gO1xuXG4gICAgICAgIGNvbnN0IGh0bWwgPSBbJzxodG1sPicsIHN0eWxlc107XG4gICAgICAgIGZvciAobGV0IHkgPSAwOyB5IDwgdGlsZUNvdW50Lnk7IHkrKykge1xuICAgICAgICAgICAgaHRtbC5wdXNoKCdcXHQ8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O1wiPicpO1xuICAgICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB0aWxlQ291bnQueDsgeCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGlsZSA9IGF3YWl0IHRpZi5nZXRUaWxlKHgsIHksIGluZGV4KTtcbiAgICAgICAgICAgICAgICBpZiAodGlsZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChgXFx0XFx0PGRpdiBjbGFzcz1cImNcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaHRtbC5wdXNoKGBcXHRcXHQ8aW1nIGNsYXNzPVwiY1wiIHNyYz1cIi4vJHtnZXRUaWxlTmFtZSh0aWxlLm1pbWVUeXBlLCBpbmRleCwgeCwgeSl9XCIgPmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodG1sLnB1c2goJ1xcdDwvZGl2PicpO1xuICAgICAgICB9XG4gICAgICAgIGh0bWwucHVzaCgnPC9odG1sPicpO1xuICAgICAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKG91dHB1dCwgJ2luZGV4Lmh0bWwnKSwgaHRtbC5qb2luKCdcXG4nKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZHVtcFRpbGVzKHRpZjogQ29nVGlmZiwgb3V0cHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuICAgICAgICBjb25zdCBpbWcgPSB0aWYuZ2V0SW1hZ2UoaW5kZXgpO1xuICAgICAgICBpZiAoIWltZy5pc1RpbGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oeyAuLi5pbWcudGlsZVNpemUsIC4uLmltZy50aWxlQ291bnQgfSwgJ1RpbGVJbmZvJyk7XG4gICAgICAgIGNvbnN0IHRpbGVDb3VudCA9IGltZy50aWxlQ291bnQ7XG5cbiAgICAgICAgLy8gTG9hZCBhbGwgb2Zmc2V0cyBpblxuICAgICAgICBhd2FpdCBpbWcudGlsZU9mZnNldC5sb2FkKENsaUxvZ2dlcik7XG5cbiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB0aWxlQ291bnQueDsgeCsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IHRpbGVDb3VudC55OyB5KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gVGlsZVF1ZXVlKCgpID0+IHdyaXRlVGlsZSh0aWYsIHgsIHksIGluZGV4LCBvdXRwdXQsIHRoaXMubG9nZ2VyKSk7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm91dHB1dENvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25FeGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmltYWdlSW5kZXggPT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5pbWFnZUluZGV4LnZhbHVlID09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMub3V0cHV0ID09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMub3V0cHV0LnZhbHVlID09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRwdXRDb3VudCA9IDA7XG5cbiAgICAgICAgY29uc3QgeyB0aWYgfSA9IGF3YWl0IEFjdGlvblV0aWwuZ2V0Q29nU291cmNlKHRoaXMuZmlsZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZUluZGV4LnZhbHVlO1xuICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCB8fCBpbmRleCA+IHRpZi5pbWFnZXMubGVuZ3RoIC0gMSB8fCBpbmRleCA8IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckhlbHBUZXh0KCk7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBpbmRleCBsZXZlbCBcIiR7aW5kZXh9XCIgbXVzdCBiZSBiZXR3ZWVuIDAgLSAke3RpZi5pbWFnZXMubGVuZ3RoIC0gMX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGltZyA9IHRpZi5nZXRJbWFnZShpbmRleCk7XG4gICAgICAgIGlmICghaW1nLmlzVGlsZWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1RpZiBmaWxlIGlzIG5vdCB0aWxlZC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHBhdGguam9pbih0aGlzLm91dHB1dC52YWx1ZSwgYGkke2luZGV4fWApO1xuICAgICAgICBhd2FpdCBmcy5ta2RpcihvdXRwdXQsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuZHVtcFRpbGVzKHRpZiwgb3V0cHV0LCBpbmRleCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZHVtcEluZGV4KHRpZiwgb3V0cHV0LCBpbmRleCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZHVtcEJvdW5kcyh0aWYsIHRoaXMub3V0cHV0LnZhbHVlLCBpbmRleCk7XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGlmLnNvdXJjZSBhcyBDaHVua1NvdXJjZUJhc2U7XG4gICAgICAgIGNvbnN0IGNodW5rSWRzID0gWy4uLnNvdXJjZS5jaHVua3MudmFsdWVzKCldO1xuICAgICAgICBjb25zdCByZXN1bHQ6IENsaVJlc3VsdE1hcFtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdUaWZmIHR5cGUnLCB2YWx1ZTogYCR7VGlmZlZlcnNpb25bdGlmLnZlcnNpb25dfSAodiR7U3RyaW5nKHRpZi52ZXJzaW9uKX0pYCB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ0NodW5rIHNpemUnLCB2YWx1ZTogdG9CeXRlU2l6ZVN0cmluZyh0aWYuc291cmNlLmNodW5rU2l6ZSkgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnQnl0ZXMgcmVhZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0b0J5dGVTaXplU3RyaW5nKGNodW5rSWRzLmxlbmd0aCAqIHRpZi5zb3VyY2UuY2h1bmtTaXplKX0gYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCgke2NodW5rSWRzLmxlbmd0aH0gQ2h1bmske2NodW5rSWRzLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnfSlgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnT3V0cHV0JyxcbiAgICAgICAgICAgICAgICBrZXlzOiBbeyBrZXk6ICdJbWFnZXMnLCB2YWx1ZTogdGhpcy5vdXRwdXRDb3VudCB9XSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IG1zZyA9IEFjdGlvblV0aWwuZm9ybWF0UmVzdWx0KGAke2MuYm9sZCgnQ09HIEZpbGUgSW5mbycpfSAtICR7Yy5ib2xkKHRpZi5zb3VyY2UudXJpKX1gLCByZXN1bHQpO1xuICAgICAgICBjb25zb2xlLmxvZyhtc2cuam9pbignXFxuJykpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRGVmaW5lUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlID0gdGhpcy5kZWZpbmVTdHJpbmdQYXJhbWV0ZXIoe1xuICAgICAgICAgICAgYXJndW1lbnROYW1lOiAnRklMRScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJMb25nTmFtZTogJy0tZmlsZScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJTaG9ydE5hbWU6ICctZicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ2NvZyBmaWxlIHRvIGFjY2VzcycsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbWFnZUluZGV4ID0gdGhpcy5kZWZpbmVJbnRlZ2VyUGFyYW1ldGVyKHtcbiAgICAgICAgICAgIGFyZ3VtZW50TmFtZTogJ0lNQUdFJyxcbiAgICAgICAgICAgIHBhcmFtZXRlclNob3J0TmFtZTogJy1pJyxcbiAgICAgICAgICAgIHBhcmFtZXRlckxvbmdOYW1lOiAnLS1pbWFnZScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0ltYWdlIGlkIHRvIGV4cG9ydCAoc3RhcnRpbmcgZnJvbSAwKScsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vdXRwdXQgPSB0aGlzLmRlZmluZVN0cmluZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBhcmd1bWVudE5hbWU6ICdPVVRQVVQnLFxuICAgICAgICAgICAgcGFyYW1ldGVyU2hvcnROYW1lOiAnLW8nLFxuICAgICAgICAgICAgcGFyYW1ldGVyTG9uZ05hbWU6ICctLW91dHB1dCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXJlIHRvIHN0b3JlIHRoZSBvdXRwdXQnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmR1bXAudGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hY3Rpb24uZHVtcC50aWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQTJELE1BQU0sNEJBQTRCLENBQUM7QUFDeEgsT0FBTyxDQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFJN0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDOUIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMscUJBQXFCO0FBQzFDLFNBQVMsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUM5RixDQUFDO0FBRUQsTUFBTSxT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QUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ25DLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGlCQUFpQixFQUFFLFFBQVE7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzFDLFlBQVksRUFBRSxPQUFPO1lBQ3JCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsaUJBQWlCLEVBQUUsU0FBUztZQUM1QixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ3JDLFlBQVksRUFBRSxRQUFRO1lBQ3RCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsaUJBQWlCLEVBQUUsVUFBVTtZQUM3QixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZ1RpZmYsIFRpZmZWZXJzaW9uIH0gZnJvbSAnQGNvZ2VvdGlmZi9jb3JlJztcbmltcG9ydCB7IENvbW1hbmRMaW5lQWN0aW9uLCBDb21tYW5kTGluZUludGVnZXJQYXJhbWV0ZXIsIENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnQHJ1c2hzdGFjay90cy1jb21tYW5kLWxpbmUnO1xuaW1wb3J0IGMgZnJvbSAnYW5zaS1jb2xvcnMnO1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQWN0aW9uVXRpbCwgQ2xpUmVzdWx0TWFwIH0gZnJvbSAnLi9hY3Rpb24udXRpbC5qcyc7XG5pbXBvcnQgeyBsb2dnZXIgYXMgQ2xpTG9nZ2VyIH0gZnJvbSAnLi9jbGkubG9nLmpzJztcbmltcG9ydCB7IHRvQnl0ZVNpemVTdHJpbmcgfSBmcm9tICcuL3V0aWwuYnl0ZXMuanMnO1xuaW1wb3J0IHsgZ2V0VGlsZU5hbWUsIHdyaXRlVGlsZSB9IGZyb20gJy4vdXRpbC50aWxlLmpzJztcbmltcG9ydCBQTGltaXQgZnJvbSAncC1saW1pdCc7XG5pbXBvcnQgeyBDaHVua1NvdXJjZUJhc2UgfSBmcm9tICdAY2h1bmtkL2NvcmUnO1xuaW1wb3J0IHBpbm8gZnJvbSAncGlubyc7XG5cbmNvbnN0IFJhZDJEZWcgPSAxODAgLyBNYXRoLlBJO1xuY29uc3QgQSA9IDYzNzgxMzcuMDsgLy8gOTAwOTEzIHByb3BlcnRpZXMuXG5mdW5jdGlvbiB0b0xhdExuZyh4OiBudW1iZXIsIHk6IG51bWJlcik6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIHJldHVybiBbKHggKiBSYWQyRGVnKSAvIEEsIChNYXRoLlBJICogMC41IC0gMi4wICogTWF0aC5hdGFuKE1hdGguZXhwKC15IC8gQSkpKSAqIFJhZDJEZWddO1xufVxuXG5jb25zdCBUaWxlUXVldWUgPSBQTGltaXQoMjUpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlb0pzb25Qb2x5Z29uIHtcbiAgICB0eXBlOiAnRmVhdHVyZSc7XG4gICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgdHlwZTogJ1BvbHlnb24nO1xuICAgICAgICBjb29yZGluYXRlczogW1tbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdXV07XG4gICAgfTtcbiAgICBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZnVuY3Rpb24gbWFrZVBvbHlnb24oeE1pbjogbnVtYmVyLCB5TWluOiBudW1iZXIsIHhNYXg6IG51bWJlciwgeU1heDogbnVtYmVyKTogR2VvSnNvblBvbHlnb24ge1xuICAgIGNvbnN0IFtsbmdNaW4sIGxhdE1pbl0gPSB0b0xhdExuZyh4TWluLCB5TWluKTtcbiAgICBjb25zdCBbbG5nTWF4LCBsYXRNYXhdID0gdG9MYXRMbmcoeE1heCwgeU1heCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFtsbmdNaW4sIGxhdE1pbl0sXG4gICAgICAgICAgICAgICAgICAgIFtsbmdNaW4sIGxhdE1heF0sXG4gICAgICAgICAgICAgICAgICAgIFtsbmdNYXgsIGxhdE1heF0sXG4gICAgICAgICAgICAgICAgICAgIFtsbmdNYXgsIGxhdE1pbl0sXG4gICAgICAgICAgICAgICAgICAgIFtsbmdNaW4sIGxhdE1pbl0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkR1bXBUaWxlIGV4dGVuZHMgQ29tbWFuZExpbmVBY3Rpb24ge1xuICAgIHByaXZhdGUgZmlsZTogQ29tbWFuZExpbmVTdHJpbmdQYXJhbWV0ZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIGltYWdlSW5kZXg6IENvbW1hbmRMaW5lSW50ZWdlclBhcmFtZXRlciB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgb3V0cHV0OiBDb21tYW5kTGluZVN0cmluZ1BhcmFtZXRlciB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgb3V0cHV0Q291bnQgPSAwO1xuICAgIHByaXZhdGUgbG9nZ2VyOiBwaW5vLkxvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgYWN0aW9uTmFtZTogJ2R1bXAnLFxuICAgICAgICAgICAgc3VtbWFyeTogJ0R1bXAgdGlsZXMgZnJvbSBhIENPRycsXG4gICAgICAgICAgICBkb2N1bWVudGF0aW9uOiAnU3R1ZmYnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBDbGlMb2dnZXIuY2hpbGQoeyBhY3Rpb246ICd0aWxlJyB9KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIHRoaXMgb25seSB3b3JrcyBmb3IgV1NHODRcbiAgICBhc3luYyBkdW1wQm91bmRzKHRpZjogQ29nVGlmZiwgb3V0cHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyh7IGluZGV4IH0sICdDcmVhdGVUaWxlQm91bmRzJyk7XG4gICAgICAgIGNvbnN0IGltZyA9IHRpZi5nZXRJbWFnZShpbmRleCk7XG4gICAgICAgIGlmICghaW1nLmlzVGlsZWQoKSB8fCAhaW1nLmlzR2VvTG9jYXRlZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGZlYXR1cmVzOiBHZW9Kc29uUG9seWdvbltdID0gW107XG4gICAgICAgIGNvbnN0IGZlYXR1cmVDb2xsZWN0aW9uID0ge1xuICAgICAgICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgICAgICAgIGZlYXR1cmVzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHRpbGVDb3VudCA9IGltZy50aWxlQ291bnQ7XG4gICAgICAgIGNvbnN0IHRpbGVJbmZvID0gaW1nLnRpbGVTaXplO1xuICAgICAgICBjb25zdCB0aWxlU2l6ZSA9IGltZy5zaXplO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0SW1hZ2UgPSB0aWYuaW1hZ2VzWzBdO1xuICAgICAgICBjb25zdCBmaXJzdFRpbGVTaXplID0gZmlyc3RJbWFnZS5zaXplO1xuICAgICAgICBjb25zdCBvcmlnaW4gPSBmaXJzdEltYWdlLm9yaWdpbjtcbiAgICAgICAgY29uc3QgcmVzb2x1dGlvbiA9IGZpcnN0SW1hZ2UucmVzb2x1dGlvbjtcblxuICAgICAgICBjb25zdCB4U2NhbGUgPSAocmVzb2x1dGlvblswXSAqIGZpcnN0VGlsZVNpemUud2lkdGgpIC8gdGlsZVNpemUud2lkdGg7XG4gICAgICAgIGNvbnN0IHlTY2FsZSA9IChyZXNvbHV0aW9uWzFdICogZmlyc3RUaWxlU2l6ZS5oZWlnaHQpIC8gdGlsZVNpemUuaGVpZ2h0O1xuXG4gICAgICAgIGZvciAobGV0IHkgPSAwOyB5IDwgdGlsZUNvdW50Lnk7IHkrKykge1xuICAgICAgICAgICAgY29uc3QgeU1heCA9IG9yaWdpblsxXSArIHkgKiB0aWxlSW5mby5oZWlnaHQgKiB5U2NhbGU7XG4gICAgICAgICAgICBjb25zdCB5TWluID0geU1heCArIHRpbGVJbmZvLmhlaWdodCAqIHlTY2FsZTtcbiAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgdGlsZUNvdW50Lng7IHgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHhNaW4gPSBvcmlnaW5bMF0gKyB4ICogdGlsZUluZm8ud2lkdGggKiB4U2NhbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgeE1heCA9IHhNaW4gKyB0aWxlSW5mby53aWR0aCAqIHhTY2FsZTtcbiAgICAgICAgICAgICAgICBmZWF0dXJlcy5wdXNoKG1ha2VQb2x5Z29uKHhNaW4sIHlNaW4sIHhNYXgsIHlNYXgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4ob3V0cHV0LCBgaSR7aW5kZXh9LmJvdW5kcy5nZW9qc29uYCksIEpTT04uc3RyaW5naWZ5KGZlYXR1cmVDb2xsZWN0aW9uLCBudWxsLCAyKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZHVtcEluZGV4KHRpZjogQ29nVGlmZiwgb3V0cHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyh7IGluZGV4IH0sICdDcmVhdGVJbmRleEh0bWwnKTtcbiAgICAgICAgY29uc3QgaW1nID0gdGlmLmdldEltYWdlKGluZGV4KTtcbiAgICAgICAgaWYgKCFpbWcuaXNUaWxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHRpbGVDb3VudCwgdGlsZVNpemUgfSA9IGltZztcblxuICAgICAgICBjb25zdCBzdHlsZXMgPSBgPHN0eWxlPi5jIHsgbWluLXdpZHRoOiAke3RpbGVTaXplLndpZHRofXB4OyBtaW4taGVpZ2h0OiAke3RpbGVTaXplLmhlaWdodH1weCB9PC9zdHlsZT5gO1xuXG4gICAgICAgIGNvbnN0IGh0bWwgPSBbJzxodG1sPicsIHN0eWxlc107XG4gICAgICAgIGZvciAobGV0IHkgPSAwOyB5IDwgdGlsZUNvdW50Lnk7IHkrKykge1xuICAgICAgICAgICAgaHRtbC5wdXNoKCdcXHQ8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O1wiPicpO1xuICAgICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB0aWxlQ291bnQueDsgeCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGlsZSA9IGF3YWl0IHRpZi5nZXRUaWxlKHgsIHksIGluZGV4KTtcbiAgICAgICAgICAgICAgICBpZiAodGlsZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChgXFx0XFx0PGRpdiBjbGFzcz1cImNcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaHRtbC5wdXNoKGBcXHRcXHQ8aW1nIGNsYXNzPVwiY1wiIHNyYz1cIi4vJHtnZXRUaWxlTmFtZSh0aWxlLm1pbWVUeXBlLCBpbmRleCwgeCwgeSl9XCIgPmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodG1sLnB1c2goJ1xcdDwvZGl2PicpO1xuICAgICAgICB9XG4gICAgICAgIGh0bWwucHVzaCgnPC9odG1sPicpO1xuICAgICAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKG91dHB1dCwgJ2luZGV4Lmh0bWwnKSwgaHRtbC5qb2luKCdcXG4nKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZHVtcFRpbGVzKHRpZjogQ29nVGlmZiwgb3V0cHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuICAgICAgICBjb25zdCBpbWcgPSB0aWYuZ2V0SW1hZ2UoaW5kZXgpO1xuICAgICAgICBpZiAoIWltZy5pc1RpbGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oeyAuLi5pbWcudGlsZVNpemUsIC4uLmltZy50aWxlQ291bnQgfSwgJ1RpbGVJbmZvJyk7XG4gICAgICAgIGNvbnN0IHRpbGVDb3VudCA9IGltZy50aWxlQ291bnQ7XG5cbiAgICAgICAgLy8gTG9hZCBhbGwgb2Zmc2V0cyBpblxuICAgICAgICBhd2FpdCBpbWcudGlsZU9mZnNldC5sb2FkKCk7XG5cbiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB0aWxlQ291bnQueDsgeCsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IHRpbGVDb3VudC55OyB5KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gVGlsZVF1ZXVlKCgpID0+IHdyaXRlVGlsZSh0aWYsIHgsIHksIGluZGV4LCBvdXRwdXQsIHRoaXMubG9nZ2VyKSk7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm91dHB1dENvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25FeGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmltYWdlSW5kZXggPT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5pbWFnZUluZGV4LnZhbHVlID09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMub3V0cHV0ID09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMub3V0cHV0LnZhbHVlID09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRwdXRDb3VudCA9IDA7XG5cbiAgICAgICAgY29uc3QgeyB0aWYgfSA9IGF3YWl0IEFjdGlvblV0aWwuZ2V0Q29nU291cmNlKHRoaXMuZmlsZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZUluZGV4LnZhbHVlO1xuICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCB8fCBpbmRleCA+IHRpZi5pbWFnZXMubGVuZ3RoIC0gMSB8fCBpbmRleCA8IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckhlbHBUZXh0KCk7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBpbmRleCBsZXZlbCBcIiR7aW5kZXh9XCIgbXVzdCBiZSBiZXR3ZWVuIDAgLSAke3RpZi5pbWFnZXMubGVuZ3RoIC0gMX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGltZyA9IHRpZi5nZXRJbWFnZShpbmRleCk7XG4gICAgICAgIGlmICghaW1nLmlzVGlsZWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1RpZiBmaWxlIGlzIG5vdCB0aWxlZC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHBhdGguam9pbih0aGlzLm91dHB1dC52YWx1ZSwgYGkke2luZGV4fWApO1xuICAgICAgICBhd2FpdCBmcy5ta2RpcihvdXRwdXQsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuZHVtcFRpbGVzKHRpZiwgb3V0cHV0LCBpbmRleCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZHVtcEluZGV4KHRpZiwgb3V0cHV0LCBpbmRleCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZHVtcEJvdW5kcyh0aWYsIHRoaXMub3V0cHV0LnZhbHVlLCBpbmRleCk7XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGlmLnNvdXJjZSBhcyBDaHVua1NvdXJjZUJhc2U7XG4gICAgICAgIGNvbnN0IGNodW5rSWRzID0gWy4uLihzb3VyY2UuY2h1bmtzIGFzIE1hcDx1bmtub3duLCB1bmtub3duPikudmFsdWVzKCldO1xuICAgICAgICBjb25zdCByZXN1bHQ6IENsaVJlc3VsdE1hcFtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdUaWZmIHR5cGUnLCB2YWx1ZTogYCR7VGlmZlZlcnNpb25bdGlmLnZlcnNpb25dfSAodiR7U3RyaW5nKHRpZi52ZXJzaW9uKX0pYCB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ0NodW5rIHNpemUnLCB2YWx1ZTogdG9CeXRlU2l6ZVN0cmluZyh0aWYuc291cmNlLmNodW5rU2l6ZSkgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnQnl0ZXMgcmVhZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0b0J5dGVTaXplU3RyaW5nKGNodW5rSWRzLmxlbmd0aCAqIHRpZi5zb3VyY2UuY2h1bmtTaXplKX0gYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCgke2NodW5rSWRzLmxlbmd0aH0gQ2h1bmske2NodW5rSWRzLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnfSlgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnT3V0cHV0JyxcbiAgICAgICAgICAgICAgICBrZXlzOiBbeyBrZXk6ICdJbWFnZXMnLCB2YWx1ZTogdGhpcy5vdXRwdXRDb3VudCB9XSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IG1zZyA9IEFjdGlvblV0aWwuZm9ybWF0UmVzdWx0KGAke2MuYm9sZCgnQ09HIEZpbGUgSW5mbycpfSAtICR7Yy5ib2xkKHRpZi5zb3VyY2UudXJpKX1gLCByZXN1bHQpO1xuICAgICAgICBjb25zb2xlLmxvZyhtc2cuam9pbignXFxuJykpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRGVmaW5lUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlID0gdGhpcy5kZWZpbmVTdHJpbmdQYXJhbWV0ZXIoe1xuICAgICAgICAgICAgYXJndW1lbnROYW1lOiAnRklMRScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJMb25nTmFtZTogJy0tZmlsZScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJTaG9ydE5hbWU6ICctZicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ2NvZyBmaWxlIHRvIGFjY2VzcycsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbWFnZUluZGV4ID0gdGhpcy5kZWZpbmVJbnRlZ2VyUGFyYW1ldGVyKHtcbiAgICAgICAgICAgIGFyZ3VtZW50TmFtZTogJ0lNQUdFJyxcbiAgICAgICAgICAgIHBhcmFtZXRlclNob3J0TmFtZTogJy1pJyxcbiAgICAgICAgICAgIHBhcmFtZXRlckxvbmdOYW1lOiAnLS1pbWFnZScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0ltYWdlIGlkIHRvIGV4cG9ydCAoc3RhcnRpbmcgZnJvbSAwKScsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vdXRwdXQgPSB0aGlzLmRlZmluZVN0cmluZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBhcmd1bWVudE5hbWU6ICdPVVRQVVQnLFxuICAgICAgICAgICAgcGFyYW1ldGVyU2hvcnROYW1lOiAnLW8nLFxuICAgICAgICAgICAgcGFyYW1ldGVyTG9uZ05hbWU6ICctLW91dHB1dCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXJlIHRvIHN0b3JlIHRoZSBvdXRwdXQnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.info.d.ts","sourceRoot":"","sources":["../src/action.info.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action.info.d.ts","sourceRoot":"","sources":["../src/action.info.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAwD,MAAM,4BAA4B,CAAC;AA8ErH,qBAAa,aAAc,SAAQ,iBAAiB;IAChD,OAAO,CAAC,IAAI,CAAC,CAA6B;IAC1C,OAAO,CAAC,IAAI,CAAC,CAA2B;IACxC,OAAO,CAAC,OAAO,CAAC,CAA2B;;IAUrC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFhC,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAuBvC"}
|
package/build/action.info.js
CHANGED
|
@@ -2,9 +2,8 @@ import { TiffTag, TiffTagGeo, TiffVersion } from '@cogeotiff/core';
|
|
|
2
2
|
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
3
3
|
import c from 'ansi-colors';
|
|
4
4
|
import { ActionUtil } from './action.util.js';
|
|
5
|
-
import { toByteSizeString } from './util.bytes.js';
|
|
6
5
|
import { CliTable } from './cli.table.js';
|
|
7
|
-
import {
|
|
6
|
+
import { toByteSizeString } from './util.bytes.js';
|
|
8
7
|
function formatTag(tagId, tagName, tagValue) {
|
|
9
8
|
const key = `${String(tagId).padEnd(7, ' ')} ${String(tagName).padEnd(20)}`;
|
|
10
9
|
if (Array.isArray(tagValue)) {
|
|
@@ -67,8 +66,9 @@ function parseGdalMetadata(img) {
|
|
|
67
66
|
if (!metadata.startsWith('<GDALMetadata>'))
|
|
68
67
|
return null;
|
|
69
68
|
return metadata
|
|
70
|
-
.replace('<GDALMetadata
|
|
71
|
-
.replace('</GDALMetadata
|
|
69
|
+
.replace('<GDALMetadata>\n', '')
|
|
70
|
+
.replace('</GDALMetadata>\n', '')
|
|
71
|
+
.replace('\n\x00', '')
|
|
72
72
|
.split('\n')
|
|
73
73
|
.map((c) => c.trim());
|
|
74
74
|
}
|
|
@@ -84,12 +84,12 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
84
84
|
var _a, _b, _c;
|
|
85
85
|
const { tif } = await ActionUtil.getCogSource(this.file);
|
|
86
86
|
const [firstImage] = tif.images;
|
|
87
|
-
await firstImage.loadGeoTiffTags(
|
|
88
|
-
const isCogOptimized = tif.options.isCogOptimized;
|
|
87
|
+
await firstImage.loadGeoTiffTags();
|
|
89
88
|
const source = tif.source;
|
|
90
89
|
const chunkIds = [...source.chunks.values()];
|
|
91
90
|
const imageInfo = '\n' + TiffImageInfoTable.print(tif.images, '\t\t').join('\n');
|
|
92
91
|
const gdalMetadata = parseGdalMetadata(firstImage);
|
|
92
|
+
const ghostOptions = [...tif.options.options.entries()];
|
|
93
93
|
const isGeoLocated = firstImage.isGeoLocated;
|
|
94
94
|
const result = [
|
|
95
95
|
{
|
|
@@ -120,15 +120,18 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
120
120
|
keys: [
|
|
121
121
|
{ key: 'COG optimized', value: tif.options.isCogOptimized },
|
|
122
122
|
tif.options.isBroken ? { key: 'COG broken', value: tif.options.isBroken } : null,
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
ghostOptions.length > 0
|
|
124
|
+
? {
|
|
125
|
+
key: 'Ghost Options',
|
|
126
|
+
value: '\n' + ghostOptions.map((c) => `\t\t${c[0]} = ${c[1]}`).join('\n'),
|
|
127
|
+
}
|
|
128
|
+
: null,
|
|
129
|
+
gdalMetadata
|
|
125
130
|
? {
|
|
126
|
-
key: '
|
|
127
|
-
value:
|
|
131
|
+
key: 'Metadata',
|
|
132
|
+
value: '\n' + gdalMetadata.map((c) => `\t\t${c}`).join('\n'),
|
|
128
133
|
}
|
|
129
134
|
: null,
|
|
130
|
-
isCogOptimized ? { key: 'Mask interleaved', value: tif.options.isMaskInterleaved } : null,
|
|
131
|
-
gdalMetadata ? { key: 'Metadata', value: gdalMetadata.map((c) => `\t\t${c}`).join('\n') } : null,
|
|
132
135
|
],
|
|
133
136
|
},
|
|
134
137
|
];
|
|
@@ -139,7 +142,7 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
139
142
|
title: `Image: ${img.id} - Tiff tags`,
|
|
140
143
|
keys: tiffTags.map((tagId) => formatTag(tagId, TiffTag[tagId], img.value(tagId))),
|
|
141
144
|
});
|
|
142
|
-
await img.loadGeoTiffTags(
|
|
145
|
+
await img.loadGeoTiffTags();
|
|
143
146
|
if (img.tagsGeo) {
|
|
144
147
|
const tiffTagsGeo = [...img.tagsGeo.keys()];
|
|
145
148
|
result.push({
|
|
@@ -177,4 +180,4 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
177
180
|
});
|
|
178
181
|
}
|
|
179
182
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWN0aW9uLmluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0QsTUFBTSw0QkFBNEIsQ0FBQztBQUNySCxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHbkQsU0FBUyxTQUFTLENBQUMsS0FBMkIsRUFBRSxPQUFlLEVBQUUsUUFBYTtJQUMxRSxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUU1RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7S0FDNUQ7SUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVELENBQUM7QUFF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O0lBQ2hDLENBQUM7SUFFUyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDbkMsWUFBWSxFQUFFLE1BQU07WUFDcEIsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDakMsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDcEMsaUJBQWlCLEVBQUUsWUFBWTtZQUMvQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSwrQkFBK0I7WUFDNUMsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGlmZlRhZywgVGlmZlRhZ0dlbywgVGlmZlZlcnNpb24sIENvZ1RpZmZJbWFnZSB9IGZyb20gJ0Bjb2dlb3RpZmYvY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kTGluZUFjdGlvbiwgQ29tbWFuZExpbmVGbGFnUGFyYW1ldGVyLCBDb21tYW5kTGluZVN0cmluZ1BhcmFtZXRlciB9IGZyb20gJ0BydXNoc3RhY2svdHMtY29tbWFuZC1saW5lJztcbmltcG9ydCBjIGZyb20gJ2Fuc2ktY29sb3JzJztcbmltcG9ydCB7IEFjdGlvblV0aWwsIENsaVJlc3VsdE1hcCB9IGZyb20gJy4vYWN0aW9uLnV0aWwuanMnO1xuaW1wb3J0IHsgdG9CeXRlU2l6ZVN0cmluZyB9IGZyb20gJy4vdXRpbC5ieXRlcy5qcyc7XG5pbXBvcnQgeyBDbGlUYWJsZSB9IGZyb20gJy4vY2xpLnRhYmxlLmpzJztcbmltcG9ydCB7IGxvZ2dlciBhcyBDbGlMb2dnZXIgfSBmcm9tICcuL2NsaS5sb2cuanMnO1xuaW1wb3J0IHsgQ2h1bmtTb3VyY2VCYXNlIH0gZnJvbSAnQGNodW5rZC9jb3JlJztcblxuZnVuY3Rpb24gZm9ybWF0VGFnKHRhZ0lkOiBUaWZmVGFnIHwgVGlmZlRhZ0dlbywgdGFnTmFtZTogc3RyaW5nLCB0YWdWYWx1ZTogYW55KTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9IHtcbiAgICBjb25zdCBrZXkgPSBgJHtTdHJpbmcodGFnSWQpLnBhZEVuZCg3LCAnICcpfSAke1N0cmluZyh0YWdOYW1lKS5wYWRFbmQoMjApfWA7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0YWdWYWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsga2V5LCB2YWx1ZTogdGFnVmFsdWUuc2xpY2UoMCwgMjUwKS5qb2luKCcsICcpIH07XG4gICAgfVxuICAgIHJldHVybiB7IGtleSwgdmFsdWU6IFN0cmluZyh0YWdWYWx1ZSkuc3Vic3RyKDAsIDEwMjQpIH07XG59XG5cbmZ1bmN0aW9uIHJvdW5kKG51bTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBvcHQgPSAxMCAqKiA0O1xuICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAqIG9wdCkgLyBvcHQ7XG59XG5cbmNvbnN0IFRpZmZJbWFnZUluZm9UYWJsZSA9IG5ldyBDbGlUYWJsZTxDb2dUaWZmSW1hZ2U+KCk7XG5UaWZmSW1hZ2VJbmZvVGFibGUuYWRkKHsgbmFtZTogJ0lkJywgd2lkdGg6IDQsIGdldDogKGksIGluZGV4KSA9PiBTdHJpbmcoaW5kZXgpIH0pO1xuVGlmZkltYWdlSW5mb1RhYmxlLmFkZCh7IG5hbWU6ICdTaXplJywgd2lkdGg6IDIwLCBnZXQ6IChpKSA9PiBgJHtpLnNpemUud2lkdGh9eCR7aS5zaXplLmhlaWdodH1gIH0pO1xuVGlmZkltYWdlSW5mb1RhYmxlLmFkZCh7XG4gICAgbmFtZTogJ1RpbGUgU2l6ZScsXG4gICAgd2lkdGg6IDIwLFxuICAgIGdldDogKGkpID0+IGAke2kudGlsZUNvdW50Lnh9eCR7aS50aWxlQ291bnQueX1gLFxuICAgIGVuYWJsZWQ6IChpKSA9PiBpLmlzVGlsZWQoKSxcbn0pO1xuVGlmZkltYWdlSW5mb1RhYmxlLmFkZCh7XG4gICAgbmFtZTogJ1RpbGUgQ291bnQnLFxuICAgIHdpZHRoOiAyMCxcbiAgICBnZXQ6IChpKSA9PiBgJHtpLnRpbGVDb3VudC54ICogaS50aWxlQ291bnQueX1gLFxuICAgIGVuYWJsZWQ6IChpKSA9PiBpLmlzVGlsZWQoKSxcbn0pO1xuVGlmZkltYWdlSW5mb1RhYmxlLmFkZCh7XG4gICAgbmFtZTogJ1N0cmlwIENvdW50JyxcbiAgICB3aWR0aDogMjAsXG4gICAgZ2V0OiAoaSkgPT4gYCR7aS50YWdzLmdldChUaWZmVGFnLlN0cmlwT2Zmc2V0cyk/LmRhdGFDb3VudH1gLFxuICAgIGVuYWJsZWQ6IChpKSA9PiAhaS5pc1RpbGVkKCksXG59KTtcblRpZmZJbWFnZUluZm9UYWJsZS5hZGQoe1xuICAgIG5hbWU6ICdSZXNvbHV0aW9uJyxcbiAgICB3aWR0aDogMjAsXG4gICAgZ2V0OiAoaSkgPT4gYCR7cm91bmQoaS5yZXNvbHV0aW9uWzBdKX1gLFxuICAgIGVuYWJsZWQ6IChpKSA9PiBpLmlzR2VvTG9jYXRlZCxcbn0pO1xuXG4vLyBTaG93IGNvbXByZXNzaW9uIG9ubHkgaWYgaXQgdmFyaWVzIGJldHdlZW4gaW1hZ2VzXG5UaWZmSW1hZ2VJbmZvVGFibGUuYWRkKHtcbiAgICBuYW1lOiAnQ29tcHJlc3Npb24nLFxuICAgIHdpZHRoOiAyMCxcbiAgICBnZXQ6IChpKSA9PiBpLmNvbXByZXNzaW9uLFxuICAgIGVuYWJsZWQ6IChpKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGkudGlmLmltYWdlcy5mb3JFYWNoKChmKSA9PiBmb3JtYXRzLmFkZChmLmNvbXByZXNzaW9uKSk7XG4gICAgICAgIHJldHVybiBmb3JtYXRzLnNpemUgPiAxO1xuICAgIH0sXG59KTtcblxuLyoqXG4gKiBQYXJzZSBvdXQgdGhlIEdEQUwgTWV0YWRhdGEgdG8gYmUgbW9yZSBmcmllbmRseSB0byByZWFkXG4gKlxuICogVE9ETyB1c2luZyBhIFhNTCBQYXJzZXIgd2lsbCBtYWtlIHRoaXMgZXZlbiBiZXR0ZXJcbiAqIEBwYXJhbSBpbWdcbiAqL1xuZnVuY3Rpb24gcGFyc2VHZGFsTWV0YWRhdGEoaW1nOiBDb2dUaWZmSW1hZ2UpOiBzdHJpbmdbXSB8IG51bGwge1xuICAgIGNvbnN0IG1ldGFkYXRhID0gaW1nLnZhbHVlKFRpZmZUYWcuR0RBTF9NRVRBREFUQSk7XG4gICAgaWYgKHR5cGVvZiBtZXRhZGF0YSAhPT0gJ3N0cmluZycpIHJldHVybiBudWxsO1xuICAgIGlmICghbWV0YWRhdGEuc3RhcnRzV2l0aCgnPEdEQUxNZXRhZGF0YT4nKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG1ldGFkYXRhXG4gICAgICAgIC5yZXBsYWNlKCc8R0RBTE1ldGFkYXRhPicsICcnKVxuICAgICAgICAucmVwbGFjZSgnPC9HREFMTWV0YWRhdGE+JywgJycpXG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLm1hcCgoYykgPT4gYy50cmltKCkpO1xufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29nSW5mbyBleHRlbmRzIENvbW1hbmRMaW5lQWN0aW9uIHtcbiAgICBwcml2YXRlIGZpbGU/OiBDb21tYW5kTGluZVN0cmluZ1BhcmFtZXRlcjtcbiAgICBwcml2YXRlIHRhZ3M/OiBDb21tYW5kTGluZUZsYWdQYXJhbWV0ZXI7XG4gICAgcHJpdmF0ZSB0YWdzQWxsPzogQ29tbWFuZExpbmVGbGFnUGFyYW1ldGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBhY3Rpb25OYW1lOiAnaW5mbycsXG4gICAgICAgICAgICBzdW1tYXJ5OiAnU2hvd3MgaW5mbyBhYm91dCBhIENPRycsXG4gICAgICAgICAgICBkb2N1bWVudGF0aW9uOiAnJyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25FeGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IHRpZiB9ID0gYXdhaXQgQWN0aW9uVXRpbC5nZXRDb2dTb3VyY2UodGhpcy5maWxlKTtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gdGlmLmltYWdlcztcblxuICAgICAgICBhd2FpdCBmaXJzdEltYWdlLmxvYWRHZW9UaWZmVGFncyhDbGlMb2dnZXIpO1xuXG4gICAgICAgIGNvbnN0IGlzQ29nT3B0aW1pemVkID0gdGlmLm9wdGlvbnMuaXNDb2dPcHRpbWl6ZWQ7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRpZi5zb3VyY2UgYXMgQ2h1bmtTb3VyY2VCYXNlO1xuICAgICAgICBjb25zdCBjaHVua0lkcyA9IFsuLi5zb3VyY2UuY2h1bmtzLnZhbHVlcygpXTtcblxuICAgICAgICBjb25zdCBpbWFnZUluZm8gPSAnXFxuJyArIFRpZmZJbWFnZUluZm9UYWJsZS5wcmludCh0aWYuaW1hZ2VzLCAnXFx0XFx0Jykuam9pbignXFxuJyk7XG5cbiAgICAgICAgY29uc3QgZ2RhbE1ldGFkYXRhID0gcGFyc2VHZGFsTWV0YWRhdGEoZmlyc3RJbWFnZSk7XG5cbiAgICAgICAgY29uc3QgaXNHZW9Mb2NhdGVkID0gZmlyc3RJbWFnZS5pc0dlb0xvY2F0ZWQ7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiBDbGlSZXN1bHRNYXBbXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnVGlmZiB0eXBlJywgdmFsdWU6IGAke1RpZmZWZXJzaW9uW3RpZi52ZXJzaW9uXX0gKHYke1N0cmluZyh0aWYudmVyc2lvbil9KWAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdDaHVuayBzaXplJywgdmFsdWU6IHRvQnl0ZVNpemVTdHJpbmcodGlmLnNvdXJjZS5jaHVua1NpemUpIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ0J5dGVzIHJlYWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGAke3RvQnl0ZVNpemVTdHJpbmcoY2h1bmtJZHMubGVuZ3RoICogdGlmLnNvdXJjZS5jaHVua1NpemUpfSAoJHtjaHVua0lkcy5sZW5ndGh9IENodW5rJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua0lkcy5sZW5ndGggPT09IDEgPyAnJyA6ICdzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnSW1hZ2VzJyxcbiAgICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnQ29tcHJlc3Npb24nLCB2YWx1ZTogZmlyc3RJbWFnZS5jb21wcmVzc2lvbiB9LFxuICAgICAgICAgICAgICAgICAgICBpc0dlb0xvY2F0ZWQgPyB7IGtleTogJ09yaWdpbicsIHZhbHVlOiBmaXJzdEltYWdlLm9yaWdpbi5tYXAocm91bmQpLmpvaW4oJywgJykgfSA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGlzR2VvTG9jYXRlZCA/IHsga2V5OiAnUmVzb2x1dGlvbicsIHZhbHVlOiBmaXJzdEltYWdlLnJlc29sdXRpb24ubWFwKHJvdW5kKS5qb2luKCcsICcpIH0gOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBpc0dlb0xvY2F0ZWQgPyB7IGtleTogJ0JvdW5kaW5nQm94JywgdmFsdWU6IGZpcnN0SW1hZ2UuYmJveC5tYXAocm91bmQpLmpvaW4oJywgJykgfSA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0SW1hZ2UuZXBzZ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGtleTogJ0VQU0cnLCB2YWx1ZTogYEVQU0c6JHtmaXJzdEltYWdlLmVwc2d9IChodHRwczovL2Vwc2cuaW8vJHtmaXJzdEltYWdlLmVwc2d9KWAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ0luZm8nLCB2YWx1ZTogaW1hZ2VJbmZvIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdHREFMJyxcbiAgICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnQ09HIG9wdGltaXplZCcsIHZhbHVlOiB0aWYub3B0aW9ucy5pc0NvZ09wdGltaXplZCB9LFxuICAgICAgICAgICAgICAgICAgICB0aWYub3B0aW9ucy5pc0Jyb2tlbiA/IHsga2V5OiAnQ09HIGJyb2tlbicsIHZhbHVlOiB0aWYub3B0aW9ucy5pc0Jyb2tlbiB9IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaXNDb2dPcHRpbWl6ZWQgPyB7IGtleTogJ1RpbGUgb3JkZXInLCB2YWx1ZTogdGlmLm9wdGlvbnMudGlsZU9yZGVyIH0gOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBpc0NvZ09wdGltaXplZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdUaWxlIGxlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYCR7dGlmLm9wdGlvbnMudGlsZUxlYWRlcn0gLSAke3RpZi5vcHRpb25zLnRpbGVMZWFkZXJCeXRlU2l6ZX0gQnl0ZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGlzQ29nT3B0aW1pemVkID8geyBrZXk6ICdNYXNrIGludGVybGVhdmVkJywgdmFsdWU6IHRpZi5vcHRpb25zLmlzTWFza0ludGVybGVhdmVkIH0gOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBnZGFsTWV0YWRhdGEgPyB7IGtleTogJ01ldGFkYXRhJywgdmFsdWU6IGdkYWxNZXRhZGF0YS5tYXAoKGMpID0+IGBcXHRcXHQke2N9YCkuam9pbignXFxuJykgfSA6IG51bGwsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHRoaXMudGFncz8udmFsdWUgfHwgdGhpcy50YWdzQWxsPy52YWx1ZSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpbWcgb2YgdGlmLmltYWdlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRpZmZUYWdzID0gWy4uLmltZy50YWdzLmtleXMoKV07XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEltYWdlOiAke2ltZy5pZH0gLSBUaWZmIHRhZ3NgLFxuICAgICAgICAgICAgICAgICAgICBrZXlzOiB0aWZmVGFncy5tYXAoKHRhZ0lkKSA9PiBmb3JtYXRUYWcodGFnSWQsIFRpZmZUYWdbdGFnSWRdLCBpbWcudmFsdWUodGFnSWQpKSksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgaW1nLmxvYWRHZW9UaWZmVGFncyhDbGlMb2dnZXIpO1xuICAgICAgICAgICAgICAgIGlmIChpbWcudGFnc0dlbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aWZmVGFnc0dlbyA9IFsuLi5pbWcudGFnc0dlby5rZXlzKCldO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEltYWdlOiAke2ltZy5pZH0gLSBHZW8gVGlmZiB0YWdzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXM6IHRpZmZUYWdzR2VvLm1hcCgodGFnSWQpID0+IGZvcm1hdFRhZyh0YWdJZCwgVGlmZlRhZ0dlb1t0YWdJZF0sIGltZy52YWx1ZUdlbyh0YWdJZCkpKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWdzQWxsPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtc2cgPSBBY3Rpb25VdGlsLmZvcm1hdFJlc3VsdChgJHtjLmJvbGQoJ0NPRyBGaWxlIEluZm8nKX0gLSAke2MuYm9sZCh0aWYuc291cmNlLnVyaSl9YCwgcmVzdWx0KTtcbiAgICAgICAgY29uc29sZS5sb2cobXNnLmpvaW4oJ1xcbicpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25EZWZpbmVQYXJhbWV0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGUgPSB0aGlzLmRlZmluZVN0cmluZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBhcmd1bWVudE5hbWU6ICdGSUxFJyxcbiAgICAgICAgICAgIHBhcmFtZXRlckxvbmdOYW1lOiAnLS1maWxlJyxcbiAgICAgICAgICAgIHBhcmFtZXRlclNob3J0TmFtZTogJy1mJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnY29nIGZpbGUgdG8gYWNjZXNzJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRhZ3MgPSB0aGlzLmRlZmluZUZsYWdQYXJhbWV0ZXIoe1xuICAgICAgICAgICAgcGFyYW1ldGVyTG9uZ05hbWU6ICctLXRhZ3MnLFxuICAgICAgICAgICAgcGFyYW1ldGVyU2hvcnROYW1lOiAnLXQnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEdW1wIHRpZmYgdGFncycsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGFnc0FsbCA9IHRoaXMuZGVmaW5lRmxhZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBwYXJhbWV0ZXJMb25nTmFtZTogJy0tdGFncy1hbGwnLFxuICAgICAgICAgICAgcGFyYW1ldGVyU2hvcnROYW1lOiAnLVQnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEdW1wIHRpZmYgdGFncyBmb3IgYWxsIGltYWdlcycsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWN0aW9uLmluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFnQixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0QsTUFBTSw0QkFBNEIsQ0FBQztBQUNySCxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsU0FBUyxTQUFTLENBQUMsS0FBMkIsRUFBRSxPQUFlLEVBQUUsUUFBYTtJQUMxRSxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUU1RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7S0FDNUQ7SUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxHQUFXO0lBQ3RCLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFB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QkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDakMsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDcEMsaUJBQWlCLEVBQUUsWUFBWTtZQUMvQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFdBQVcsRUFBRSwrQkFBK0I7WUFDNUMsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2h1bmtTb3VyY2VCYXNlIH0gZnJvbSAnQGNodW5rZC9jb3JlJztcbmltcG9ydCB7IENvZ1RpZmZJbWFnZSwgVGlmZlRhZywgVGlmZlRhZ0dlbywgVGlmZlZlcnNpb24gfSBmcm9tICdAY29nZW90aWZmL2NvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZExpbmVBY3Rpb24sIENvbW1hbmRMaW5lRmxhZ1BhcmFtZXRlciwgQ29tbWFuZExpbmVTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tICdAcnVzaHN0YWNrL3RzLWNvbW1hbmQtbGluZSc7XG5pbXBvcnQgYyBmcm9tICdhbnNpLWNvbG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25VdGlsLCBDbGlSZXN1bHRNYXAgfSBmcm9tICcuL2FjdGlvbi51dGlsLmpzJztcbmltcG9ydCB7IENsaVRhYmxlIH0gZnJvbSAnLi9jbGkudGFibGUuanMnO1xuaW1wb3J0IHsgdG9CeXRlU2l6ZVN0cmluZyB9IGZyb20gJy4vdXRpbC5ieXRlcy5qcyc7XG5cbmZ1bmN0aW9uIGZvcm1hdFRhZyh0YWdJZDogVGlmZlRhZyB8IFRpZmZUYWdHZW8sIHRhZ05hbWU6IHN0cmluZywgdGFnVmFsdWU6IGFueSk6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qga2V5ID0gYCR7U3RyaW5nKHRhZ0lkKS5wYWRFbmQoNywgJyAnKX0gJHtTdHJpbmcodGFnTmFtZSkucGFkRW5kKDIwKX1gO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGFnVmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGtleSwgdmFsdWU6IHRhZ1ZhbHVlLnNsaWNlKDAsIDI1MCkuam9pbignLCAnKSB9O1xuICAgIH1cbiAgICByZXR1cm4geyBrZXksIHZhbHVlOiBTdHJpbmcodGFnVmFsdWUpLnN1YnN0cigwLCAxMDI0KSB9O1xufVxuXG5mdW5jdGlvbiByb3VuZChudW06IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgb3B0ID0gMTAgKiogNDtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihudW0gKiBvcHQpIC8gb3B0O1xufVxuXG5jb25zdCBUaWZmSW1hZ2VJbmZvVGFibGUgPSBuZXcgQ2xpVGFibGU8Q29nVGlmZkltYWdlPigpO1xuVGlmZkltYWdlSW5mb1RhYmxlLmFkZCh7IG5hbWU6ICdJZCcsIHdpZHRoOiA0LCBnZXQ6IChpLCBpbmRleCkgPT4gU3RyaW5nKGluZGV4KSB9KTtcblRpZmZJbWFnZUluZm9UYWJsZS5hZGQoeyBuYW1lOiAnU2l6ZScsIHdpZHRoOiAyMCwgZ2V0OiAoaSkgPT4gYCR7aS5zaXplLndpZHRofXgke2kuc2l6ZS5oZWlnaHR9YCB9KTtcblRpZmZJbWFnZUluZm9UYWJsZS5hZGQoe1xuICAgIG5hbWU6ICdUaWxlIFNpemUnLFxuICAgIHdpZHRoOiAyMCxcbiAgICBnZXQ6IChpKSA9PiBgJHtpLnRpbGVDb3VudC54fXgke2kudGlsZUNvdW50Lnl9YCxcbiAgICBlbmFibGVkOiAoaSkgPT4gaS5pc1RpbGVkKCksXG59KTtcblRpZmZJbWFnZUluZm9UYWJsZS5hZGQoe1xuICAgIG5hbWU6ICdUaWxlIENvdW50JyxcbiAgICB3aWR0aDogMjAsXG4gICAgZ2V0OiAoaSkgPT4gYCR7aS50aWxlQ291bnQueCAqIGkudGlsZUNvdW50Lnl9YCxcbiAgICBlbmFibGVkOiAoaSkgPT4gaS5pc1RpbGVkKCksXG59KTtcblRpZmZJbWFnZUluZm9UYWJsZS5hZGQoe1xuICAgIG5hbWU6ICdTdHJpcCBDb3VudCcsXG4gICAgd2lkdGg6IDIwLFxuICAgIGdldDogKGkpID0+IGAke2kudGFncy5nZXQoVGlmZlRhZy5TdHJpcE9mZnNldHMpPy5kYXRhQ291bnR9YCxcbiAgICBlbmFibGVkOiAoaSkgPT4gIWkuaXNUaWxlZCgpLFxufSk7XG5UaWZmSW1hZ2VJbmZvVGFibGUuYWRkKHtcbiAgICBuYW1lOiAnUmVzb2x1dGlvbicsXG4gICAgd2lkdGg6IDIwLFxuICAgIGdldDogKGkpID0+IGAke3JvdW5kKGkucmVzb2x1dGlvblswXSl9YCxcbiAgICBlbmFibGVkOiAoaSkgPT4gaS5pc0dlb0xvY2F0ZWQsXG59KTtcblxuLy8gU2hvdyBjb21wcmVzc2lvbiBvbmx5IGlmIGl0IHZhcmllcyBiZXR3ZWVuIGltYWdlc1xuVGlmZkltYWdlSW5mb1RhYmxlLmFkZCh7XG4gICAgbmFtZTogJ0NvbXByZXNzaW9uJyxcbiAgICB3aWR0aDogMjAsXG4gICAgZ2V0OiAoaSkgPT4gaS5jb21wcmVzc2lvbixcbiAgICBlbmFibGVkOiAoaSkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXRzID0gbmV3IFNldCgpO1xuICAgICAgICBpLnRpZi5pbWFnZXMuZm9yRWFjaCgoZikgPT4gZm9ybWF0cy5hZGQoZi5jb21wcmVzc2lvbikpO1xuICAgICAgICByZXR1cm4gZm9ybWF0cy5zaXplID4gMTtcbiAgICB9LFxufSk7XG5cbi8qKlxuICogUGFyc2Ugb3V0IHRoZSBHREFMIE1ldGFkYXRhIHRvIGJlIG1vcmUgZnJpZW5kbHkgdG8gcmVhZFxuICpcbiAqIFRPRE8gdXNpbmcgYSBYTUwgUGFyc2VyIHdpbGwgbWFrZSB0aGlzIGV2ZW4gYmV0dGVyXG4gKiBAcGFyYW0gaW1nXG4gKi9cbmZ1bmN0aW9uIHBhcnNlR2RhbE1ldGFkYXRhKGltZzogQ29nVGlmZkltYWdlKTogc3RyaW5nW10gfCBudWxsIHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IGltZy52YWx1ZShUaWZmVGFnLkdEQUxfTUVUQURBVEEpO1xuICAgIGlmICh0eXBlb2YgbWV0YWRhdGEgIT09ICdzdHJpbmcnKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIW1ldGFkYXRhLnN0YXJ0c1dpdGgoJzxHREFMTWV0YWRhdGE+JykpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBtZXRhZGF0YVxuICAgICAgICAucmVwbGFjZSgnPEdEQUxNZXRhZGF0YT5cXG4nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJzwvR0RBTE1ldGFkYXRhPlxcbicsICcnKVxuICAgICAgICAucmVwbGFjZSgnXFxuXFx4MDAnLCAnJylcbiAgICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgICAubWFwKChjKSA9PiBjLnRyaW0oKSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db2dJbmZvIGV4dGVuZHMgQ29tbWFuZExpbmVBY3Rpb24ge1xuICAgIHByaXZhdGUgZmlsZT86IENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyO1xuICAgIHByaXZhdGUgdGFncz86IENvbW1hbmRMaW5lRmxhZ1BhcmFtZXRlcjtcbiAgICBwcml2YXRlIHRhZ3NBbGw/OiBDb21tYW5kTGluZUZsYWdQYXJhbWV0ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGFjdGlvbk5hbWU6ICdpbmZvJyxcbiAgICAgICAgICAgIHN1bW1hcnk6ICdTaG93cyBpbmZvIGFib3V0IGEgQ09HJyxcbiAgICAgICAgICAgIGRvY3VtZW50YXRpb246ICcnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBvbkV4ZWN1dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgdGlmIH0gPSBhd2FpdCBBY3Rpb25VdGlsLmdldENvZ1NvdXJjZSh0aGlzLmZpbGUpO1xuICAgICAgICBjb25zdCBbZmlyc3RJbWFnZV0gPSB0aWYuaW1hZ2VzO1xuXG4gICAgICAgIGF3YWl0IGZpcnN0SW1hZ2UubG9hZEdlb1RpZmZUYWdzKCk7XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGlmLnNvdXJjZSBhcyBDaHVua1NvdXJjZUJhc2U7XG4gICAgICAgIGNvbnN0IGNodW5rSWRzID0gWy4uLihzb3VyY2UuY2h1bmtzIGFzIE1hcDx1bmtub3duLCB1bmtub3duPikudmFsdWVzKCldO1xuXG4gICAgICAgIGNvbnN0IGltYWdlSW5mbyA9ICdcXG4nICsgVGlmZkltYWdlSW5mb1RhYmxlLnByaW50KHRpZi5pbWFnZXMsICdcXHRcXHQnKS5qb2luKCdcXG4nKTtcblxuICAgICAgICBjb25zdCBnZGFsTWV0YWRhdGEgPSBwYXJzZUdkYWxNZXRhZGF0YShmaXJzdEltYWdlKTtcbiAgICAgICAgY29uc3QgZ2hvc3RPcHRpb25zID0gWy4uLnRpZi5vcHRpb25zLm9wdGlvbnMuZW50cmllcygpXTtcblxuICAgICAgICBjb25zdCBpc0dlb0xvY2F0ZWQgPSBmaXJzdEltYWdlLmlzR2VvTG9jYXRlZDtcblxuICAgICAgICBjb25zdCByZXN1bHQ6IENsaVJlc3VsdE1hcFtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdUaWZmIHR5cGUnLCB2YWx1ZTogYCR7VGlmZlZlcnNpb25bdGlmLnZlcnNpb25dfSAodiR7U3RyaW5nKHRpZi52ZXJzaW9uKX0pYCB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ0NodW5rIHNpemUnLCB2YWx1ZTogdG9CeXRlU2l6ZVN0cmluZyh0aWYuc291cmNlLmNodW5rU2l6ZSkgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnQnl0ZXMgcmVhZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYCR7dG9CeXRlU2l6ZVN0cmluZyhjaHVua0lkcy5sZW5ndGggKiB0aWYuc291cmNlLmNodW5rU2l6ZSl9ICgke2NodW5rSWRzLmxlbmd0aH0gQ2h1bmske1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rSWRzLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KWAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdJbWFnZXMnLFxuICAgICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdDb21wcmVzc2lvbicsIHZhbHVlOiBmaXJzdEltYWdlLmNvbXByZXNzaW9uIH0sXG4gICAgICAgICAgICAgICAgICAgIGlzR2VvTG9jYXRlZCA/IHsga2V5OiAnT3JpZ2luJywgdmFsdWU6IGZpcnN0SW1hZ2Uub3JpZ2luLm1hcChyb3VuZCkuam9pbignLCAnKSB9IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaXNHZW9Mb2NhdGVkID8geyBrZXk6ICdSZXNvbHV0aW9uJywgdmFsdWU6IGZpcnN0SW1hZ2UucmVzb2x1dGlvbi5tYXAocm91bmQpLmpvaW4oJywgJykgfSA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGlzR2VvTG9jYXRlZCA/IHsga2V5OiAnQm91bmRpbmdCb3gnLCB2YWx1ZTogZmlyc3RJbWFnZS5iYm94Lm1hcChyb3VuZCkuam9pbignLCAnKSB9IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RJbWFnZS5lcHNnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHsga2V5OiAnRVBTRycsIHZhbHVlOiBgRVBTRzoke2ZpcnN0SW1hZ2UuZXBzZ30gKGh0dHBzOi8vZXBzZy5pby8ke2ZpcnN0SW1hZ2UuZXBzZ30pYCB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnSW5mbycsIHZhbHVlOiBpbWFnZUluZm8gfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0dEQUwnLFxuICAgICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdDT0cgb3B0aW1pemVkJywgdmFsdWU6IHRpZi5vcHRpb25zLmlzQ29nT3B0aW1pemVkIH0sXG4gICAgICAgICAgICAgICAgICAgIHRpZi5vcHRpb25zLmlzQnJva2VuID8geyBrZXk6ICdDT0cgYnJva2VuJywgdmFsdWU6IHRpZi5vcHRpb25zLmlzQnJva2VuIH0gOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBnaG9zdE9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdHaG9zdCBPcHRpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnXFxuJyArIGdob3N0T3B0aW9ucy5tYXAoKGMpID0+IGBcXHRcXHQke2NbMF19ID0gJHtjWzFdfWApLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGdkYWxNZXRhZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdNZXRhZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ1xcbicgKyBnZGFsTWV0YWRhdGEubWFwKChjKSA9PiBgXFx0XFx0JHtjfWApLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHRoaXMudGFncz8udmFsdWUgfHwgdGhpcy50YWdzQWxsPy52YWx1ZSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpbWcgb2YgdGlmLmltYWdlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRpZmZUYWdzID0gWy4uLmltZy50YWdzLmtleXMoKV07XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEltYWdlOiAke2ltZy5pZH0gLSBUaWZmIHRhZ3NgLFxuICAgICAgICAgICAgICAgICAgICBrZXlzOiB0aWZmVGFncy5tYXAoKHRhZ0lkKSA9PiBmb3JtYXRUYWcodGFnSWQsIFRpZmZUYWdbdGFnSWRdLCBpbWcudmFsdWUodGFnSWQpKSksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgaW1nLmxvYWRHZW9UaWZmVGFncygpO1xuICAgICAgICAgICAgICAgIGlmIChpbWcudGFnc0dlbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aWZmVGFnc0dlbyA9IFsuLi5pbWcudGFnc0dlby5rZXlzKCldO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEltYWdlOiAke2ltZy5pZH0gLSBHZW8gVGlmZiB0YWdzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXM6IHRpZmZUYWdzR2VvLm1hcCgodGFnSWQpID0+IGZvcm1hdFRhZyh0YWdJZCwgVGlmZlRhZ0dlb1t0YWdJZF0sIGltZy52YWx1ZUdlbyh0YWdJZCkpKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWdzQWxsPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtc2cgPSBBY3Rpb25VdGlsLmZvcm1hdFJlc3VsdChgJHtjLmJvbGQoJ0NPRyBGaWxlIEluZm8nKX0gLSAke2MuYm9sZCh0aWYuc291cmNlLnVyaSl9YCwgcmVzdWx0KTtcbiAgICAgICAgY29uc29sZS5sb2cobXNnLmpvaW4oJ1xcbicpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25EZWZpbmVQYXJhbWV0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGUgPSB0aGlzLmRlZmluZVN0cmluZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBhcmd1bWVudE5hbWU6ICdGSUxFJyxcbiAgICAgICAgICAgIHBhcmFtZXRlckxvbmdOYW1lOiAnLS1maWxlJyxcbiAgICAgICAgICAgIHBhcmFtZXRlclNob3J0TmFtZTogJy1mJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnY29nIGZpbGUgdG8gYWNjZXNzJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRhZ3MgPSB0aGlzLmRlZmluZUZsYWdQYXJhbWV0ZXIoe1xuICAgICAgICAgICAgcGFyYW1ldGVyTG9uZ05hbWU6ICctLXRhZ3MnLFxuICAgICAgICAgICAgcGFyYW1ldGVyU2hvcnROYW1lOiAnLXQnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEdW1wIHRpZmYgdGFncycsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGFnc0FsbCA9IHRoaXMuZGVmaW5lRmxhZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBwYXJhbWV0ZXJMb25nTmFtZTogJy0tdGFncy1hbGwnLFxuICAgICAgICAgICAgcGFyYW1ldGVyU2hvcnROYW1lOiAnLVQnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEdW1wIHRpZmYgdGFncyBmb3IgYWxsIGltYWdlcycsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.tile.d.ts","sourceRoot":"","sources":["../src/action.tile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,4BAA4B,CAAC;AAQ3F,qBAAa,UAAW,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,IAAI,CAA2C;IACvD,OAAO,CAAC,GAAG,CAA2C;;IAUhD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"action.tile.d.ts","sourceRoot":"","sources":["../src/action.tile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,4BAA4B,CAAC;AAQ3F,qBAAa,UAAW,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,IAAI,CAA2C;IACvD,OAAO,CAAC,GAAG,CAA2C;;IAUhD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqChC,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAiBvC"}
|
package/build/action.tile.js
CHANGED
|
@@ -22,10 +22,6 @@ export class ActionTile extends CommandLineAction {
|
|
|
22
22
|
if (this.xyz == null || this.xyz.value == null) {
|
|
23
23
|
throw new Error('XYZ was not defined');
|
|
24
24
|
}
|
|
25
|
-
const isCogOptimized = tif.options.isCogOptimized;
|
|
26
|
-
if (!isCogOptimized) {
|
|
27
|
-
logger.warn('COG is not optimized, fetching specific tiles will be slow.');
|
|
28
|
-
}
|
|
29
25
|
const [x, y, z] = this.xyz.value.split(',').map((c) => parseInt(c));
|
|
30
26
|
if (isNaN(x) || isNaN(y) || isNaN(z)) {
|
|
31
27
|
throw new Error('Invalid XYZ, format: "X,Y,Z"');
|
|
@@ -65,4 +61,4 @@ export class ActionTile extends CommandLineAction {
|
|
|
65
61
|
});
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnRpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWN0aW9uLnRpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBOEIsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRixPQUFPLENBQUMsTUFBTSxhQUFhLENBQUM7QUFFNUIsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLFVBQVcsU0FBUSxpQkFBaUI7SUFJN0M7UUFDSSxLQUFLLENBQUM7WUFDRixVQUFVLEVBQUUsTUFBTTtZQUNsQixPQUFPLEVBQUUsa0NBQWtDO1lBQzNDLGFBQWEsRUFBRSxFQUFFO1NBQ3BCLENBQUMsQ0FBQztRQVJDLFNBQUksR0FBc0MsSUFBSSxDQUFDO1FBQy9DLFFBQUcsR0FBc0MsSUFBSSxDQUFDO0lBUXRELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNYLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVoRCxXQUFXO1FBQ1gsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbkQ7UUFFRCxNQUFNLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUF5QixDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBSSxNQUFNLENBQUMsTUFBZ0MsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sTUFBTSxHQUFtQjtZQUMzQjtnQkFDSSxJQUFJLEVBQUU7b0JBQ0YsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO29CQUNwRixFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3BFO3dCQUNJLEdBQUcsRUFBRSxZQUFZO3dCQUNqQixLQUFLLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUSxDQUFDLE1BQU0sU0FDbEYsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FDakMsR0FBRztxQkFDTjtpQkFDSjthQUNKO1NBQ0osQ0FBQztRQUVGLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFUyxrQkFBa0I7UUFDeEIsV0FBVztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ25DLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGlCQUFpQixFQUFFLFFBQVE7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ2xDLFlBQVksRUFBRSxLQUFLO1lBQ25CLGlCQUFpQixFQUFFLE9BQU87WUFDMUIsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaWZmVmVyc2lvbiB9IGZyb20gJ0Bjb2dlb3RpZmYvY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kTGluZUFjdGlvbiwgQ29tbWFuZExpbmVTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tICdAcnVzaHN0YWNrL3RzLWNvbW1hbmQtbGluZSc7XG5pbXBvcnQgYyBmcm9tICdhbnNpLWNvbG9ycyc7XG5pbXBvcnQgeyBDaHVua1NvdXJjZUJhc2UgfSBmcm9tICdAY2h1bmtkL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uVXRpbCwgQ2xpUmVzdWx0TWFwIH0gZnJvbSAnLi9hY3Rpb24udXRpbC5qcyc7XG5pbXBvcnQgeyBsb2dnZXIgYXMgTG9nZ2VyIH0gZnJvbSAnLi9jbGkubG9nLmpzJztcbmltcG9ydCB7IHRvQnl0ZVNpemVTdHJpbmcgfSBmcm9tICcuL3V0aWwuYnl0ZXMuanMnO1xuaW1wb3J0IHsgd3JpdGVUaWxlIH0gZnJvbSAnLi91dGlsLnRpbGUuanMnO1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uVGlsZSBleHRlbmRzIENvbW1hbmRMaW5lQWN0aW9uIHtcbiAgICBwcml2YXRlIGZpbGU6IENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSB4eXo6IENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGFjdGlvbk5hbWU6ICd0aWxlJyxcbiAgICAgICAgICAgIHN1bW1hcnk6ICdGZXRjaCBhIHNwZWNpZmljIHRpbGUgZnJvbSBhIENPRycsXG4gICAgICAgICAgICBkb2N1bWVudGF0aW9uOiAnJyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgb25FeGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBsb2dnZXIgPSBMb2dnZXIuY2hpbGQoeyBhY3Rpb246ICd0aWxlJyB9KTtcblxuICAgICAgICAvLyBhYnN0cmFjdFxuICAgICAgICBjb25zdCB7IHRpZiB9ID0gYXdhaXQgQWN0aW9uVXRpbC5nZXRDb2dTb3VyY2UodGhpcy5maWxlKTtcbiAgICAgICAgaWYgKHRoaXMueHl6ID09IG51bGwgfHwgdGhpcy54eXoudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdYWVogd2FzIG5vdCBkZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbeCwgeSwgel0gPSB0aGlzLnh5ei52YWx1ZS5zcGxpdCgnLCcpLm1hcCgoYykgPT4gcGFyc2VJbnQoYykpO1xuICAgICAgICBpZiAoaXNOYU4oeCkgfHwgaXNOYU4oeSkgfHwgaXNOYU4oeikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBYWVosIGZvcm1hdDogXCJYLFksWlwiJyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB3cml0ZVRpbGUodGlmLCB4LCB5LCB6LCAnLicsIGxvZ2dlcik7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRpZi5zb3VyY2UgYXMgQ2h1bmtTb3VyY2VCYXNlO1xuICAgICAgICBjb25zdCBjaHVua0lkcyA9IFsuLi4oc291cmNlLmNodW5rcyBhcyBNYXA8dW5rbm93biwgdW5rbm93bj4pLnZhbHVlcygpXTtcblxuICAgICAgICBjb25zdCByZXN1bHQ6IENsaVJlc3VsdE1hcFtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdUaWZmIHR5cGUnLCB2YWx1ZTogYCR7VGlmZlZlcnNpb25bdGlmLnZlcnNpb25dfSAodiR7U3RyaW5nKHRpZi52ZXJzaW9uKX0pYCB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ0NodW5rIHNpemUnLCB2YWx1ZTogdG9CeXRlU2l6ZVN0cmluZyh0aWYuc291cmNlLmNodW5rU2l6ZSkgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnQnl0ZXMgcmVhZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYCR7dG9CeXRlU2l6ZVN0cmluZyhjaHVua0lkcy5sZW5ndGggKiB0aWYuc291cmNlLmNodW5rU2l6ZSl9ICgke2NodW5rSWRzLmxlbmd0aH0gQ2h1bmske1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rSWRzLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KWAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbXNnID0gQWN0aW9uVXRpbC5mb3JtYXRSZXN1bHQoYCR7Yy5ib2xkKCdDT0cgRmlsZSBJbmZvJyl9IC0gJHtjLmJvbGQodGlmLnNvdXJjZS51cmkpfWAsIHJlc3VsdCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG1zZy5qb2luKCdcXG4nKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRGVmaW5lUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICAgICAgLy8gYWJzdHJhY3RcbiAgICAgICAgdGhpcy5maWxlID0gdGhpcy5kZWZpbmVTdHJpbmdQYXJhbWV0ZXIoe1xuICAgICAgICAgICAgYXJndW1lbnROYW1lOiAnRklMRScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJMb25nTmFtZTogJy0tZmlsZScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJTaG9ydE5hbWU6ICctZicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ2NvZyBmaWxlIHRvIGFjY2VzcycsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy54eXogPSB0aGlzLmRlZmluZVN0cmluZ1BhcmFtZXRlcih7XG4gICAgICAgICAgICBhcmd1bWVudE5hbWU6ICdYWVonLFxuICAgICAgICAgICAgcGFyYW1ldGVyTG9uZ05hbWU6ICctLXh5eicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1wiWCxZLFpcIiBvZiB0aGUgdGlsZSB0byBmZXRjaCcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
package/build/action.util.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface CliResultMap {
|
|
|
10
10
|
keys: (CLiResultMapLine | null)[];
|
|
11
11
|
}
|
|
12
12
|
export declare const ActionUtil: {
|
|
13
|
-
getCogSource(file?: CommandLineStringParameter | null
|
|
13
|
+
getCogSource(file?: CommandLineStringParameter | null): Promise<{
|
|
14
14
|
source: ChunkSource;
|
|
15
15
|
tif: CogTiff;
|
|
16
16
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.util.d.ts","sourceRoot":"","sources":["../src/action.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"action.util.d.ts","sourceRoot":"","sources":["../src/action.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CACtD;AACD,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,UAAU;wBACO,0BAA0B,GAAG,IAAI;gBAAqB,WAAW;aAAO,OAAO;;wBAWrF,MAAM,UAAU,YAAY,EAAE,GAAG,MAAM,EAAE;CAmBhE,CAAC"}
|
package/build/action.util.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { CogTiff } from '@cogeotiff/core';
|
|
2
1
|
import { fsa } from '@chunkd/fs';
|
|
2
|
+
import { CogTiff } from '@cogeotiff/core';
|
|
3
3
|
import c from 'ansi-colors';
|
|
4
|
-
import { logger as CliLogger } from './cli.log.js';
|
|
5
4
|
export const ActionUtil = {
|
|
6
5
|
async getCogSource(file) {
|
|
7
6
|
if (file == null || file.value == null) {
|
|
@@ -11,7 +10,7 @@ export const ActionUtil = {
|
|
|
11
10
|
if (source == null)
|
|
12
11
|
throw new Error(`File "${file} is not valid`);
|
|
13
12
|
const tif = new CogTiff(source);
|
|
14
|
-
await tif.init(false
|
|
13
|
+
await tif.init(false);
|
|
15
14
|
return { source, tif };
|
|
16
15
|
},
|
|
17
16
|
formatResult(title, result) {
|
|
@@ -34,4 +33,4 @@ export const ActionUtil = {
|
|
|
34
33
|
return msg;
|
|
35
34
|
},
|
|
36
35
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWN0aW9uLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxDQUFDLE1BQU0sYUFBYSxDQUFDO0FBVzVCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN0QixLQUFLLENBQUMsWUFBWSxDQUFDLElBQXdDO1FBQ3ZELElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxlQUFlLENBQUMsQ0FBQztTQUNqRDtRQUNELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksTUFBTSxJQUFJLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxlQUFlLENBQUMsQ0FBQztRQUVsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQWEsRUFBRSxNQUFzQjtRQUM5QyxNQUFNLEdBQUcsR0FBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDYixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1lBQ0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUN6QixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7b0JBQ1osU0FBUztpQkFDWjtnQkFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO29CQUM5RSxTQUFTO2lCQUNaO2dCQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDbEU7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaHVua1NvdXJjZSB9IGZyb20gJ0BjaHVua2QvY29yZSc7XG5pbXBvcnQgeyBmc2EgfSBmcm9tICdAY2h1bmtkL2ZzJztcbmltcG9ydCB7IENvZ1RpZmYgfSBmcm9tICdAY29nZW90aWZmL2NvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZExpbmVTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tICdAcnVzaHN0YWNrL3RzLWNvbW1hbmQtbGluZSc7XG5pbXBvcnQgYyBmcm9tICdhbnNpLWNvbG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0xpUmVzdWx0TWFwTGluZSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudW1iZXJbXSB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIENsaVJlc3VsdE1hcCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAga2V5czogKENMaVJlc3VsdE1hcExpbmUgfCBudWxsKVtdO1xufVxuXG5leHBvcnQgY29uc3QgQWN0aW9uVXRpbCA9IHtcbiAgICBhc3luYyBnZXRDb2dTb3VyY2UoZmlsZT86IENvbW1hbmRMaW5lU3RyaW5nUGFyYW1ldGVyIHwgbnVsbCk6IFByb21pc2U8eyBzb3VyY2U6IENodW5rU291cmNlOyB0aWY6IENvZ1RpZmYgfT4ge1xuICAgICAgICBpZiAoZmlsZSA9PSBudWxsIHx8IGZpbGUudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIFwiJHtmaWxlfSBpcyBub3QgdmFsaWRgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3VyY2UgPSBmc2Euc291cmNlKGZpbGUudmFsdWUpO1xuICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHRocm93IG5ldyBFcnJvcihgRmlsZSBcIiR7ZmlsZX0gaXMgbm90IHZhbGlkYCk7XG5cbiAgICAgICAgY29uc3QgdGlmID0gbmV3IENvZ1RpZmYoc291cmNlKTtcbiAgICAgICAgYXdhaXQgdGlmLmluaXQoZmFsc2UpO1xuICAgICAgICByZXR1cm4geyBzb3VyY2UsIHRpZiB9O1xuICAgIH0sXG4gICAgZm9ybWF0UmVzdWx0KHRpdGxlOiBzdHJpbmcsIHJlc3VsdDogQ2xpUmVzdWx0TWFwW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IG1zZzogc3RyaW5nW10gPSBbdGl0bGVdO1xuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHJlc3VsdCkge1xuICAgICAgICAgICAgbXNnLnB1c2goJycpO1xuICAgICAgICAgICAgaWYgKGdyb3VwLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgbXNnLnB1c2goYy5ib2xkKGdyb3VwLnRpdGxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGt2IG9mIGdyb3VwLmtleXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoa3YgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGt2LnZhbHVlID09IG51bGwgfHwgKHR5cGVvZiBrdi52YWx1ZSA9PT0gJ3N0cmluZycgJiYga3YudmFsdWUudHJpbSgpID09PSAnJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1zZy5wdXNoKGAgICAgJHtrdi5rZXkucGFkRW5kKDE0LCAnICcpfSAgJHtTdHJpbmcoa3YudmFsdWUpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtc2c7XG4gICAgfSxcbn07XG4iXX0=
|
package/build/cli.log.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const logger: pino.Logger
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const logger: import("pino").Logger<import("stream").PassThrough>;
|
|
3
3
|
//# sourceMappingURL=cli.log.d.ts.map
|
package/build/cli.log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.log.d.ts","sourceRoot":"","sources":["../src/cli.log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.log.d.ts","sourceRoot":"","sources":["../src/cli.log.ts"],"names":[],"mappings":";AAGA,eAAO,MAAM,MAAM,qDAAiE,CAAC"}
|
package/build/cli.table.js
CHANGED
|
@@ -18,4 +18,4 @@ export class CliTable {
|
|
|
18
18
|
return rows;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLnRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUNJLFdBQU0sR0FBc0IsRUFBRSxDQUFDO0lBa0JuQyxDQUFDO0lBakJHLEdBQUcsQ0FBQyxNQUF1QjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVMsRUFBRSxVQUFVLEdBQUcsRUFBRTtRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLGVBQUMsT0FBQSxNQUFBLE1BQUEsQ0FBQyxDQUFDLE9BQU8sa0RBQUcsQ0FBQyxDQUFDLG1DQUFJLElBQUksQ0FBQSxFQUFBLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLEdBQUcsYUFBSCxHQUFHLGNBQUgsR0FBRyxHQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIENsaVRhYmxlSW5mbzxUPiB7XG4gICAgLyoqIEhlYWRlciBmb3IgdGhlIHRhYmxlICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBQYWQgdGhlIGZpZWxkIG91dCB0byB0aGlzIHdpZHRoICovXG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICAvKiogR2V0IHRoZSBmaWVsZCB2YWx1ZSAqL1xuICAgIGdldDogKG9iajogVCwgaW5kZXg/OiBudW1iZXIpID0+IHN0cmluZyB8IG51bGw7XG4gICAgLyoqXG4gICAgICogSXMgdGhpcyBmaWVsZCBlbmFibGVkLFxuICAgICAqIEZpZWxkcyBhcmUgb25seSBlbmFibGVkIGlmIGV2ZXJ5IGRhdGEgcmVjb3JkIHJldHVybnMgdHJ1ZSBmb3IgZW5hYmxlZFxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiAob2JqOiBUKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xpVGFibGU8VD4ge1xuICAgIGZpZWxkczogQ2xpVGFibGVJbmZvPFQ+W10gPSBbXTtcbiAgICBhZGQoZmllbGRzOiBDbGlUYWJsZUluZm88VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZHMucHVzaChmaWVsZHMpO1xuICAgIH1cblxuICAgIHByaW50KGRhdGE6IFRbXSwgcm93UGFkZGluZyA9ICcnKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmZpZWxkcy5maWx0ZXIoKGYpID0+IGRhdGEuZXZlcnkoKGQpID0+IGYuZW5hYmxlZD8uKGQpID8/IHRydWUpKTtcbiAgICAgICAgY29uc3Qgcm93cyA9IGRhdGEubWFwKChkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gZmllbGRzLm1hcCgoZikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ciA9IGYuZ2V0KGQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0ciA/PyAnJykucGFkRW5kKGYud2lkdGgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcm93UGFkZGluZyArIHJvdy5qb2luKCdcXHQnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm93cy51bnNoaWZ0KHJvd1BhZGRpbmcgKyBmaWVsZHMubWFwKChmKSA9PiBmLm5hbWUucGFkRW5kKGYud2lkdGgpKS5qb2luKCdcXHQnKSk7XG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cbn1cbiJdfQ==
|
package/build/util.tile.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LogType } from '@chunkd/core';
|
|
2
1
|
import { CogTiff } from '@cogeotiff/core';
|
|
2
|
+
import type pino from 'pino';
|
|
3
3
|
/**
|
|
4
4
|
* Get a human readable tile name
|
|
5
5
|
*
|
|
@@ -11,5 +11,5 @@ import { CogTiff } from '@cogeotiff/core';
|
|
|
11
11
|
* @returns tile name eg `001_002_12.png`
|
|
12
12
|
*/
|
|
13
13
|
export declare function getTileName(mimeType: string, index: number, x: number, y: number): string;
|
|
14
|
-
export declare function writeTile(tif: CogTiff, x: number, y: number, index: number, outputPath: string, logger:
|
|
14
|
+
export declare function writeTile(tif: CogTiff, x: number, y: number, index: number, outputPath: string, logger: pino.Logger): Promise<void>;
|
|
15
15
|
//# sourceMappingURL=util.tile.d.ts.map
|
package/build/util.tile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.tile.d.ts","sourceRoot":"","sources":["../src/util.tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"util.tile.d.ts","sourceRoot":"","sources":["../src/util.tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAU7B;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAUzF;AAED,wBAAsB,SAAS,CAC3B,GAAG,EAAE,OAAO,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,IAAI,CAAC,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CASf"}
|
package/build/util.tile.js
CHANGED
|
@@ -37,4 +37,4 @@ export async function writeTile(tif, x, y, index, outputPath, logger) {
|
|
|
37
37
|
await fs.writeFile(path.join(outputPath, fileName), tile.bytes);
|
|
38
38
|
logger.debug({ index, x, y, fileName, bytes: tile.bytes.length }, 'TileWrite');
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC50aWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWwudGlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFHN0IsTUFBTSxhQUFhLEdBQThCO0lBQzdDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDM0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztJQUN6QixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQzNCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7SUFDekIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUztDQUNwQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxRQUFnQixFQUFFLEtBQWEsRUFBRSxDQUFTLEVBQUUsQ0FBUztJQUM3RSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sT0FBTyxHQUFXLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUM5RDtJQUVELE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTLENBQzNCLEdBQVksRUFDWixDQUFTLEVBQ1QsQ0FBUyxFQUNULEtBQWEsRUFDYixVQUFrQixFQUNsQixNQUFtQjtJQUVuQixNQUFNLElBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzQyxPQUFPO0tBQ1Y7SUFDRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29nVGlmZiwgVGlmZk1pbWVUeXBlIH0gZnJvbSAnQGNvZ2VvdGlmZi9jb3JlJztcbmltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHBpbm8gZnJvbSAncGlubyc7XG5cbmNvbnN0IEZpbGVFeHRlbnNpb246IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgW1RpZmZNaW1lVHlwZS5KUEVHXTogJ2pwZWcnLFxuICAgIFtUaWZmTWltZVR5cGUuSlAyXTogJ2pwMicsXG4gICAgW1RpZmZNaW1lVHlwZS5XRUJQXTogJ3dlYnAnLFxuICAgIFtUaWZmTWltZVR5cGUuTFpXXTogJ2x6dycsXG4gICAgW1RpZmZNaW1lVHlwZS5ERUZMQVRFXTogJ2RlZmxhdGUnLFxufTtcblxuLyoqXG4gKiBHZXQgYSBodW1hbiByZWFkYWJsZSB0aWxlIG5hbWVcbiAqXG4gKiBAcGFyYW0gbWltZVR5cGUgaW1hZ2UgdHlwZSBvZiB0aWxlIEBzZWUgRmlsZUV4dGVuc2lvblxuICogQHBhcmFtIGluZGV4IEltYWdlIGluZGV4XG4gKiBAcGFyYW0geCBUaWxlIFhcbiAqIEBwYXJhbSB5IFRpbGUgWVxuICpcbiAqIEByZXR1cm5zIHRpbGUgbmFtZSBlZyBgMDAxXzAwMl8xMi5wbmdgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaWxlTmFtZShtaW1lVHlwZTogc3RyaW5nLCBpbmRleDogbnVtYmVyLCB4OiBudW1iZXIsIHk6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgeFMgPSBgJHt4fWAucGFkU3RhcnQoMywgJzAnKTtcbiAgICBjb25zdCB5UyA9IGAke3l9YC5wYWRTdGFydCgzLCAnMCcpO1xuXG4gICAgY29uc3QgZmlsZUV4dDogc3RyaW5nID0gRmlsZUV4dGVuc2lvblttaW1lVHlwZV07XG4gICAgaWYgKGZpbGVFeHQgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwcm9jZXNzIHRpbGUgdHlwZToke21pbWVUeXBlfWApO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt4U31fJHt5U31fJHtpbmRleH0uJHtmaWxlRXh0fWA7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVRpbGUoXG4gICAgdGlmOiBDb2dUaWZmLFxuICAgIHg6IG51bWJlcixcbiAgICB5OiBudW1iZXIsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBvdXRwdXRQYXRoOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBwaW5vLkxvZ2dlcixcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRpbGUgPSBhd2FpdCB0aWYuZ2V0VGlsZSh4LCB5LCBpbmRleCk7XG4gICAgaWYgKHRpbGUgPT0gbnVsbCkge1xuICAgICAgICBsb2dnZXIuZGVidWcoeyBpbmRleCwgeCwgeSB9LCAnVGlsZUVtcHR5Jyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmlsZU5hbWUgPSBnZXRUaWxlTmFtZSh0aWxlLm1pbWVUeXBlLCBpbmRleCwgeCwgeSk7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihvdXRwdXRQYXRoLCBmaWxlTmFtZSksIHRpbGUuYnl0ZXMpO1xuICAgIGxvZ2dlci5kZWJ1Zyh7IGluZGV4LCB4LCB5LCBmaWxlTmFtZSwgYnl0ZXM6IHRpbGUuYnl0ZXMubGVuZ3RoIH0sICdUaWxlV3JpdGUnKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogeotiff/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.2.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/blacha/cogeotiff.git",
|
|
@@ -17,23 +17,23 @@
|
|
|
17
17
|
},
|
|
18
18
|
"scripts": {},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@chunkd/core": "^8.0
|
|
21
|
-
"@chunkd/fs": "^8.0
|
|
22
|
-
"@cogeotiff/core": "^
|
|
20
|
+
"@chunkd/core": "^8.1.0",
|
|
21
|
+
"@chunkd/fs": "^8.1.0",
|
|
22
|
+
"@cogeotiff/core": "^7.2.0",
|
|
23
23
|
"@rushstack/ts-command-line": "^4.3.14",
|
|
24
|
-
"@types/pino": "^6.3.11",
|
|
25
24
|
"ansi-colors": "^4.1.1",
|
|
26
25
|
"aws-sdk": "^2.781.0",
|
|
27
26
|
"p-limit": "^4.0.0",
|
|
28
|
-
"pino": "^
|
|
27
|
+
"pino": "^8.0.0",
|
|
29
28
|
"pretty-json-log": "^1.0.0",
|
|
30
29
|
"source-map-support": "^0.5.12"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
|
-
"@types/node": "^
|
|
32
|
+
"@types/node": "^18.0.0",
|
|
33
|
+
"@types/pino": "^7.0.5"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "64a437a3590a1fc8395d1f4294a5fc74cbbe6127"
|
|
39
39
|
}
|
package/src/action.dump.tile.ts
CHANGED
|
@@ -8,7 +8,8 @@ import { logger as CliLogger } from './cli.log.js';
|
|
|
8
8
|
import { toByteSizeString } from './util.bytes.js';
|
|
9
9
|
import { getTileName, writeTile } from './util.tile.js';
|
|
10
10
|
import PLimit from 'p-limit';
|
|
11
|
-
import { ChunkSourceBase
|
|
11
|
+
import { ChunkSourceBase } from '@chunkd/core';
|
|
12
|
+
import pino from 'pino';
|
|
12
13
|
|
|
13
14
|
const Rad2Deg = 180 / Math.PI;
|
|
14
15
|
const A = 6378137.0; // 900913 properties.
|
|
@@ -54,7 +55,7 @@ export class ActionDumpTile extends CommandLineAction {
|
|
|
54
55
|
private imageIndex: CommandLineIntegerParameter | null = null;
|
|
55
56
|
private output: CommandLineStringParameter | null = null;
|
|
56
57
|
private outputCount = 0;
|
|
57
|
-
private logger:
|
|
58
|
+
private logger: pino.Logger;
|
|
58
59
|
|
|
59
60
|
public constructor() {
|
|
60
61
|
super({
|
|
@@ -143,7 +144,7 @@ export class ActionDumpTile extends CommandLineAction {
|
|
|
143
144
|
const tileCount = img.tileCount;
|
|
144
145
|
|
|
145
146
|
// Load all offsets in
|
|
146
|
-
await img.tileOffset.load(
|
|
147
|
+
await img.tileOffset.load();
|
|
147
148
|
|
|
148
149
|
for (let x = 0; x < tileCount.x; x++) {
|
|
149
150
|
for (let y = 0; y < tileCount.y; y++) {
|
|
@@ -187,7 +188,7 @@ export class ActionDumpTile extends CommandLineAction {
|
|
|
187
188
|
await this.dumpBounds(tif, this.output.value, index);
|
|
188
189
|
|
|
189
190
|
const source = tif.source as ChunkSourceBase;
|
|
190
|
-
const chunkIds = [...source.chunks.values()];
|
|
191
|
+
const chunkIds = [...(source.chunks as Map<unknown, unknown>).values()];
|
|
191
192
|
const result: CliResultMap[] = [
|
|
192
193
|
{
|
|
193
194
|
keys: [
|
package/src/action.info.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChunkSourceBase } from '@chunkd/core';
|
|
2
|
+
import { CogTiffImage, TiffTag, TiffTagGeo, TiffVersion } from '@cogeotiff/core';
|
|
2
3
|
import { CommandLineAction, CommandLineFlagParameter, CommandLineStringParameter } from '@rushstack/ts-command-line';
|
|
3
4
|
import c from 'ansi-colors';
|
|
4
5
|
import { ActionUtil, CliResultMap } from './action.util.js';
|
|
5
|
-
import { toByteSizeString } from './util.bytes.js';
|
|
6
6
|
import { CliTable } from './cli.table.js';
|
|
7
|
-
import {
|
|
8
|
-
import { ChunkSourceBase } from '@chunkd/core';
|
|
7
|
+
import { toByteSizeString } from './util.bytes.js';
|
|
9
8
|
|
|
10
9
|
function formatTag(tagId: TiffTag | TiffTagGeo, tagName: string, tagValue: any): { key: string; value: string } {
|
|
11
10
|
const key = `${String(tagId).padEnd(7, ' ')} ${String(tagName).padEnd(20)}`;
|
|
@@ -72,8 +71,9 @@ function parseGdalMetadata(img: CogTiffImage): string[] | null {
|
|
|
72
71
|
if (typeof metadata !== 'string') return null;
|
|
73
72
|
if (!metadata.startsWith('<GDALMetadata>')) return null;
|
|
74
73
|
return metadata
|
|
75
|
-
.replace('<GDALMetadata
|
|
76
|
-
.replace('</GDALMetadata
|
|
74
|
+
.replace('<GDALMetadata>\n', '')
|
|
75
|
+
.replace('</GDALMetadata>\n', '')
|
|
76
|
+
.replace('\n\x00', '')
|
|
77
77
|
.split('\n')
|
|
78
78
|
.map((c) => c.trim());
|
|
79
79
|
}
|
|
@@ -95,15 +95,15 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
95
95
|
const { tif } = await ActionUtil.getCogSource(this.file);
|
|
96
96
|
const [firstImage] = tif.images;
|
|
97
97
|
|
|
98
|
-
await firstImage.loadGeoTiffTags(
|
|
98
|
+
await firstImage.loadGeoTiffTags();
|
|
99
99
|
|
|
100
|
-
const isCogOptimized = tif.options.isCogOptimized;
|
|
101
100
|
const source = tif.source as ChunkSourceBase;
|
|
102
|
-
const chunkIds = [...source.chunks.values()];
|
|
101
|
+
const chunkIds = [...(source.chunks as Map<unknown, unknown>).values()];
|
|
103
102
|
|
|
104
103
|
const imageInfo = '\n' + TiffImageInfoTable.print(tif.images, '\t\t').join('\n');
|
|
105
104
|
|
|
106
105
|
const gdalMetadata = parseGdalMetadata(firstImage);
|
|
106
|
+
const ghostOptions = [...tif.options.options.entries()];
|
|
107
107
|
|
|
108
108
|
const isGeoLocated = firstImage.isGeoLocated;
|
|
109
109
|
|
|
@@ -138,15 +138,18 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
138
138
|
keys: [
|
|
139
139
|
{ key: 'COG optimized', value: tif.options.isCogOptimized },
|
|
140
140
|
tif.options.isBroken ? { key: 'COG broken', value: tif.options.isBroken } : null,
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
ghostOptions.length > 0
|
|
142
|
+
? {
|
|
143
|
+
key: 'Ghost Options',
|
|
144
|
+
value: '\n' + ghostOptions.map((c) => `\t\t${c[0]} = ${c[1]}`).join('\n'),
|
|
145
|
+
}
|
|
146
|
+
: null,
|
|
147
|
+
gdalMetadata
|
|
143
148
|
? {
|
|
144
|
-
key: '
|
|
145
|
-
value:
|
|
149
|
+
key: 'Metadata',
|
|
150
|
+
value: '\n' + gdalMetadata.map((c) => `\t\t${c}`).join('\n'),
|
|
146
151
|
}
|
|
147
152
|
: null,
|
|
148
|
-
isCogOptimized ? { key: 'Mask interleaved', value: tif.options.isMaskInterleaved } : null,
|
|
149
|
-
gdalMetadata ? { key: 'Metadata', value: gdalMetadata.map((c) => `\t\t${c}`).join('\n') } : null,
|
|
150
153
|
],
|
|
151
154
|
},
|
|
152
155
|
];
|
|
@@ -158,7 +161,7 @@ export class ActionCogInfo extends CommandLineAction {
|
|
|
158
161
|
title: `Image: ${img.id} - Tiff tags`,
|
|
159
162
|
keys: tiffTags.map((tagId) => formatTag(tagId, TiffTag[tagId], img.value(tagId))),
|
|
160
163
|
});
|
|
161
|
-
await img.loadGeoTiffTags(
|
|
164
|
+
await img.loadGeoTiffTags();
|
|
162
165
|
if (img.tagsGeo) {
|
|
163
166
|
const tiffTagsGeo = [...img.tagsGeo.keys()];
|
|
164
167
|
result.push({
|
package/src/action.tile.ts
CHANGED
|
@@ -28,11 +28,6 @@ export class ActionTile extends CommandLineAction {
|
|
|
28
28
|
throw new Error('XYZ was not defined');
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
const isCogOptimized = tif.options.isCogOptimized;
|
|
32
|
-
if (!isCogOptimized) {
|
|
33
|
-
logger.warn('COG is not optimized, fetching specific tiles will be slow.');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
31
|
const [x, y, z] = this.xyz.value.split(',').map((c) => parseInt(c));
|
|
37
32
|
if (isNaN(x) || isNaN(y) || isNaN(z)) {
|
|
38
33
|
throw new Error('Invalid XYZ, format: "X,Y,Z"');
|
|
@@ -40,7 +35,7 @@ export class ActionTile extends CommandLineAction {
|
|
|
40
35
|
|
|
41
36
|
await writeTile(tif, x, y, z, '.', logger);
|
|
42
37
|
const source = tif.source as ChunkSourceBase;
|
|
43
|
-
const chunkIds = [...source.chunks.values()];
|
|
38
|
+
const chunkIds = [...(source.chunks as Map<unknown, unknown>).values()];
|
|
44
39
|
|
|
45
40
|
const result: CliResultMap[] = [
|
|
46
41
|
{
|
package/src/action.util.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ChunkSource } from '@chunkd/core';
|
|
2
|
-
import { CogTiff } from '@cogeotiff/core';
|
|
3
2
|
import { fsa } from '@chunkd/fs';
|
|
3
|
+
import { CogTiff } from '@cogeotiff/core';
|
|
4
4
|
import { CommandLineStringParameter } from '@rushstack/ts-command-line';
|
|
5
5
|
import c from 'ansi-colors';
|
|
6
|
-
import { logger as CliLogger } from './cli.log.js';
|
|
7
6
|
|
|
8
7
|
export interface CLiResultMapLine {
|
|
9
8
|
key: string;
|
|
@@ -23,7 +22,7 @@ export const ActionUtil = {
|
|
|
23
22
|
if (source == null) throw new Error(`File "${file} is not valid`);
|
|
24
23
|
|
|
25
24
|
const tif = new CogTiff(source);
|
|
26
|
-
await tif.init(false
|
|
25
|
+
await tif.init(false);
|
|
27
26
|
return { source, tif };
|
|
28
27
|
},
|
|
29
28
|
formatResult(title: string, result: CliResultMap[]): string[] {
|
package/src/util.tile.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { LogType } from '@chunkd/core';
|
|
2
1
|
import { CogTiff, TiffMimeType } from '@cogeotiff/core';
|
|
3
2
|
import { promises as fs } from 'fs';
|
|
4
3
|
import * as path from 'path';
|
|
4
|
+
import type pino from 'pino';
|
|
5
5
|
|
|
6
6
|
const FileExtension: { [key: string]: string } = {
|
|
7
7
|
[TiffMimeType.JPEG]: 'jpeg',
|
|
@@ -39,7 +39,7 @@ export async function writeTile(
|
|
|
39
39
|
y: number,
|
|
40
40
|
index: number,
|
|
41
41
|
outputPath: string,
|
|
42
|
-
logger:
|
|
42
|
+
logger: pino.Logger,
|
|
43
43
|
): Promise<void> {
|
|
44
44
|
const tile = await tif.getTile(x, y, index);
|
|
45
45
|
if (tile == null) {
|