@basemaps/cli 6.46.0 → 7.1.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.
Files changed (233) hide show
  1. package/README.md +10 -108
  2. package/build/cli/__tests__/util.test.d.ts +0 -1
  3. package/build/cli/__tests__/util.test.js +11 -10
  4. package/build/cli/__tests__/util.test.js.map +1 -1
  5. package/build/cli/bin.d.ts +0 -1
  6. package/build/cli/config/action.bundle.assets.d.ts +5 -7
  7. package/build/cli/config/action.bundle.assets.js +34 -21
  8. package/build/cli/config/action.bundle.assets.js.map +1 -1
  9. package/build/cli/config/action.bundle.d.ts +1 -1
  10. package/build/cli/config/action.bundle.js +40 -12
  11. package/build/cli/config/action.bundle.js.map +1 -1
  12. package/build/cli/config/action.import.d.ts +4 -9
  13. package/build/cli/config/action.import.js +131 -110
  14. package/build/cli/config/action.import.js.map +1 -1
  15. package/build/cli/config/config.diff.d.ts +2 -2
  16. package/build/cli/config/config.diff.js +6 -4
  17. package/build/cli/config/config.diff.js.map +1 -1
  18. package/build/cli/config/config.update.d.ts +3 -5
  19. package/build/cli/config/config.update.js +42 -7
  20. package/build/cli/config/config.update.js.map +1 -1
  21. package/build/cli/folder.d.ts +0 -1
  22. package/build/cli/folder.js +1 -2
  23. package/build/cli/folder.js.map +1 -1
  24. package/build/cli/index.d.ts +0 -2
  25. package/build/cli/index.js +2 -17
  26. package/build/cli/index.js.map +1 -1
  27. package/build/cli/server/action.serve.d.ts +0 -1
  28. package/build/cli/server/action.serve.js +27 -4
  29. package/build/cli/server/action.serve.js.map +1 -1
  30. package/build/cli/util.d.ts +3 -8
  31. package/build/cli/util.js +48 -55
  32. package/build/cli/util.js.map +1 -1
  33. package/package.json +20 -24
  34. package/CHANGELOG.md +0 -1589
  35. package/build/cli/__tests__/util.test.d.ts.map +0 -1
  36. package/build/cli/base.cli.d.ts +0 -1
  37. package/build/cli/base.cli.d.ts.map +0 -1
  38. package/build/cli/base.cli.js +0 -2
  39. package/build/cli/base.cli.js.map +0 -1
  40. package/build/cli/bin.d.ts.map +0 -1
  41. package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
  42. package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
  43. package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
  44. package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
  45. package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
  46. package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
  47. package/build/cli/cogify/__tests__/semver.test.js +0 -62
  48. package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
  49. package/build/cli/cogify/action.cog.d.ts +0 -20
  50. package/build/cli/cogify/action.cog.d.ts.map +0 -1
  51. package/build/cli/cogify/action.cog.js +0 -198
  52. package/build/cli/cogify/action.cog.js.map +0 -1
  53. package/build/cli/cogify/action.job.d.ts +0 -28
  54. package/build/cli/cogify/action.job.d.ts.map +0 -1
  55. package/build/cli/cogify/action.job.js +0 -176
  56. package/build/cli/cogify/action.job.js.map +0 -1
  57. package/build/cli/cogify/action.make.cog.d.ts +0 -23
  58. package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
  59. package/build/cli/cogify/action.make.cog.js +0 -218
  60. package/build/cli/cogify/action.make.cog.js.map +0 -1
  61. package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
  62. package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
  63. package/build/cli/cogify/action.make.cog.pr.js +0 -96
  64. package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
  65. package/build/cli/cogify/batch.job.d.ts +0 -40
  66. package/build/cli/cogify/batch.job.d.ts.map +0 -1
  67. package/build/cli/cogify/batch.job.js +0 -205
  68. package/build/cli/cogify/batch.job.js.map +0 -1
  69. package/build/cli/cogify/cutline.d.ts +0 -5
  70. package/build/cli/cogify/cutline.d.ts.map +0 -1
  71. package/build/cli/cogify/cutline.js +0 -33
  72. package/build/cli/cogify/cutline.js.map +0 -1
  73. package/build/cli/cogify/semver.util.d.ts +0 -24
  74. package/build/cli/cogify/semver.util.d.ts.map +0 -1
  75. package/build/cli/cogify/semver.util.js +0 -56
  76. package/build/cli/cogify/semver.util.js.map +0 -1
  77. package/build/cli/config/action.bundle.assets.d.ts.map +0 -1
  78. package/build/cli/config/action.bundle.d.ts.map +0 -1
  79. package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
  80. package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
  81. package/build/cli/config/action.cog.mapsheet.js +0 -107
  82. package/build/cli/config/action.cog.mapsheet.js.map +0 -1
  83. package/build/cli/config/action.imagery.config.d.ts +0 -11
  84. package/build/cli/config/action.imagery.config.d.ts.map +0 -1
  85. package/build/cli/config/action.imagery.config.js +0 -142
  86. package/build/cli/config/action.imagery.config.js.map +0 -1
  87. package/build/cli/config/action.import.d.ts.map +0 -1
  88. package/build/cli/config/config.diff.d.ts.map +0 -1
  89. package/build/cli/config/config.update.d.ts.map +0 -1
  90. package/build/cli/folder.d.ts.map +0 -1
  91. package/build/cli/github/github.d.ts +0 -49
  92. package/build/cli/github/github.d.ts.map +0 -1
  93. package/build/cli/github/github.js +0 -107
  94. package/build/cli/github/github.js.map +0 -1
  95. package/build/cli/github/make.cog.pr.d.ts +0 -42
  96. package/build/cli/github/make.cog.pr.d.ts.map +0 -1
  97. package/build/cli/github/make.cog.pr.js +0 -173
  98. package/build/cli/github/make.cog.pr.js.map +0 -1
  99. package/build/cli/index.d.ts.map +0 -1
  100. package/build/cli/overview/__test__/wmts.overview.test.d.ts +0 -2
  101. package/build/cli/overview/__test__/wmts.overview.test.d.ts.map +0 -1
  102. package/build/cli/overview/__test__/wmts.overview.test.js +0 -24
  103. package/build/cli/overview/__test__/wmts.overview.test.js.map +0 -1
  104. package/build/cli/overview/action.create.overview.d.ts +0 -17
  105. package/build/cli/overview/action.create.overview.d.ts.map +0 -1
  106. package/build/cli/overview/action.create.overview.js +0 -174
  107. package/build/cli/overview/action.create.overview.js.map +0 -1
  108. package/build/cli/overview/overview.wmts.d.ts +0 -3
  109. package/build/cli/overview/overview.wmts.d.ts.map +0 -1
  110. package/build/cli/overview/overview.wmts.js +0 -29
  111. package/build/cli/overview/overview.wmts.js.map +0 -1
  112. package/build/cli/overview/tile.generator.d.ts +0 -13
  113. package/build/cli/overview/tile.generator.d.ts.map +0 -1
  114. package/build/cli/overview/tile.generator.js +0 -86
  115. package/build/cli/overview/tile.generator.js.map +0 -1
  116. package/build/cli/overview/timer.d.ts +0 -14
  117. package/build/cli/overview/timer.d.ts.map +0 -1
  118. package/build/cli/overview/timer.js +0 -21
  119. package/build/cli/overview/timer.js.map +0 -1
  120. package/build/cli/server/action.serve.d.ts.map +0 -1
  121. package/build/cli/sprites/action.sprites.d.ts +0 -11
  122. package/build/cli/sprites/action.sprites.d.ts.map +0 -1
  123. package/build/cli/sprites/action.sprites.js +0 -42
  124. package/build/cli/sprites/action.sprites.js.map +0 -1
  125. package/build/cli/util.d.ts.map +0 -1
  126. package/build/cog/__tests__/builder.test.d.ts +0 -2
  127. package/build/cog/__tests__/builder.test.d.ts.map +0 -1
  128. package/build/cog/__tests__/builder.test.js +0 -81
  129. package/build/cog/__tests__/builder.test.js.map +0 -1
  130. package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
  131. package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
  132. package/build/cog/__tests__/cog.stac.job.test.js +0 -319
  133. package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
  134. package/build/cog/__tests__/cog.test.d.ts +0 -2
  135. package/build/cog/__tests__/cog.test.d.ts.map +0 -1
  136. package/build/cog/__tests__/cog.test.js +0 -91
  137. package/build/cog/__tests__/cog.test.js.map +0 -1
  138. package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
  139. package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
  140. package/build/cog/__tests__/cog.vrt.test.js +0 -229
  141. package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
  142. package/build/cog/__tests__/cutline.test.d.ts +0 -2
  143. package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
  144. package/build/cog/__tests__/cutline.test.js +0 -300
  145. package/build/cog/__tests__/cutline.test.js.map +0 -1
  146. package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
  147. package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
  148. package/build/cog/__tests__/projection.loader.test.js +0 -27
  149. package/build/cog/__tests__/projection.loader.test.js.map +0 -1
  150. package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
  151. package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
  152. package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
  153. package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
  154. package/build/cog/builder.d.ts +0 -49
  155. package/build/cog/builder.d.ts.map +0 -1
  156. package/build/cog/builder.js +0 -177
  157. package/build/cog/builder.js.map +0 -1
  158. package/build/cog/cog.d.ts +0 -22
  159. package/build/cog/cog.d.ts.map +0 -1
  160. package/build/cog/cog.js +0 -72
  161. package/build/cog/cog.js.map +0 -1
  162. package/build/cog/cog.stac.job.d.ts +0 -106
  163. package/build/cog/cog.stac.job.d.ts.map +0 -1
  164. package/build/cog/cog.stac.job.js +0 -257
  165. package/build/cog/cog.stac.job.js.map +0 -1
  166. package/build/cog/cog.vrt.d.ts +0 -18
  167. package/build/cog/cog.vrt.d.ts.map +0 -1
  168. package/build/cog/cog.vrt.js +0 -102
  169. package/build/cog/cog.vrt.js.map +0 -1
  170. package/build/cog/constants.d.ts +0 -5
  171. package/build/cog/constants.d.ts.map +0 -1
  172. package/build/cog/constants.js +0 -5
  173. package/build/cog/constants.js.map +0 -1
  174. package/build/cog/cutline.d.ts +0 -75
  175. package/build/cog/cutline.d.ts.map +0 -1
  176. package/build/cog/cutline.js +0 -250
  177. package/build/cog/cutline.js.map +0 -1
  178. package/build/cog/job.factory.d.ts +0 -10
  179. package/build/cog/job.factory.d.ts.map +0 -1
  180. package/build/cog/job.factory.js +0 -92
  181. package/build/cog/job.factory.js.map +0 -1
  182. package/build/cog/projection.loader.d.ts +0 -13
  183. package/build/cog/projection.loader.d.ts.map +0 -1
  184. package/build/cog/projection.loader.js +0 -27
  185. package/build/cog/projection.loader.js.map +0 -1
  186. package/build/cog/stac.d.ts +0 -32
  187. package/build/cog/stac.d.ts.map +0 -1
  188. package/build/cog/stac.js +0 -3
  189. package/build/cog/stac.js.map +0 -1
  190. package/build/cog/types.d.ts +0 -83
  191. package/build/cog/types.d.ts.map +0 -1
  192. package/build/cog/types.js +0 -2
  193. package/build/cog/types.js.map +0 -1
  194. package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
  195. package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
  196. package/build/gdal/__tests__/gdal.progress.test.js +0 -22
  197. package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
  198. package/build/gdal/__tests__/gdal.test.d.ts +0 -2
  199. package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
  200. package/build/gdal/__tests__/gdal.test.js +0 -52
  201. package/build/gdal/__tests__/gdal.test.js.map +0 -1
  202. package/build/gdal/gdal.cog.d.ts +0 -42
  203. package/build/gdal/gdal.cog.d.ts.map +0 -1
  204. package/build/gdal/gdal.cog.js +0 -108
  205. package/build/gdal/gdal.cog.js.map +0 -1
  206. package/build/gdal/gdal.command.d.ts +0 -44
  207. package/build/gdal/gdal.command.d.ts.map +0 -1
  208. package/build/gdal/gdal.command.js +0 -87
  209. package/build/gdal/gdal.command.js.map +0 -1
  210. package/build/gdal/gdal.config.d.ts +0 -51
  211. package/build/gdal/gdal.config.d.ts.map +0 -1
  212. package/build/gdal/gdal.config.js +0 -23
  213. package/build/gdal/gdal.config.js.map +0 -1
  214. package/build/gdal/gdal.d.ts +0 -19
  215. package/build/gdal/gdal.d.ts.map +0 -1
  216. package/build/gdal/gdal.docker.d.ts +0 -18
  217. package/build/gdal/gdal.docker.d.ts.map +0 -1
  218. package/build/gdal/gdal.docker.js +0 -82
  219. package/build/gdal/gdal.docker.js.map +0 -1
  220. package/build/gdal/gdal.js +0 -28
  221. package/build/gdal/gdal.js.map +0 -1
  222. package/build/gdal/gdal.local.d.ts +0 -10
  223. package/build/gdal/gdal.local.d.ts.map +0 -1
  224. package/build/gdal/gdal.local.js +0 -22
  225. package/build/gdal/gdal.local.js.map +0 -1
  226. package/build/gdal/gdal.progress.d.ts +0 -16
  227. package/build/gdal/gdal.progress.d.ts.map +0 -1
  228. package/build/gdal/gdal.progress.js +0 -50
  229. package/build/gdal/gdal.progress.js.map +0 -1
  230. package/build/index.d.ts +0 -6
  231. package/build/index.d.ts.map +0 -1
  232. package/build/index.js +0 -6
  233. package/build/index.js.map +0 -1
@@ -1,250 +0,0 @@
1
- import { Bounds, Epsg, Projection, TileMatrixSet } from '@basemaps/geo';
2
- import { compareName, fsa } from '@basemaps/shared';
3
- import { clipMultipolygon, featuresToMultiPolygon, intersection, toFeatureCollection, toFeatureMultiPolygon, union, } from '@linzjs/geojson';
4
- import { AlignedLevel, CoveringFraction } from './constants.js';
5
- /** Padding to always apply to image boundies */
6
- const PixelPadding = 200;
7
- /** fraction to scale source imagery to avoid degenerate edges */
8
- const SourceSmoothScale = 1 + 1e-8;
9
- function findGeoJsonProjection(geojson) {
10
- var _a, _b, _c, _d;
11
- return (_d = Epsg.parse((_c = (_b = (_a = geojson === null || geojson === void 0 ? void 0 : geojson.crs) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '')) !== null && _d !== void 0 ? _d : Epsg.Wgs84;
12
- }
13
- function namedBounds(tms, tile) {
14
- return { name: TileMatrixSet.tileToName(tile), ...tms.tileToSourceBounds(tile).toJson() };
15
- }
16
- export function polyContainsBounds(poly, bounds) {
17
- const clipped = clipMultipolygon(poly, bounds.toBbox());
18
- if (clipped.length !== 1 || clipped[0].length !== 1 || clipped[0][0].length !== 5)
19
- return false;
20
- return Bounds.fromMultiPolygon(clipped).containsBounds(bounds);
21
- }
22
- /**
23
- * Filter out duplicate tiles
24
- */
25
- function addNonDupes(list, addList) {
26
- const len = list.length;
27
- for (const add of addList) {
28
- let i = 0;
29
- for (; i < len; ++i) {
30
- const curr = list[i];
31
- if (curr.x === add.x && curr.y === add.y && curr.z === add.z) {
32
- break;
33
- }
34
- }
35
- if (i === len) {
36
- list.push(add);
37
- }
38
- }
39
- }
40
- export class Cutline {
41
- /**
42
- * Create a Cutline instance from a `GeoJSON FeatureCollection`.
43
-
44
- * @param tileMatrix the tileMatrix the COGs will be created in.
45
-
46
- * @param clipPoly the optional cutline. The source imagery outline used by default. This
47
- * `FeatureCollection` is converted to one `MultiPolygon` with any holes removed and the
48
- * coordinates transposed from `Wgs84` to the target projection (unless already in target projection).
49
-
50
- * @param blend How much blending to consider when working out boundaries.
51
- */
52
- constructor(tileMatrix, clipPoly, blend = 0) {
53
- /** the polygon outlining a area covered by the source imagery and clip polygon */
54
- this.srcPoly = [];
55
- this.tileMatrix = tileMatrix;
56
- this.blend = blend;
57
- if (clipPoly == null) {
58
- this.clipPoly = [];
59
- return;
60
- }
61
- this.tileMatrix = tileMatrix;
62
- const proj = findGeoJsonProjection(clipPoly);
63
- const tmsProj = Projection.get(tileMatrix);
64
- const needProj = proj !== tmsProj.epsg;
65
- if (needProj && proj !== Epsg.Wgs84)
66
- throw new Error('Invalid geojson; CRS may not be set for cutline!');
67
- const convert = needProj ? tmsProj.fromWgs84 : undefined;
68
- this.clipPoly = featuresToMultiPolygon(clipPoly.features, true, convert).coordinates;
69
- }
70
- /**
71
- * Load a geojson cutline from the file-system.
72
- *
73
- * @param path the path of the cutline to load. Can be `s3://` or local file path.
74
- */
75
- static loadCutline(path) {
76
- return fsa.readJson(path);
77
- }
78
- /**
79
- * For the given tile `name`, filter `job.source.files` and cutline polygons that are within bounds plus
80
- * padding
81
- *
82
- * @param name
83
- * @param job
84
- * @returns names of source files required to render Cog
85
- */
86
- filterSourcesForName(name, job) {
87
- const tile = TileMatrixSet.nameToTile(name);
88
- const sourceCode = Projection.get(job.source.epsg);
89
- const targetCode = Projection.get(this.tileMatrix);
90
- const tileBounds = this.tileMatrix.tileToSourceBounds(tile);
91
- const tilePadded = this.padBounds(tileBounds, job.targetZoom);
92
- let tileBoundsInSrcProj = tilePadded;
93
- if (sourceCode !== targetCode) {
94
- // convert the padded quadKey to source projection ensuring fully enclosed
95
- const poly = targetCode.projectMultipolygon([tileBoundsInSrcProj.toPolygon()], sourceCode);
96
- tileBoundsInSrcProj = Bounds.fromMultiPolygon(poly);
97
- }
98
- const paddedBbox = tilePadded.toBbox();
99
- if (this.clipPoly.length > 0) {
100
- const poly = clipMultipolygon(this.clipPoly, paddedBbox);
101
- if (poly.length === 0) {
102
- // this tile is not needed
103
- this.clipPoly = [];
104
- return [];
105
- }
106
- else if (polyContainsBounds(poly, tileBounds)) {
107
- // tile is completely surrounded; no cutline polygons needed
108
- this.clipPoly = [];
109
- }
110
- else {
111
- // set the cutline polygons to just the area of interest (minus degenerate edges)
112
- this.clipPoly = poly;
113
- }
114
- }
115
- return job.source.files
116
- .filter((image) => tileBoundsInSrcProj.intersects(Bounds.fromJson(image)))
117
- .map(({ name }) => name);
118
- }
119
- /**
120
- * Generate an optimized WebMercator tile cover for the supplied source images
121
- * @param sourceMetadata contains images bounds and projection info
122
- */
123
- optimizeCovering(sourceMetadata, alignedLevel = AlignedLevel) {
124
- this.findCovering(sourceMetadata);
125
- const { resZoom } = sourceMetadata;
126
- // Fix the cog Minimum Zoom by the aligned level
127
- const minZ = Math.max(0, resZoom - alignedLevel);
128
- let tiles = [];
129
- for (const tile of this.tileMatrix.topLevelTiles()) {
130
- // Don't make COGs with a tile.z < minZ.
131
- tiles = tiles.concat(this.makeTiles(tile, this.srcPoly, minZ, CoveringFraction).tiles);
132
- }
133
- if (tiles.length === 0) {
134
- throw new Error('Source imagery does not overlap with project extent');
135
- }
136
- const covering = tiles.map((tile) => namedBounds(this.tileMatrix, tile));
137
- // remove duplicate
138
- return covering
139
- .filter((curr) => {
140
- for (const other of covering) {
141
- if (other !== curr && Bounds.contains(other, curr))
142
- return false;
143
- }
144
- return true;
145
- })
146
- .sort(compareName);
147
- }
148
- /**
149
- * Convert JobCutline to geojson FeatureCollection
150
- */
151
- toGeoJson(clipPoly = this.clipPoly) {
152
- const feature = toFeatureCollection([toFeatureMultiPolygon(clipPoly)]);
153
- feature.crs = {
154
- type: 'name',
155
- properties: { name: this.tileMatrix.projection.toUrn() },
156
- };
157
- return feature;
158
- }
159
- /**
160
- * Merge child nodes that have at least a covering fraction
161
- * @param tile the tile to descend
162
- * @param srcArea the area of interest
163
- * @param minZ Only produce tiles for zoom levels at least `minZ` and no sibling tiles
164
- * greater than `minZ + 4`
165
- * @param coveringFraction merge tiles that cover at least this fraction
166
- * @return the tiles and fraction covered of the tile by this srcArea
167
- */
168
- makeTiles(tile, srcArea, minZ, coveringFraction) {
169
- const clipBounds = this.tileMatrix.tileToSourceBounds(tile).toBbox();
170
- srcArea = clipMultipolygon(srcArea, clipBounds);
171
- if (srcArea.length === 0) {
172
- return { tiles: [], fractionCovered: 0 };
173
- }
174
- if (tile.z === minZ + 4) {
175
- return { tiles: [tile], fractionCovered: 1 };
176
- }
177
- const ans = { tiles: [], fractionCovered: 0 };
178
- for (const child of this.tileMatrix.coverTile(tile)) {
179
- const { tiles, fractionCovered } = this.makeTiles(child, srcArea, minZ, coveringFraction);
180
- if (fractionCovered !== 0) {
181
- ans.fractionCovered += fractionCovered * 0.25;
182
- addNonDupes(ans.tiles, tiles);
183
- }
184
- }
185
- if (
186
- // tile too small OR children have enough coverage
187
- (tile.z > minZ + 2 || ans.fractionCovered >= coveringFraction) &&
188
- // AND more than one child tile
189
- ans.tiles.length > 1 &&
190
- // AND tile not too big
191
- tile.z >= minZ) {
192
- ans.tiles = [tile]; // replace children with parent
193
- }
194
- return ans;
195
- }
196
- /**
197
- * Find the polygon covering of source imagery and a (optional) clip cutline. Truncates the
198
- * cutline to match.
199
- *
200
- * @param sourceMetadata
201
- */
202
- findCovering(sourceMetadata) {
203
- var _a;
204
- let srcPoly = [];
205
- const { resZoom } = sourceMetadata;
206
- // merge imagery bounds
207
- for (const image of sourceMetadata.bounds) {
208
- const poly = [Bounds.fromJson(image).scaleFromCenter(SourceSmoothScale).toPolygon()];
209
- srcPoly = union(srcPoly, poly);
210
- }
211
- // Convert polygon to target projection
212
- const sourceProj = Projection.get(sourceMetadata.projection);
213
- const targetProj = Projection.get(this.tileMatrix);
214
- if (sourceProj !== targetProj) {
215
- srcPoly = sourceProj.projectMultipolygon(srcPoly, targetProj);
216
- }
217
- this.srcPoly = srcPoly;
218
- if (this.clipPoly.length === 0)
219
- return;
220
- const srcBounds = Bounds.fromMultiPolygon(srcPoly);
221
- const boundsPadded = this.padBounds(srcBounds, resZoom).toBbox();
222
- const poly = clipMultipolygon(this.clipPoly, boundsPadded);
223
- if (poly.length === 0) {
224
- throw new Error('No intersection between source imagery and cutline');
225
- }
226
- if (polyContainsBounds(poly, srcBounds)) {
227
- // tile is completely surrounded; no cutline polygons needed
228
- this.clipPoly = [];
229
- }
230
- else {
231
- // set the cutline polygons to just the area of interest (minus degenerate edges)
232
- this.clipPoly = poly;
233
- this.srcPoly = (_a = intersection(srcPoly, this.clipPoly)) !== null && _a !== void 0 ? _a : [];
234
- }
235
- }
236
- /**
237
- * Pad the bounds to take in to consideration blending and 100 pixels of adjacent image data
238
- *
239
- * @param bounds
240
- * @param resZoom the imagery resolution target zoom level
241
- */
242
- padBounds(bounds, resZoom) {
243
- const px = this.tileMatrix.pixelScale(resZoom);
244
- // Ensure cutline blend does not interferre with non-costal edges
245
- const widthScale = (bounds.width + px * (PixelPadding + this.blend) * 2) / bounds.width;
246
- const heightScale = (bounds.height + px * (PixelPadding + this.blend) * 2) / bounds.height;
247
- return bounds.scaleFromCenter(widthScale, heightScale);
248
- }
249
- }
250
- //# sourceMappingURL=cutline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cutline.js","sourceRoot":"","sources":["../../src/cog/cutline.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { CogStacJob, JobCreationContext } from './cog.stac.job.js';
2
- export declare const MaxConcurrencyDefault = 50;
3
- export declare function filterTiff(a: string): boolean;
4
- export declare const CogJobFactory: {
5
- /**
6
- * Create a COG Job and potentially submit it to AWS Batch for processing
7
- */
8
- create(ctx: JobCreationContext): Promise<CogStacJob>;
9
- };
10
- //# sourceMappingURL=job.factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job.factory.d.ts","sourceRoot":"","sources":["../../src/cog/job.factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7C;AAYD,eAAO,MAAM,aAAa;IACxB;;OAEG;gBACe,kBAAkB,GAAG,QAAQ,UAAU,CAAC;CAyF3D,CAAC"}
@@ -1,92 +0,0 @@
1
- import { Bounds } from '@basemaps/geo';
2
- import { fsa, isConfigS3Role, isFileConfigPath, LogConfig } from '@basemaps/shared';
3
- import { basename } from 'path';
4
- import * as ulid from 'ulid';
5
- import { BatchJob } from '../cli/cogify/batch.job.js';
6
- import { CogBuilder } from '../index.js';
7
- import { CogStacJob } from './cog.stac.job.js';
8
- import { Cutline } from './cutline.js';
9
- export const MaxConcurrencyDefault = 50;
10
- export function filterTiff(a) {
11
- const lowerA = a.toLowerCase();
12
- return lowerA.endsWith('.tiff') || lowerA.endsWith('.tif');
13
- }
14
- /** Group a file list by its zoom */
15
- function groupFiles(files) {
16
- var _a;
17
- const fileCounts = {};
18
- for (const f of files) {
19
- const zoom = f.name.split('-')[0];
20
- fileCounts[zoom] = ((_a = fileCounts[zoom]) !== null && _a !== void 0 ? _a : 0) + 1;
21
- }
22
- return fileCounts;
23
- }
24
- export const CogJobFactory = {
25
- /**
26
- * Create a COG Job and potentially submit it to AWS Batch for processing
27
- */
28
- async create(ctx) {
29
- var _a, _b, _c, _d, _e, _f, _g;
30
- const id = (_b = (_a = ctx.override) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : ulid.ulid();
31
- let imageryName = ctx.imageryName;
32
- if (imageryName == null)
33
- imageryName = basename(ctx.sourceLocation.path);
34
- const logger = LogConfig.get().child({ id, imageryName });
35
- const { sourceLocation } = ctx;
36
- logger.info({ source: ctx.sourceLocation.path, sourceRole: isConfigS3Role(sourceLocation) && sourceLocation.roleArn }, 'ListTiffs');
37
- fsa.configure(sourceLocation);
38
- const tiffList = isFileConfigPath(sourceLocation)
39
- ? sourceLocation.files
40
- : (await fsa.toArray(fsa.list(sourceLocation.path))).filter(filterTiff);
41
- const tiffSource = tiffList.map((path) => fsa.source(path));
42
- const maxConcurrency = (_d = (_c = ctx.override) === null || _c === void 0 ? void 0 : _c.concurrency) !== null && _d !== void 0 ? _d : MaxConcurrencyDefault;
43
- logger.info({ source: sourceLocation.path, tiffCount: tiffList.length }, 'LoadingTiffs');
44
- const cutline = new Cutline(ctx.tileMatrix, ctx.cutline && (await Cutline.loadCutline(ctx.cutline.href)), (_e = ctx.cutline) === null || _e === void 0 ? void 0 : _e.blend);
45
- const builder = new CogBuilder(ctx.tileMatrix, maxConcurrency, logger, (_f = ctx.override) === null || _f === void 0 ? void 0 : _f.projection);
46
- const metadata = await builder.build(tiffSource, cutline, (_g = ctx.override) === null || _g === void 0 ? void 0 : _g.alignedLevel);
47
- if (cutline.clipPoly.length === 0) {
48
- // no cutline needed for this imagery set
49
- ctx.cutline = undefined;
50
- }
51
- const files = metadata.files.sort(Bounds.compareArea);
52
- if (files.length > 0) {
53
- const bigArea = files[files.length - 1];
54
- const smallArea = files[0];
55
- logger.info({
56
- tileMatrix: ctx.tileMatrix.identifier,
57
- // Size of the biggest image
58
- big: bigArea.width / cutline.tileMatrix.pixelScale(metadata.resZoom),
59
- // Size of the smallest image
60
- small: smallArea.width / cutline.tileMatrix.pixelScale(metadata.resZoom),
61
- }, 'Covers');
62
- }
63
- // Don't log bounds as it is huge
64
- logger.info({
65
- ...metadata,
66
- tileMatrix: ctx.tileMatrix.identifier,
67
- bounds: undefined,
68
- files: undefined,
69
- fileCount: files.length,
70
- fileGroups: groupFiles(metadata.files),
71
- }, 'CoveringGenerated');
72
- let addAlpha = true;
73
- // -addalpha to vrt adds extra alpha layers even if one already exist
74
- if (metadata.bands > 3) {
75
- logger.info({ bandCount: metadata.bands }, 'Vrt:DetectedAlpha, Disabling -addalpha');
76
- addAlpha = false;
77
- }
78
- const job = await CogStacJob.create({
79
- id,
80
- imageryName,
81
- metadata,
82
- ctx,
83
- addAlpha,
84
- cutlinePoly: cutline.clipPoly,
85
- });
86
- if (ctx.batch)
87
- await BatchJob.batchJob(job, true, logger);
88
- logger.info({ tileMatrix: ctx.tileMatrix.identifier, job: job.getJobPath() }, 'Done');
89
- return job;
90
- },
91
- };
92
- //# sourceMappingURL=job.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job.factory.js","sourceRoot":"","sources":["../../src/cog/job.factory.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { Epsg } from '@basemaps/geo';
2
- import fetch from 'node-fetch';
3
- export declare class ProjectionLoader {
4
- static _fetch: typeof fetch;
5
- /**
6
- * Ensure that a projection EPSG code is avialable for use in Proj4js
7
- *
8
- * If its not already loaded, lookup definition from spatialreference.org
9
- * @param code
10
- */
11
- static load(code: number): Promise<Epsg>;
12
- }
13
- //# sourceMappingURL=projection.loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.loader.d.ts","sourceRoot":"","sources":["../../src/cog/projection.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,MAAM,eAAS;IAEtB;;;;;OAKG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAc/C"}
@@ -1,27 +0,0 @@
1
- import { Epsg, Projection } from '@basemaps/geo';
2
- import fetch from 'node-fetch';
3
- export class ProjectionLoader {
4
- /**
5
- * Ensure that a projection EPSG code is avialable for use in Proj4js
6
- *
7
- * If its not already loaded, lookup definition from spatialreference.org
8
- * @param code
9
- */
10
- static async load(code) {
11
- if (Projection.tryGet(code) != null)
12
- return Epsg.get(code);
13
- const url = `https://spatialreference.org/ref/epsg/${code}/ogcwkt/`;
14
- const res = await this._fetch(url);
15
- if (!res.ok)
16
- throw new Error('Failed to load projection information for:' + code);
17
- let epsg = Epsg.tryGet(code);
18
- if (epsg == null)
19
- epsg = new Epsg(code);
20
- const text = await res.text();
21
- Projection.define(epsg, text);
22
- return epsg;
23
- }
24
- }
25
- // Exposed for testing
26
- ProjectionLoader._fetch = fetch;
27
- //# sourceMappingURL=projection.loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.loader.js","sourceRoot":"","sources":["../../src/cog/projection.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,OAAO,gBAAgB;IAI3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,yCAAyC,IAAI,UAAU,CAAC;QAEpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,IAAI,CAAC,CAAC;QAElF,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;;AAtBD,sBAAsB;AACf,uBAAM,GAAG,KAAK,CAAC"}
@@ -1,32 +0,0 @@
1
- import { EpsgCode, StacCollection, StacItem } from '@basemaps/geo';
2
- import { CogGdalSettings } from './types.js';
3
- export interface CogGenerated {
4
- /** ISO date string */
5
- datetime: string;
6
- /** Package name of the generator */
7
- package: string;
8
- version: string;
9
- /** Commit hash of the generator */
10
- hash: string | undefined;
11
- }
12
- export interface CogOutputSummery extends CogGdalSettings {
13
- cutlineBlend?: number;
14
- }
15
- export interface CogSummaries {
16
- 'proj:epsg': EpsgCode[];
17
- /** Ground Sampling Distance in meters per pixel of the generated imagery */
18
- gsd: number[];
19
- 'linz:output': CogOutputSummery[];
20
- 'linz:generated': CogGenerated[];
21
- }
22
- export declare const CogStacKeywords: string[];
23
- export declare const CogStacItemExtensions: string[];
24
- /** STAC compliant structure for storing Job instructions */
25
- export type CogStac = StacCollection<CogSummaries>;
26
- export interface CogStacItemProperties {
27
- datetime: string;
28
- gsd: number;
29
- 'proj:epsg': EpsgCode;
30
- }
31
- export type CogStacItem = StacItem<CogStacItemProperties>;
32
- //# sourceMappingURL=stac.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stac.d.ts","sourceRoot":"","sources":["../../src/cog/stac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,4EAA4E;IAC5E,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,gBAAgB,EAAE,YAAY,EAAE,CAAC;CAGlC;AAED,eAAO,MAAM,eAAe,UAA6B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,UAAiB,CAAC;AAEpD,4DAA4D;AAC5D,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC"}
package/build/cog/stac.js DELETED
@@ -1,3 +0,0 @@
1
- export const CogStacKeywords = ['Imagery', 'New Zealand'];
2
- export const CogStacItemExtensions = ['projection'];
3
- //# sourceMappingURL=stac.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stac.js","sourceRoot":"","sources":["../../src/cog/stac.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,CAAC,CAAC"}
@@ -1,83 +0,0 @@
1
- import { BoundingBox, EpsgCode, NamedBounds, TileMatrixSet } from '@basemaps/geo';
2
- import { FileConfig } from '@basemaps/shared';
3
- import { GdalCogBuilderResampling } from '../gdal/gdal.config.js';
4
- export interface FeatureCollectionWithCrs extends GeoJSON.FeatureCollection {
5
- crs: {
6
- type: string;
7
- properties: {
8
- name: string;
9
- };
10
- };
11
- }
12
- export interface ImageryProperties {
13
- /** Ground Sampling Distance in meters per pixel */
14
- gsd: number;
15
- /** File access details */
16
- location: FileConfig;
17
- /** List of input files */
18
- files: NamedBounds[];
19
- }
20
- export interface CogSourceProperties extends ImageryProperties {
21
- epsg: EpsgCode;
22
- }
23
- export interface CogGdalSettings {
24
- resampling: GdalCogBuilderResampling;
25
- nodata?: number;
26
- /**
27
- * Quality level to use
28
- * @default 90
29
- */
30
- quality: number;
31
- /** Vrts will add a second alpha layer if one exists, so dont always add one */
32
- addAlpha: boolean;
33
- }
34
- export interface CogOutputProperties extends CogGdalSettings, ImageryProperties {
35
- /** The bounds of all the cogs */
36
- bounds: BoundingBox;
37
- /** Identifier of the tile matrix to use */
38
- tileMatrix?: string;
39
- epsg: EpsgCode;
40
- /** Cutline options */
41
- cutline?: {
42
- href: string;
43
- blend: number;
44
- };
45
- /** Should this job ignore source coverage and just produce one big COG for EPSG extent */
46
- oneCogCovering: boolean;
47
- }
48
- export interface CogJobJson {
49
- /** Unique processing Id */
50
- id: string;
51
- /** Imagery set name */
52
- name: string;
53
- title: string;
54
- description?: string;
55
- source: CogSourceProperties;
56
- output: CogOutputProperties;
57
- }
58
- export interface CogJob extends CogJobJson {
59
- tileMatrix: TileMatrixSet;
60
- targetZoom: number;
61
- getJobPath(key?: string): string;
62
- }
63
- export interface SourceMetadata {
64
- /** Number of imagery bands generally RGB (3) or RGBA (4) */
65
- bands: number;
66
- /** Bounding box for polygons */
67
- bounds: NamedBounds[];
68
- /** The number of pixels per meter for the best source image */
69
- pixelScale: number;
70
- /** Highest quality zoom level for the images */
71
- resZoom: number;
72
- /** EPSG projection number */
73
- projection: EpsgCode;
74
- /** GDAL_NODATA value */
75
- nodata?: number;
76
- }
77
- export interface CogBuilderMetadata extends SourceMetadata {
78
- /** the bounding box of all the COGs */
79
- targetBounds: BoundingBox;
80
- /** list of file basenames and their bounding box */
81
- files: NamedBounds[];
82
- }
83
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cog/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,wBAAyB,SAAQ,OAAO,CAAC,iBAAiB;IACzE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,QAAQ,EAAE,UAAU,CAAC;IAErB,0BAA0B;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,wBAAwB,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe,EAAE,iBAAiB;IAC7E,iCAAiC;IACjC,MAAM,EAAE,WAAW,CAAC;IAEpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IAEf,sBAAsB;IACtB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,0FAA0F;IAC1F,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;IAEtB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,6BAA6B;IAC7B,UAAU,EAAE,QAAQ,CAAC;IAErB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,uCAAuC;IACvC,YAAY,EAAE,WAAW,CAAC;IAE1B,oDAAoD;IACpD,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cog/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gdal.progress.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.progress.test.d.ts","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.progress.test.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- import o from 'ospec';
2
- import { GdalProgressParser } from '../gdal.progress.js';
3
- o.spec('GdalProgressParser', () => {
4
- o('should emit on progress', () => {
5
- const prog = new GdalProgressParser();
6
- o(prog.progress).equals(0);
7
- prog.data(Buffer.from('\n.'));
8
- o(prog.progress.toFixed(2)).equals('3.23');
9
- });
10
- o('should take 31 dots to finish', () => {
11
- const prog = new GdalProgressParser();
12
- let processCount = 0;
13
- prog.data(Buffer.from('\n'));
14
- prog.on('progress', () => processCount++);
15
- for (let i = 0; i < 31; i++) {
16
- prog.data(Buffer.from('.'));
17
- o(processCount).equals(i + 1);
18
- }
19
- o(prog.progress.toFixed(2)).equals('100.00');
20
- });
21
- });
22
- //# sourceMappingURL=gdal.progress.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.progress.test.js","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.progress.test.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,CAAC,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/B;QACD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gdal.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.test.d.ts","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.test.ts"],"names":[],"mappings":""}