@cogeotiff/core 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 +51 -0
- package/build/__benchmark__/cog.read.benchmark.js +7 -4
- package/build/__test__/cog.image.test.js +26 -2
- package/build/cog.tiff.d.ts +2 -2
- package/build/cog.tiff.d.ts.map +1 -1
- package/build/cog.tiff.image.d.ts +16 -7
- package/build/cog.tiff.image.d.ts.map +1 -1
- package/build/cog.tiff.image.js +56 -33
- package/build/cog.tiff.js +19 -54
- package/build/const/tiff.mime.d.ts +5 -1
- package/build/const/tiff.mime.d.ts.map +1 -1
- package/build/const/tiff.mime.js +9 -1
- package/build/read/tag/__test__/tag.test.js +1 -1
- package/build/read/tag/tiff.tag.base.d.ts.map +1 -1
- package/build/read/tag/tiff.tag.base.js +1 -1
- package/build/read/tag/tiff.tag.lazy.d.ts +1 -2
- package/build/read/tag/tiff.tag.lazy.d.ts.map +1 -1
- package/build/read/tag/tiff.tag.lazy.js +3 -3
- package/build/read/tag/tiff.tag.offset.d.ts +2 -3
- package/build/read/tag/tiff.tag.offset.d.ts.map +1 -1
- package/build/read/tag/tiff.tag.offset.js +5 -5
- package/build/read/tiff.gdal.d.ts +6 -19
- package/build/read/tiff.gdal.d.ts.map +1 -1
- package/build/read/tiff.gdal.js +32 -53
- package/package.json +5 -6
- package/src/__benchmark__/cog.read.benchmark.ts +6 -3
- package/src/__test__/cog.image.test.ts +29 -1
- package/src/cog.tiff.image.ts +55 -33
- package/src/cog.tiff.ts +17 -68
- package/src/const/tiff.mime.ts +8 -0
- package/src/read/tag/__test__/tag.test.ts +1 -1
- package/src/read/tag/tiff.tag.base.ts +0 -1
- package/src/read/tag/tiff.tag.lazy.ts +2 -3
- package/src/read/tag/tiff.tag.offset.ts +4 -5
- package/src/read/tiff.gdal.ts +31 -58
- package/build/util/util.enum.d.ts +0 -6
- package/build/util/util.enum.d.ts.map +0 -1
- package/build/util/util.enum.js +0 -17
- package/src/util/util.enum.ts +0 -16
|
@@ -20,4 +20,4 @@ o.spec('TiffTag', () => {
|
|
|
20
20
|
o(lazy.value).deepEquals(res);
|
|
21
21
|
});
|
|
22
22
|
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVhZC90YWcvX190ZXN0X18vdGFnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDbkIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7SUFFMUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDYixhQUFhLENBQUMsTUFBZ0MsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1RCxDQUFDLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4QyxNQUFNLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3RGaWxlQ2h1bmtTb3VyY2UgfSBmcm9tICdAY2h1bmtkL2NvcmUvYnVpbGQvX190ZXN0X18vY2h1bmsuc291cmNlLmZha2UuanMnO1xuaW1wb3J0IG8gZnJvbSAnb3NwZWMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgQ29nVGlmZiB9IGZyb20gJy4uLy4uLy4uL2NvZy50aWZmLmpzJztcbmltcG9ydCB7IENvZ1RpZmZUYWdMYXp5IH0gZnJvbSAnLi4vdGlmZi50YWcubGF6eS5qcyc7XG5cbm8uc3BlYygnVGlmZlRhZycsICgpID0+IHtcbiAgICBjb25zdCBkaXJOYW1lID0gZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpO1xuICAgIGNvbnN0IGNvZ1NvdXJjZUZpbGUgPSBuZXcgVGVzdEZpbGVDaHVua1NvdXJjZShwYXRoLmpvaW4oZGlyTmFtZSwgJy4uLy4uLy4uLy4uLy4uL2RhdGEvcmdiYThfdGlsZWQudGlmZicpKTtcblxuICAgIG8uYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICAgIChjb2dTb3VyY2VGaWxlLmNodW5rcyBhcyBNYXA8dW5rbm93biwgdW5rbm93bj4pLmNsZWFyKCk7XG4gICAgfSk7XG5cbiAgICBvKCdzaG91bGQgbG9hZCBsYXp5IHRhZ3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpZmYgPSBuZXcgQ29nVGlmZihjb2dTb3VyY2VGaWxlKTtcblxuICAgICAgICBhd2FpdCBjb2dTb3VyY2VGaWxlLmxvYWRCeXRlcygzNjgwLCA4KTtcbiAgICAgICAgY29uc3QgbGF6eSA9IG5ldyBDb2dUaWZmVGFnTGF6eSgzMzksIHRpZmYsIDM2ODApO1xuICAgICAgICBvKGxhenkudmFsdWUpLmVxdWFscyhudWxsKTtcblxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBsYXp5LmZldGNoKCk7XG4gICAgICAgIG8ocmVzKS5kZWVwRXF1YWxzKFsxODc2MSwgNDMsIDgsIDBdKTtcbiAgICAgICAgbyhsYXp5LnZhbHVlKS5kZWVwRXF1YWxzKHJlcyk7XG4gICAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiff.tag.base.d.ts","sourceRoot":"","sources":["../../../src/read/tag/tiff.tag.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C,8BAAsB,cAAc,CAAC,CAAC,GAAG,OAAO;IAC5C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEzB,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAAS;IAE3B,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,EAAE,OAAO,CAAC;gBAEF,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"tiff.tag.base.d.ts","sourceRoot":"","sources":["../../../src/read/tag/tiff.tag.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C,8BAAsB,cAAc,CAAC,CAAC,GAAG,OAAO;IAC5C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEzB,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAAS;IAE3B,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,EAAE,OAAO,CAAC;gBAEF,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAYrD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,IAAI,YAAY,IAAI,MAAM,CAIzB;IAED,8BAA8B;IAC9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,4EAA4E;IAC5E,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,4CAA4C;IAC5C,SAAS,IAAI,CAAC;IAoBd,oDAAoD;IACpD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUpC"}
|
|
@@ -76,4 +76,4 @@ export class CogTiffTagBase {
|
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlmZi50YWcuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWFkL3RhZy90aWZmLnRhZy5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEYsTUFBTSxPQUFnQixjQUFjO0lBdUJoQyxZQUFZLEVBQVUsRUFBRSxJQUFhLEVBQUUsTUFBYztRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUV6QixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQVdEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFPRCx1Q0FBdUM7SUFDdkMsSUFBSSxZQUFZO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU8sSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDMUQsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxTQUFTO1FBQ0wsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLEtBQUssR0FBRyxZQUFZLENBQUM7UUFFeEMsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBaUIsQ0FBQztRQUUxRSxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLElBQUksWUFBWSxFQUFFO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsK0JBQStCO1FBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLO1lBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBa0IsQ0FBQztRQUU1RixPQUFPLE1BQXNCLENBQUM7SUFDbEMsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxNQUFNO1FBQ0YsT0FBTztZQUNILEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNwQixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29nVGlmZiB9IGZyb20gJy4uLy4uL2NvZy50aWZmLmpzJztcbmltcG9ydCB7IFRpZmZUYWcgfSBmcm9tICcuLi8uLi9jb25zdC90aWZmLnRhZy5pZC5qcyc7XG5pbXBvcnQgeyBUaWZmVGFnVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vY29uc3QvdGlmZi50YWcudmFsdWUuanMnO1xuaW1wb3J0IHsgZ2V0VGlmZlRhZ1NpemUsIGdldFRpZmZUYWdWYWx1ZVJlYWRlciB9IGZyb20gJy4uL3RpZmYudmFsdWUucmVhZGVyLmpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvZ1RpZmZUYWdCYXNlPFQgPSB1bmtub3duPiB7XG4gICAgLyoqXG4gICAgICogVmFsdWUgb2YgdGhlIHRpZmYgdGFnLCBtYXkgYmUgbnVsbCBpZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuIHJlYWRcbiAgICAgKi9cbiAgICBhYnN0cmFjdCB2YWx1ZTogVCB8IG51bGw7XG5cbiAgICAvKiogUmF3IG9mZnNldCBmb3Igd2hlcmUgaW4gdGhlIHRpZiB0aGlzIHRhZyBzdGFydHMgKi9cbiAgICBwcml2YXRlIGJ5dGVPZmZzZXQ6IG51bWJlcjtcblxuICAgIC8qKiBOYW1lIG9mIHRoZSB0YWcgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogVGlmVGFnSWQgQHNlZSBUaWZmVGFnICovXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIC8qKiBUeXBlIG9mIGRhdGEgaW5zaWRlIHRoZSByZWNvcmQgQHNlZSB0aGlzLmRhdGFUeXBlTmFtZSAqL1xuICAgIGRhdGFUeXBlOiBudW1iZXI7XG5cbiAgICAvKiogTnVtYmVyIG9mIHJlY29yZHMgaW5zaWRlIHRoZSB0YWcgKi9cbiAgICBkYXRhQ291bnQ6IG51bWJlcjtcblxuICAgIHRpZmY6IENvZ1RpZmY7XG5cbiAgICBjb25zdHJ1Y3RvcihpZDogbnVtYmVyLCB0aWZmOiBDb2dUaWZmLCBvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnRpZmYgPSB0aWZmO1xuICAgICAgICB0aGlzLmJ5dGVPZmZzZXQgPSBvZmZzZXQ7XG5cbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLm5hbWUgPSBUaWZmVGFnW3RoaXMuaWRdO1xuICAgICAgICB0aGlzLmRhdGFUeXBlID0gdGhpcy50aWZmLnNvdXJjZS5nZXRVaW50MTYob2Zmc2V0ICsgMik7XG4gICAgICAgIHRoaXMuZGF0YUNvdW50ID0gdGhpcy50aWZmLnNvdXJjZS5nZXRVaW50KG9mZnNldCArIDQsIHRoaXMudGlmZi5pZmRDb25maWcucG9pbnRlcik7XG4gICAgICAgIHRoaXMuZGF0YVR5cGVTaXplID0gZ2V0VGlmZlRhZ1NpemUodGhpcy5kYXRhVHlwZSk7XG4gICAgICAgIHRoaXMuZGF0YUxlbmd0aCA9IHRoaXMuZGF0YVR5cGVTaXplICogdGhpcy5kYXRhQ291bnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGF2ZSB0aGUgYnl0ZXMgZm9yIHRoZSB0YWcgYmVlbiBsb2FkZWQsIG9yIGlzIGEgZmV0Y2ggcmVxdWlyZWQgdG8gcmVhZCB0aGUgdGFnXG4gICAgICovXG4gICAgZ2V0IGhhc0J5dGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50aWZmLnNvdXJjZS5oYXNCeXRlcyh0aGlzLnZhbHVlUG9pbnRlciwgdGhpcy5kYXRhTGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpcyB0aGUgdGFnIHJlYWR5IHRvIGJlIHJlYWRcbiAgICAgKi9cbiAgICBnZXQgaXNSZWFkeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzaXplIG9mIHRoZSBkYXRhIHR5cGVcbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVGhpcyBpcyBvbmx5IHRoZSBzaXplIG9mIG9uZSBpbnN0YW5jZSBvZiB0aGUgZGF0YSBAc2VlIHRoaXMuZGF0YUxlbmd0aCBmb3IgdG90YWwgYnl0ZSBzaXplXG4gICAgICpcbiAgICAgKi9cbiAgICBkYXRhVHlwZVNpemU6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEdldCBhIGh1bWFuIHJlYWRhYmxlIG5hbWUgZm9yIGEgZGF0YXR5cGVcbiAgICAgKlxuICAgICAqL1xuICAgIGdldCBkYXRhVHlwZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFRpZmZUYWdWYWx1ZVR5cGVbdGhpcy5kYXRhVHlwZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBudW1iZXIgb2YgYnl0ZXMgdXNlZCBmb3IgdGhlIGFsbCBvZiB0aGUgZGF0YVxuICAgICAqL1xuICAgIGRhdGFMZW5ndGg6IG51bWJlcjtcblxuICAgIC8qKiBhYnNvbHV0ZSBvZmZzZXQgb2YgdGhlIFRhZyB2YWx1ZSAqL1xuICAgIGdldCB2YWx1ZVBvaW50ZXIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWVPZmZzZXQgPSB0aGlzLnNpemUgLSB0aGlzLnRpZmYuaWZkQ29uZmlnLnBvaW50ZXI7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVJbmxpbmUpIHJldHVybiB0aGlzLmJ5dGVPZmZzZXQgKyB2YWx1ZU9mZnNldDtcbiAgICAgICAgcmV0dXJuIHRoaXMudGlmZi5zb3VyY2UuZ2V0VWludCh0aGlzLmJ5dGVPZmZzZXQgKyB2YWx1ZU9mZnNldCwgdGhpcy50aWZmLmlmZENvbmZpZy5wb2ludGVyKTtcbiAgICB9XG5cbiAgICAvKiogU2l6ZSBvZiB0aGUgSUZEIChieXRlcykgKi9cbiAgICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50aWZmLmlmZENvbmZpZy5pZmQ7XG4gICAgfVxuXG4gICAgLyoqIElzIHRoZSB2YWx1ZSBvZiB0aGlzIHRhZyBpbmxpbmUsIG9yIGlzIGl0IGEgcG9pbnRlciB0byB0aGUgcmVhbCB2YWx1ZSAqL1xuICAgIGdldCBpc1ZhbHVlSW5saW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhTGVuZ3RoIDw9IHRoaXMudGlmZi5pZmRDb25maWcucG9pbnRlcjtcbiAgICB9XG5cbiAgICAvKiogUmVhZCB0aGUgdmFsdWUgaW4gZnJvbSB0aGUgYnl0ZSBhcnJheSAqL1xuICAgIHJlYWRWYWx1ZSgpOiBUIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy52YWx1ZVBvaW50ZXI7XG4gICAgICAgIGNvbnN0IGRhdGFUeXBlU2l6ZSA9IHRoaXMuZGF0YVR5cGVTaXplO1xuICAgICAgICBjb25zdCBjb252ZXJ0ID0gZ2V0VGlmZlRhZ1ZhbHVlUmVhZGVyKHRoaXMuZGF0YVR5cGUpO1xuICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMuZGF0YUNvdW50O1xuICAgICAgICBjb25zdCBkYXRhTGVuZ3RoID0gY291bnQgKiBkYXRhVHlwZVNpemU7XG5cbiAgICAgICAgaWYgKGNvdW50ID09PSAxKSByZXR1cm4gY29udmVydCh0aGlzLnRpZmYuc291cmNlLCBvZmZzZXQpIGFzIHVua25vd24gYXMgVDtcblxuICAgICAgICBjb25zdCBvdXRwdXQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhTGVuZ3RoOyBpICs9IGRhdGFUeXBlU2l6ZSkge1xuICAgICAgICAgICAgb3V0cHV0LnB1c2goY29udmVydCh0aGlzLnRpZmYuc291cmNlLCBvZmZzZXQgKyBpKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHRvIGEgc3RyaW5nIGlmIGFzY2lpXG4gICAgICAgIGlmICh0aGlzLmRhdGFUeXBlID09PSBUaWZmVGFnVmFsdWVUeXBlLkFTQ0lJKSByZXR1cm4gb3V0cHV0LmpvaW4oJycpLnRyaW0oKSBhcyB1bmtub3duIGFzIFQ7XG5cbiAgICAgICAgcmV0dXJuIG91dHB1dCBhcyB1bmtub3duIGFzIFQ7XG4gICAgfVxuXG4gICAgLyoqIEdldCBhIGh1bWFuKGlzaCkgZnJpZW5kbHkgb3V0cHV0IGZvciB0aGUgdGFncyAqL1xuICAgIHRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5ieXRlT2Zmc2V0LFxuICAgICAgICAgICAgaXNSZWFkeTogdGhpcy5pc1JlYWR5LFxuICAgICAgICAgICAgdHlwZTogdGhpcy5kYXRhVHlwZU5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { LogType } from '@chunkd/core';
|
|
2
1
|
import { CogTiffTagBase } from './tiff.tag.base.js';
|
|
3
2
|
export declare class CogTiffTagLazy<T> extends CogTiffTagBase<T> {
|
|
4
3
|
value: T | null;
|
|
5
4
|
get isReady(): boolean;
|
|
6
|
-
fetch(
|
|
5
|
+
fetch(): Promise<T>;
|
|
7
6
|
}
|
|
8
7
|
//# sourceMappingURL=tiff.tag.lazy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiff.tag.lazy.d.ts","sourceRoot":"","sources":["../../../src/read/tag/tiff.tag.lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tiff.tag.lazy.d.ts","sourceRoot":"","sources":["../../../src/read/tag/tiff.tag.lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACpD,KAAK,EAAE,CAAC,GAAG,IAAI,CAAQ;IAEvB,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;CAO5B"}
|
|
@@ -7,12 +7,12 @@ export class CogTiffTagLazy extends CogTiffTagBase {
|
|
|
7
7
|
get isReady() {
|
|
8
8
|
return this.value != null;
|
|
9
9
|
}
|
|
10
|
-
async fetch(
|
|
10
|
+
async fetch() {
|
|
11
11
|
if (this.tiff.source.hasBytes(this.valuePointer, this.dataLength) === false) {
|
|
12
|
-
await this.tiff.source.loadBytes(this.valuePointer, this.dataLength
|
|
12
|
+
await this.tiff.source.loadBytes(this.valuePointer, this.dataLength);
|
|
13
13
|
}
|
|
14
14
|
this.value = this.readValue();
|
|
15
15
|
return this.value;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlmZi50YWcubGF6eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWFkL3RhZy90aWZmLnRhZy5sYXp5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxNQUFNLE9BQU8sY0FBa0IsU0FBUSxjQUFpQjtJQUF4RDs7UUFDSSxVQUFLLEdBQWEsSUFBSSxDQUFDO0lBYTNCLENBQUM7SUFYRyxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUN6RSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN4RTtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2dUaWZmVGFnQmFzZSB9IGZyb20gJy4vdGlmZi50YWcuYmFzZS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDb2dUaWZmVGFnTGF6eTxUPiBleHRlbmRzIENvZ1RpZmZUYWdCYXNlPFQ+IHtcbiAgICB2YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gICAgZ2V0IGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlICE9IG51bGw7XG4gICAgfVxuXG4gICAgYXN5bmMgZmV0Y2goKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICh0aGlzLnRpZmYuc291cmNlLmhhc0J5dGVzKHRoaXMudmFsdWVQb2ludGVyLCB0aGlzLmRhdGFMZW5ndGgpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy50aWZmLnNvdXJjZS5sb2FkQnl0ZXModGhpcy52YWx1ZVBvaW50ZXIsIHRoaXMuZGF0YUxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucmVhZFZhbHVlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { LogType } from '@chunkd/core';
|
|
2
1
|
import { CogTiff } from '../../cog.tiff.js';
|
|
3
2
|
import { CogTiffTagBase } from './tiff.tag.base.js';
|
|
4
3
|
/**
|
|
@@ -11,12 +10,12 @@ export declare class CogTiffTagOffset extends CogTiffTagBase<number[]> {
|
|
|
11
10
|
constructor(tagId: number, tiff: CogTiff, offset: number);
|
|
12
11
|
get value(): number[] | null;
|
|
13
12
|
/** Load the entire index into memory */
|
|
14
|
-
load(
|
|
13
|
+
load(): Promise<void>;
|
|
15
14
|
readValue(): number[];
|
|
16
15
|
/**
|
|
17
16
|
* Read a specific value from the offset array
|
|
18
17
|
* @param index index to read at
|
|
19
18
|
*/
|
|
20
|
-
getValueAt(index: number
|
|
19
|
+
getValueAt(index: number): Promise<number>;
|
|
21
20
|
}
|
|
22
21
|
//# sourceMappingURL=tiff.tag.offset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiff.tag.offset.d.ts","sourceRoot":"","sources":["../../../src/read/tag/tiff.tag.offset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tiff.tag.offset.d.ts","sourceRoot":"","sources":["../../../src/read/tag/tiff.tag.offset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;IAC1D,OAAO,CAAC,YAAY,CAAyB;gBAEjC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAIxD,IAAI,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,CAS3B;IAED,wCAAwC;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,SAAS,IAAI,MAAM,EAAE;IAWrB;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAYnD"}
|
|
@@ -20,8 +20,8 @@ export class CogTiffTagOffset extends CogTiffTagBase {
|
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
/** Load the entire index into memory */
|
|
23
|
-
async load(
|
|
24
|
-
await this.tiff.source.loadBytes(this.valuePointer, this.dataLength
|
|
23
|
+
async load() {
|
|
24
|
+
await this.tiff.source.loadBytes(this.valuePointer, this.dataLength);
|
|
25
25
|
this.readValue();
|
|
26
26
|
}
|
|
27
27
|
readValue() {
|
|
@@ -39,16 +39,16 @@ export class CogTiffTagOffset extends CogTiffTagBase {
|
|
|
39
39
|
* Read a specific value from the offset array
|
|
40
40
|
* @param index index to read at
|
|
41
41
|
*/
|
|
42
|
-
async getValueAt(index
|
|
42
|
+
async getValueAt(index) {
|
|
43
43
|
if (this.loadedValues)
|
|
44
44
|
return this.loadedValues[index];
|
|
45
45
|
const dataSize = this.dataTypeSize;
|
|
46
46
|
const valueOffset = this.valuePointer + dataSize * index;
|
|
47
47
|
const convert = getTiffTagValueReader(this.dataType);
|
|
48
48
|
if (!this.tiff.source.hasBytes(valueOffset, dataSize)) {
|
|
49
|
-
await this.tiff.source.loadBytes(valueOffset, dataSize
|
|
49
|
+
await this.tiff.source.loadBytes(valueOffset, dataSize);
|
|
50
50
|
}
|
|
51
51
|
return convert(this.tiff.source, valueOffset);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlmZi50YWcub2Zmc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlYWQvdGFnL3RpZmYudGFnLm9mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUF3QjtJQUcxRCxZQUFZLEtBQWEsRUFBRSxJQUFhLEVBQUUsTUFBYztRQUNwRCxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUh2QixpQkFBWSxHQUFvQixJQUFJLENBQUM7SUFJN0MsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXhELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLEtBQUssQ0FBQyxJQUFJO1FBQ04sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlCLG1FQUFtRTtRQUNuRSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDbkQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFXLENBQUM7SUFDNUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29nVGlmZiB9IGZyb20gJy4uLy4uL2NvZy50aWZmLmpzJztcbmltcG9ydCB7IGdldFRpZmZUYWdWYWx1ZVJlYWRlciB9IGZyb20gJy4uL3RpZmYudmFsdWUucmVhZGVyLmpzJztcbmltcG9ydCB7IENvZ1RpZmZUYWdCYXNlIH0gZnJvbSAnLi90aWZmLnRhZy5iYXNlLmpzJztcblxuLyoqXG4gKiBUaWZmVGFnIGZvciBvZmZzZXQgYXJyYXlzXG4gKlxuICogQWxsb3dzIGluZGl2aWR1YWwgYWNjZXNzIHRvIHNwZWNpZmljIHJlY29yZHMgd2l0aG91dCBoYXZpbmcgdG8gcmVhZCB0aGUgZW50aXJlIHRhZyBpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZ1RpZmZUYWdPZmZzZXQgZXh0ZW5kcyBDb2dUaWZmVGFnQmFzZTxudW1iZXJbXT4ge1xuICAgIHByaXZhdGUgbG9hZGVkVmFsdWVzOiBudW1iZXJbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IodGFnSWQ6IG51bWJlciwgdGlmZjogQ29nVGlmZiwgb2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIodGFnSWQsIHRpZmYsIG9mZnNldCk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IG51bWJlcltdIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlZFZhbHVlcyAhPSBudWxsKSByZXR1cm4gdGhpcy5sb2FkZWRWYWx1ZXM7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzQnl0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZFZhbHVlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkZWRWYWx1ZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogTG9hZCB0aGUgZW50aXJlIGluZGV4IGludG8gbWVtb3J5ICovXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy50aWZmLnNvdXJjZS5sb2FkQnl0ZXModGhpcy52YWx1ZVBvaW50ZXIsIHRoaXMuZGF0YUxlbmd0aCk7XG4gICAgICAgIHRoaXMucmVhZFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcmVhZFZhbHVlKCk6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgdmFsID0gc3VwZXIucmVhZFZhbHVlKCk7XG4gICAgICAgIC8vIGlmIG9ubHkgb25lIHZhbHVlIGlzIHJlYWQgaW4sIGl0IHdpbGwgbm90IGJlIHJldHVybmVkIGFzIGEgYXJyYXlcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZFZhbHVlcyA9IFt2YWxdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2FkZWRWYWx1ZXMgPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVkVmFsdWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYWQgYSBzcGVjaWZpYyB2YWx1ZSBmcm9tIHRoZSBvZmZzZXQgYXJyYXlcbiAgICAgKiBAcGFyYW0gaW5kZXggaW5kZXggdG8gcmVhZCBhdFxuICAgICAqL1xuICAgIGFzeW5jIGdldFZhbHVlQXQoaW5kZXg6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlZFZhbHVlcykgcmV0dXJuIHRoaXMubG9hZGVkVmFsdWVzW2luZGV4XTtcblxuICAgICAgICBjb25zdCBkYXRhU2l6ZSA9IHRoaXMuZGF0YVR5cGVTaXplO1xuICAgICAgICBjb25zdCB2YWx1ZU9mZnNldCA9IHRoaXMudmFsdWVQb2ludGVyICsgZGF0YVNpemUgKiBpbmRleDtcbiAgICAgICAgY29uc3QgY29udmVydCA9IGdldFRpZmZUYWdWYWx1ZVJlYWRlcih0aGlzLmRhdGFUeXBlKTtcblxuICAgICAgICBpZiAoIXRoaXMudGlmZi5zb3VyY2UuaGFzQnl0ZXModmFsdWVPZmZzZXQsIGRhdGFTaXplKSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy50aWZmLnNvdXJjZS5sb2FkQnl0ZXModmFsdWVPZmZzZXQsIGRhdGFTaXplKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udmVydCh0aGlzLnRpZmYuc291cmNlLCB2YWx1ZU9mZnNldCkgYXMgbnVtYmVyO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ByteSize
|
|
1
|
+
import { ByteSize } from '@chunkd/core';
|
|
2
|
+
import { CogTiff } from '../cog.tiff.js';
|
|
2
3
|
export declare enum GhostOption {
|
|
3
4
|
GDAL_STRUCTURAL_METADATA_SIZE = "GDAL_STRUCTURAL_METADATA_SIZE",
|
|
4
5
|
LAYOUT = "LAYOUT",
|
|
@@ -14,15 +15,13 @@ export declare enum GhostOptionTileOrder {
|
|
|
14
15
|
export declare enum GhostOptionTileLeader {
|
|
15
16
|
uint32 = "SIZE_AS_UINT4"
|
|
16
17
|
}
|
|
17
|
-
export declare const GhostOptionTileLeaderSize: {
|
|
18
|
-
[key: string]: ByteSize;
|
|
19
|
-
};
|
|
20
18
|
/**
|
|
21
19
|
* GDAL has made a ghost set of options for Tif files
|
|
22
20
|
* this class represents the optimizations that can be used
|
|
23
21
|
*/
|
|
24
22
|
export declare class CogTifGhostOptions {
|
|
25
|
-
options: Map<
|
|
23
|
+
options: Map<string, string>;
|
|
24
|
+
source: CogTiff;
|
|
26
25
|
/**
|
|
27
26
|
* Has GDAL optimized this tif
|
|
28
27
|
*/
|
|
@@ -31,23 +30,11 @@ export declare class CogTifGhostOptions {
|
|
|
31
30
|
* Has GDAL determined this tif is now broken
|
|
32
31
|
*/
|
|
33
32
|
get isBroken(): boolean;
|
|
34
|
-
private set;
|
|
35
33
|
/**
|
|
36
34
|
* Load the ghost options from a source
|
|
37
|
-
* @param
|
|
38
|
-
* @param offset Byte offset to start reading
|
|
39
|
-
* @param length max number of bytes to read
|
|
35
|
+
* @param bytes the ghost header bytes
|
|
40
36
|
*/
|
|
41
|
-
process(
|
|
42
|
-
private _getReverse;
|
|
43
|
-
/**
|
|
44
|
-
* The ordering of tiles inside the tif
|
|
45
|
-
*/
|
|
46
|
-
get tileOrder(): GhostOptionTileOrder | null;
|
|
47
|
-
/**
|
|
48
|
-
* Are tiles stored with the file size immediately before the tile
|
|
49
|
-
*/
|
|
50
|
-
get tileLeader(): GhostOptionTileLeader | null;
|
|
37
|
+
process(bytes: Uint8Array): void;
|
|
51
38
|
/**
|
|
52
39
|
* If the tile leader is set, how many bytes are allocated to the tile size
|
|
53
40
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiff.gdal.d.ts","sourceRoot":"","sources":["../../src/read/tiff.gdal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"tiff.gdal.d.ts","sourceRoot":"","sources":["../../src/read/tiff.gdal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,oBAAY,WAAW;IACnB,6BAA6B,kCAAkC;IAC/D,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,0BAA0B,+BAA+B;IACzD,6BAA6B,kCAAkC;CAClE;AAED,oBAAY,oBAAoB;IAC5B,QAAQ,cAAc;CACzB;AAED,oBAAY,qBAAqB;IAC7B,MAAM,kBAAkB;CAC3B;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACzC,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAG5B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAuBhC;;OAEG;IACH,IAAI,kBAAkB,IAAI,QAAQ,GAAG,IAAI,CAOxC;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;CACJ"}
|
package/build/read/tiff.gdal.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { ByteSize } from '@chunkd/core';
|
|
2
|
-
import { getReverseEnumValue } from '../util/util.enum.js';
|
|
3
|
-
// GDAL_STRUCTURAL_METADATA_SIZE: '000140 bytes',
|
|
4
|
-
// LAYOUT: 'IFDS_BEFORE_DATA',
|
|
5
|
-
// BLOCK_ORDER: 'ROW_MAJOR',
|
|
6
|
-
// BLOCK_LEADER: 'SIZE_AS_UINT4',
|
|
7
|
-
// BLOCK_TRAILER: 'LAST_4_BYTES_REPEATED',
|
|
8
|
-
// KNOWN_INCOMPATIBLE_EDITION: 'NO'
|
|
9
2
|
export var GhostOption;
|
|
10
3
|
(function (GhostOption) {
|
|
11
4
|
GhostOption["GDAL_STRUCTURAL_METADATA_SIZE"] = "GDAL_STRUCTURAL_METADATA_SIZE";
|
|
@@ -24,9 +17,6 @@ export var GhostOptionTileLeader;
|
|
|
24
17
|
(function (GhostOptionTileLeader) {
|
|
25
18
|
GhostOptionTileLeader["uint32"] = "SIZE_AS_UINT4";
|
|
26
19
|
})(GhostOptionTileLeader || (GhostOptionTileLeader = {}));
|
|
27
|
-
export const GhostOptionTileLeaderSize = {
|
|
28
|
-
uint32: ByteSize.UInt32,
|
|
29
|
-
};
|
|
30
20
|
/**
|
|
31
21
|
* GDAL has made a ghost set of options for Tif files
|
|
32
22
|
* this class represents the optimizations that can be used
|
|
@@ -49,60 +39,49 @@ export class CogTifGhostOptions {
|
|
|
49
39
|
get isBroken() {
|
|
50
40
|
return this.options.get(GhostOption.KNOWN_INCOMPATIBLE_EDITION) === 'YES';
|
|
51
41
|
}
|
|
52
|
-
set(key, val) {
|
|
53
|
-
this.options.set(key, val);
|
|
54
|
-
}
|
|
55
42
|
/**
|
|
56
43
|
* Load the ghost options from a source
|
|
57
|
-
* @param
|
|
58
|
-
* @param offset Byte offset to start reading
|
|
59
|
-
* @param length max number of bytes to read
|
|
44
|
+
* @param bytes the ghost header bytes
|
|
60
45
|
*/
|
|
61
|
-
process(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
46
|
+
process(bytes) {
|
|
47
|
+
let key = '';
|
|
48
|
+
let value = '';
|
|
49
|
+
let setValue = false;
|
|
50
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
51
|
+
const charCode = bytes[i];
|
|
52
|
+
if (charCode === 0)
|
|
53
|
+
break;
|
|
54
|
+
const char = String.fromCharCode(charCode);
|
|
55
|
+
if (char === '\n') {
|
|
56
|
+
this.options.set(key.trim(), value.trim());
|
|
57
|
+
key = '';
|
|
58
|
+
value = '';
|
|
59
|
+
setValue = false;
|
|
60
|
+
}
|
|
61
|
+
else if (char === '=') {
|
|
62
|
+
setValue = true;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (setValue)
|
|
66
|
+
value += char;
|
|
67
|
+
else
|
|
68
|
+
key += char;
|
|
69
|
+
}
|
|
76
70
|
}
|
|
77
71
|
}
|
|
78
|
-
_getReverse(e, key) {
|
|
79
|
-
const opt = this.options.get(key);
|
|
80
|
-
if (opt == null)
|
|
81
|
-
return null;
|
|
82
|
-
return getReverseEnumValue(e, opt);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* The ordering of tiles inside the tif
|
|
86
|
-
*/
|
|
87
|
-
get tileOrder() {
|
|
88
|
-
return this._getReverse(GhostOptionTileOrder, GhostOption.BLOCK_ORDER);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Are tiles stored with the file size immediately before the tile
|
|
92
|
-
*/
|
|
93
|
-
get tileLeader() {
|
|
94
|
-
return this._getReverse(GhostOptionTileLeader, GhostOption.BLOCK_LEADER);
|
|
95
|
-
}
|
|
96
72
|
/**
|
|
97
73
|
* If the tile leader is set, how many bytes are allocated to the tile size
|
|
98
74
|
*/
|
|
99
75
|
get tileLeaderByteSize() {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
76
|
+
switch (this.options.get(GhostOption.BLOCK_LEADER)) {
|
|
77
|
+
case GhostOptionTileLeader.uint32:
|
|
78
|
+
return ByteSize.UInt32;
|
|
79
|
+
default:
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
103
82
|
}
|
|
104
83
|
get isMaskInterleaved() {
|
|
105
84
|
return this.options.get(GhostOption.MASK_INTERLEAVED_WITH_IMAGERY) === 'YES';
|
|
106
85
|
}
|
|
107
86
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlmZi5nZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYWQvdGlmZi5nZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHeEMsTUFBTSxDQUFOLElBQVksV0FRWDtBQVJELFdBQVksV0FBVztJQUNuQiw4RUFBK0QsQ0FBQTtJQUMvRCxnQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBMkIsQ0FBQTtJQUMzQiw0Q0FBNkIsQ0FBQTtJQUM3Qiw4Q0FBK0IsQ0FBQTtJQUMvQix3RUFBeUQsQ0FBQTtJQUN6RCw4RUFBK0QsQ0FBQTtBQUNuRSxDQUFDLEVBUlcsV0FBVyxLQUFYLFdBQVcsUUFRdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxvQkFFWDtBQUZELFdBQVksb0JBQW9CO0lBQzVCLDhDQUFzQixDQUFBO0FBQzFCLENBQUMsRUFGVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRS9CO0FBRUQsTUFBTSxDQUFOLElBQVkscUJBRVg7QUFGRCxXQUFZLHFCQUFxQjtJQUM3QixpREFBd0IsQ0FBQTtBQUM1QixDQUFDLEVBRlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUVoQztBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDSSxZQUFPLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUE0RDdDLENBQUM7SUF6REc7O09BRUc7SUFDSCxJQUFJLGNBQWM7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssa0JBQWtCLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsMEJBQTBCLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxLQUFpQjtRQUNyQixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLElBQUksUUFBUSxLQUFLLENBQUM7Z0JBQUUsTUFBTTtZQUUxQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzNDLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO2lCQUFNLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtnQkFDckIsUUFBUSxHQUFHLElBQUksQ0FBQzthQUNuQjtpQkFBTTtnQkFDSCxJQUFJLFFBQVE7b0JBQUUsS0FBSyxJQUFJLElBQUksQ0FBQzs7b0JBQ3ZCLEdBQUcsSUFBSSxJQUFJLENBQUM7YUFDcEI7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksa0JBQWtCO1FBQ2xCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2hELEtBQUsscUJBQXFCLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzNCO2dCQUNJLE9BQU8sSUFBSSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLEtBQUssS0FBSyxDQUFDO0lBQ2pGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ5dGVTaXplIH0gZnJvbSAnQGNodW5rZC9jb3JlJztcbmltcG9ydCB7IENvZ1RpZmYgfSBmcm9tICcuLi9jb2cudGlmZi5qcyc7XG5cbmV4cG9ydCBlbnVtIEdob3N0T3B0aW9uIHtcbiAgICBHREFMX1NUUlVDVFVSQUxfTUVUQURBVEFfU0laRSA9ICdHREFMX1NUUlVDVFVSQUxfTUVUQURBVEFfU0laRScsXG4gICAgTEFZT1VUID0gJ0xBWU9VVCcsXG4gICAgQkxPQ0tfT1JERVIgPSAnQkxPQ0tfT1JERVInLFxuICAgIEJMT0NLX0xFQURFUiA9ICdCTE9DS19MRUFERVInLFxuICAgIEJMT0NLX1RSQUlMRVIgPSAnQkxPQ0tfVFJBSUxFUicsXG4gICAgS05PV05fSU5DT01QQVRJQkxFX0VESVRJT04gPSAnS05PV05fSU5DT01QQVRJQkxFX0VESVRJT04nLFxuICAgIE1BU0tfSU5URVJMRUFWRURfV0lUSF9JTUFHRVJZID0gJ01BU0tfSU5URVJMRUFWRURfV0lUSF9JTUFHRVJZJyxcbn1cblxuZXhwb3J0IGVudW0gR2hvc3RPcHRpb25UaWxlT3JkZXIge1xuICAgIFJvd01ham9yID0gJ1JPV19NQUpPUicsXG59XG5cbmV4cG9ydCBlbnVtIEdob3N0T3B0aW9uVGlsZUxlYWRlciB7XG4gICAgdWludDMyID0gJ1NJWkVfQVNfVUlOVDQnLFxufVxuXG4vKipcbiAqIEdEQUwgaGFzIG1hZGUgYSBnaG9zdCBzZXQgb2Ygb3B0aW9ucyBmb3IgVGlmIGZpbGVzXG4gKiB0aGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIG9wdGltaXphdGlvbnMgdGhhdCBjYW4gYmUgdXNlZFxuICovXG5leHBvcnQgY2xhc3MgQ29nVGlmR2hvc3RPcHRpb25zIHtcbiAgICBvcHRpb25zOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xuICAgIHNvdXJjZTogQ29nVGlmZjtcblxuICAgIC8qKlxuICAgICAqIEhhcyBHREFMIG9wdGltaXplZCB0aGlzIHRpZlxuICAgICAqL1xuICAgIGdldCBpc0NvZ09wdGltaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNCcm9rZW4pIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXQoR2hvc3RPcHRpb24uTEFZT1VUKSA9PT0gJ0lGRFNfQkVGT1JFX0RBVEEnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhcyBHREFMIGRldGVybWluZWQgdGhpcyB0aWYgaXMgbm93IGJyb2tlblxuICAgICAqL1xuICAgIGdldCBpc0Jyb2tlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXQoR2hvc3RPcHRpb24uS05PV05fSU5DT01QQVRJQkxFX0VESVRJT04pID09PSAnWUVTJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHRoZSBnaG9zdCBvcHRpb25zIGZyb20gYSBzb3VyY2VcbiAgICAgKiBAcGFyYW0gYnl0ZXMgdGhlIGdob3N0IGhlYWRlciBieXRlc1xuICAgICAqL1xuICAgIHByb2Nlc3MoYnl0ZXM6IFVpbnQ4QXJyYXkpOiB2b2lkIHtcbiAgICAgICAgbGV0IGtleSA9ICcnO1xuICAgICAgICBsZXQgdmFsdWUgPSAnJztcbiAgICAgICAgbGV0IHNldFZhbHVlID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYXJDb2RlID0gYnl0ZXNbaV07XG4gICAgICAgICAgICBpZiAoY2hhckNvZGUgPT09IDApIGJyZWFrO1xuXG4gICAgICAgICAgICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyQ29kZSk7XG4gICAgICAgICAgICBpZiAoY2hhciA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuc2V0KGtleS50cmltKCksIHZhbHVlLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAga2V5ID0gJyc7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnPScpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzZXRWYWx1ZSkgdmFsdWUgKz0gY2hhcjtcbiAgICAgICAgICAgICAgICBlbHNlIGtleSArPSBjaGFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRpbGUgbGVhZGVyIGlzIHNldCwgaG93IG1hbnkgYnl0ZXMgYXJlIGFsbG9jYXRlZCB0byB0aGUgdGlsZSBzaXplXG4gICAgICovXG4gICAgZ2V0IHRpbGVMZWFkZXJCeXRlU2l6ZSgpOiBCeXRlU2l6ZSB8IG51bGwge1xuICAgICAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5nZXQoR2hvc3RPcHRpb24uQkxPQ0tfTEVBREVSKSkge1xuICAgICAgICAgICAgY2FzZSBHaG9zdE9wdGlvblRpbGVMZWFkZXIudWludDMyOlxuICAgICAgICAgICAgICAgIHJldHVybiBCeXRlU2l6ZS5VSW50MzI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlzTWFza0ludGVybGVhdmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldChHaG9zdE9wdGlvbi5NQVNLX0lOVEVSTEVBVkVEX1dJVEhfSU1BR0VSWSkgPT09ICdZRVMnO1xuICAgIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogeotiff/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.2.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/blacha/cogeotiff.git",
|
|
@@ -18,16 +18,15 @@
|
|
|
18
18
|
"test": "ospec --globs 'build/**/*.test.js'"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@chunkd/core": "^8.0
|
|
21
|
+
"@chunkd/core": "^8.1.0",
|
|
22
22
|
"ieee754": "^1.1.13"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@types/node": "^
|
|
26
|
-
"@types/ospec": "^4.0.
|
|
27
|
-
"ospec": "^4.0.0"
|
|
25
|
+
"@types/node": "^18.0.0",
|
|
26
|
+
"@types/ospec": "^4.0.3"
|
|
28
27
|
},
|
|
29
28
|
"publishConfig": {
|
|
30
29
|
"access": "public"
|
|
31
30
|
},
|
|
32
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "64a437a3590a1fc8395d1f4294a5fc74cbbe6127"
|
|
33
32
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { SourceMemory } from '@chunkd/core';
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
1
3
|
import { CogTiff } from '../cog.tiff.js';
|
|
2
|
-
import { SourceFile } from '@chunkd/source-file';
|
|
3
4
|
|
|
4
5
|
/** Read a tile from every image inside of a tiff 300 tiles read */
|
|
5
6
|
async function main(): Promise<void> {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
const buf = await readFile(process.argv[process.argv.length - 1]);
|
|
8
|
+
const source = new SourceMemory('buf', buf);
|
|
9
|
+
for (let i = 0; i < 5_000; i++) {
|
|
10
|
+
const tiff = new CogTiff(source);
|
|
8
11
|
await tiff.init();
|
|
9
12
|
|
|
10
13
|
// 6 images
|
|
@@ -7,7 +7,7 @@ import 'source-map-support/register.js';
|
|
|
7
7
|
import { TestFileChunkSource } from '@chunkd/core/build/__test__/chunk.source.fake.js';
|
|
8
8
|
import { CogTiff } from '../cog.tiff.js';
|
|
9
9
|
import { TiffMimeType } from '../const/index.js';
|
|
10
|
-
import { SourceMemory } from '@chunkd/core';
|
|
10
|
+
import { ByteSize, SourceMemory } from '@chunkd/core';
|
|
11
11
|
import { fileURLToPath } from 'url';
|
|
12
12
|
|
|
13
13
|
const __dirname = fileURLToPath(import.meta.url);
|
|
@@ -73,6 +73,16 @@ o.spec('CogTiled', () => {
|
|
|
73
73
|
o(firstImage.stripCount).equals(0);
|
|
74
74
|
o(firstImage.isTiled()).equals(true);
|
|
75
75
|
});
|
|
76
|
+
|
|
77
|
+
o('should hasTile for every tile', async () => {
|
|
78
|
+
const [firstImage] = cog.images;
|
|
79
|
+
|
|
80
|
+
for (let x = 0; x < firstImage.tileCount.x; x++) {
|
|
81
|
+
for (let y = 0; y < firstImage.tileCount.y; y++) {
|
|
82
|
+
o(await firstImage.hasTile(x, y)).equals(true);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
76
86
|
});
|
|
77
87
|
|
|
78
88
|
o.spec('Cog.Big', () => {
|
|
@@ -132,6 +142,8 @@ o.spec('Cog.Sparse', () => {
|
|
|
132
142
|
|
|
133
143
|
for (let x = 0; x < tileCount.x; x++) {
|
|
134
144
|
for (let y = 0; y < tileCount.y; y++) {
|
|
145
|
+
const hasTile = await img.hasTile(x, y);
|
|
146
|
+
o(hasTile).equals(false);
|
|
135
147
|
const tileXy = await img.getTile(x, y);
|
|
136
148
|
const tileXyz = await cog.getTile(x, y, z);
|
|
137
149
|
o(tileXy).equals(null)(`Tile x:${x} y:${y} should be empty`);
|
|
@@ -139,6 +151,22 @@ o.spec('Cog.Sparse', () => {
|
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
153
|
});
|
|
154
|
+
|
|
155
|
+
o('should have ghost options', () => {
|
|
156
|
+
o(cog.options.options.size).equals(6);
|
|
157
|
+
o(cog.options.tileLeaderByteSize).equals(ByteSize.UInt32);
|
|
158
|
+
o(cog.options.isCogOptimized).equals(true);
|
|
159
|
+
|
|
160
|
+
const entries = [...cog.options.options.entries()];
|
|
161
|
+
o(entries).deepEquals([
|
|
162
|
+
['GDAL_STRUCTURAL_METADATA_SIZE', '000140 bytes'],
|
|
163
|
+
['LAYOUT', 'IFDS_BEFORE_DATA'],
|
|
164
|
+
['BLOCK_ORDER', 'ROW_MAJOR'],
|
|
165
|
+
['BLOCK_LEADER', 'SIZE_AS_UINT4'],
|
|
166
|
+
['BLOCK_TRAILER', 'LAST_4_BYTES_REPEATED'],
|
|
167
|
+
['KNOWN_INCOMPATIBLE_EDITION', 'NO'],
|
|
168
|
+
]);
|
|
169
|
+
});
|
|
142
170
|
});
|
|
143
171
|
|
|
144
172
|
o.spec('CogStrip', () => {
|