maplibre-gl-raster 0.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.
- package/LICENSE +21 -0
- package/README.md +362 -0
- package/dist/LercDecode.es-CZm5toNk.js +442 -0
- package/dist/LercDecode.es-CZm5toNk.js.map +1 -0
- package/dist/RasterControl-B7XdXYSu.js +18838 -0
- package/dist/RasterControl-B7XdXYSu.js.map +1 -0
- package/dist/__vite-browser-external-BgMKmFg9.js +9 -0
- package/dist/__vite-browser-external-BgMKmFg9.js.map +1 -0
- package/dist/assets/LercDecode.es-Bvg6-wb5.js +442 -0
- package/dist/assets/LercDecode.es-Bvg6-wb5.js.map +1 -0
- package/dist/assets/__vite-browser-external-BgMKmFg9.js +9 -0
- package/dist/assets/__vite-browser-external-BgMKmFg9.js.map +1 -0
- package/dist/assets/chunk-FDOR9p9I.js +24 -0
- package/dist/assets/decode-BvR5vy7g.js +940 -0
- package/dist/assets/decode-BvR5vy7g.js.map +1 -0
- package/dist/assets/lerc-By2TvjAX.js +34 -0
- package/dist/assets/lerc-By2TvjAX.js.map +1 -0
- package/dist/assets/lzw-CQJJDca2.js +174 -0
- package/dist/assets/lzw-CQJJDca2.js.map +1 -0
- package/dist/assets/worker-C6cg9T3Y.js +51 -0
- package/dist/assets/worker-C6cg9T3Y.js.map +1 -0
- package/dist/assets/zstd-DBZv9xja.js +569 -0
- package/dist/assets/zstd-DBZv9xja.js.map +1 -0
- package/dist/chunk-FDOR9p9I.js +24 -0
- package/dist/decode-BMFOVF9X.js +1966 -0
- package/dist/decode-BMFOVF9X.js.map +1 -0
- package/dist/index.mjs +223 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lerc-B7WY-v3y.js +34 -0
- package/dist/lerc-B7WY-v3y.js.map +1 -0
- package/dist/lzw-YEsReV21.js +174 -0
- package/dist/lzw-YEsReV21.js.map +1 -0
- package/dist/maplibre-gl-raster.css +670 -0
- package/dist/react.mjs +145 -0
- package/dist/react.mjs.map +1 -0
- package/dist/types/index.d.ts +649 -0
- package/dist/types/react.d.ts +477 -0
- package/dist/zstd-DBZv9xja.js +569 -0
- package/dist/zstd-DBZv9xja.js.map +1 -0
- package/package.json +125 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-BvR5vy7g.js","names":["decode","decode","decodeDeflate","decodeViaCanvas"],"sources":["../../node_modules/@cogeotiff/core/build/const/tiff.endian.js","../../node_modules/@cogeotiff/core/build/const/tiff.tag.id.js","../../node_modules/@cogeotiff/core/build/const/tiff.mime.js","../../node_modules/@cogeotiff/core/build/const/tiff.tag.value.js","../../node_modules/@cogeotiff/core/build/const/tiff.version.js","../../node_modules/@cogeotiff/core/build/util/bytes.js","../../node_modules/@cogeotiff/core/build/read/endian.js","../../node_modules/@cogeotiff/core/build/tiff.image.js","../../node_modules/@cogeotiff/core/build/read/tiff.gdal.js","../../node_modules/@cogeotiff/core/build/read/tiff.ifd.config.js","../../node_modules/@developmentseed/geotiff/dist/codecs/canvas.js","../../node_modules/@developmentseed/geotiff/dist/codecs/decompression-stream.js","../../node_modules/@developmentseed/geotiff/dist/codecs/deflate.js","../../node_modules/@developmentseed/geotiff/dist/codecs/predictor.js","../../node_modules/@developmentseed/geotiff/dist/decode.js"],"sourcesContent":["/**\n * Tiff format\n *\n * The header of a Tiff file contains the endianness of the file\n */\nexport var TiffEndian;\n(function (TiffEndian) {\n TiffEndian[TiffEndian[\"Big\"] = 19789] = \"Big\";\n TiffEndian[TiffEndian[\"Little\"] = 18761] = \"Little\";\n})(TiffEndian || (TiffEndian = {}));\n","/** Sub file type for tag 254 {@link TiffTag.SubFileType} */\nexport var SubFileType;\n(function (SubFileType) {\n /** Reduced resolution version */\n SubFileType[SubFileType[\"ReducedImage\"] = 1] = \"ReducedImage\";\n /** One page of many */\n SubFileType[SubFileType[\"Page\"] = 2] = \"Page\";\n /** Transparency mask */\n SubFileType[SubFileType[\"Mask\"] = 4] = \"Mask\";\n})(SubFileType || (SubFileType = {}));\nexport var Orientation;\n(function (Orientation) {\n /* row 0 top, col 0 lhs */\n Orientation[Orientation[\"TopLeft\"] = 1] = \"TopLeft\";\n /* row 0 top, col 0 rhs */\n Orientation[Orientation[\"TopRight\"] = 2] = \"TopRight\";\n /* row 0 bottom, col 0 rhs */\n Orientation[Orientation[\"BottomRight\"] = 3] = \"BottomRight\";\n /* row 0 Bottom, col 0 lhs */\n Orientation[Orientation[\"BottomLeft\"] = 4] = \"BottomLeft\";\n /* row 0 lhs, col 0 Top */\n Orientation[Orientation[\"LeftTop\"] = 5] = \"LeftTop\";\n /* row 0 rhs, col 0 Top */\n Orientation[Orientation[\"RightTOP\"] = 6] = \"RightTOP\";\n /* row 0 rhs, col 0 Bottom */\n Orientation[Orientation[\"RightBottom\"] = 7] = \"RightBottom\";\n /* row 0 lhs, col 0 Bottom */\n Orientation[Orientation[\"LeftBottom\"] = 8] = \"LeftBottom\";\n})(Orientation || (Orientation = {}));\nexport var RasterTypeKey;\n(function (RasterTypeKey) {\n /**\n * PixelIsArea (default) a pixel is treated as an area,\n * the raster coordinate (0,0) is the top left corner of the top left pixel.\n */\n RasterTypeKey[RasterTypeKey[\"PixelIsArea\"] = 1] = \"PixelIsArea\";\n /**\n * PixelIsPoint treats pixels as point samples with empty space between the \"pixel\" samples.\n * the raster coordinate (0,0) is the location of the top left raster pixel.\n */\n RasterTypeKey[RasterTypeKey[\"PixelIsPoint\"] = 2] = \"PixelIsPoint\";\n})(RasterTypeKey || (RasterTypeKey = {}));\nexport var ModelTypeCode;\n(function (ModelTypeCode) {\n ModelTypeCode[ModelTypeCode[\"Unknown\"] = 0] = \"Unknown\";\n /** Projection Coordinate System */\n ModelTypeCode[ModelTypeCode[\"Projected\"] = 1] = \"Projected\";\n /** Geographic latitude-longitude System */\n ModelTypeCode[ModelTypeCode[\"Geographic\"] = 2] = \"Geographic\";\n /** Geocentric (X,Y,Z) Coordinate System */\n ModelTypeCode[ModelTypeCode[\"Geocentric\"] = 3] = \"Geocentric\";\n ModelTypeCode[ModelTypeCode[\"UserDefined\"] = 32767] = \"UserDefined\";\n})(ModelTypeCode || (ModelTypeCode = {}));\n/** Sub file type for tag 255 {@link TiffTag.OldSubFileType} */\nexport var OldSubFileType;\n(function (OldSubFileType) {\n /** Full resolution image data */\n OldSubFileType[OldSubFileType[\"Image\"] = 1] = \"Image\";\n /** Reduced resolution version */\n OldSubFileType[OldSubFileType[\"ReducedImage\"] = 2] = \"ReducedImage\";\n /** One page of many */\n OldSubFileType[OldSubFileType[\"Page\"] = 3] = \"Page\";\n})(OldSubFileType || (OldSubFileType = {}));\n/** Tiff compression types */\nexport var Compression;\n(function (Compression) {\n Compression[Compression[\"None\"] = 1] = \"None\";\n Compression[Compression[\"Ccittrle\"] = 2] = \"Ccittrle\";\n Compression[Compression[\"CcittT4\"] = 3] = \"CcittT4\";\n Compression[Compression[\"CcittT6\"] = 4] = \"CcittT6\";\n Compression[Compression[\"Lzw\"] = 5] = \"Lzw\";\n Compression[Compression[\"Jpeg6\"] = 6] = \"Jpeg6\";\n Compression[Compression[\"Jpeg\"] = 7] = \"Jpeg\";\n Compression[Compression[\"DeflateOther\"] = 8] = \"DeflateOther\";\n Compression[Compression[\"T85\"] = 9] = \"T85\";\n Compression[Compression[\"T43\"] = 10] = \"T43\";\n Compression[Compression[\"Next\"] = 32766] = \"Next\";\n Compression[Compression[\"Ccittrlew\"] = 32771] = \"Ccittrlew\";\n Compression[Compression[\"PackBits\"] = 32773] = \"PackBits\";\n Compression[Compression[\"ThunderScan\"] = 32809] = \"ThunderScan\";\n Compression[Compression[\"It8ctpad\"] = 32895] = \"It8ctpad\";\n Compression[Compression[\"It8lw\"] = 32896] = \"It8lw\";\n Compression[Compression[\"It8mp\"] = 32897] = \"It8mp\";\n Compression[Compression[\"It8bl\"] = 32898] = \"It8bl\";\n Compression[Compression[\"PixarFilm\"] = 32908] = \"PixarFilm\";\n Compression[Compression[\"PixarLog\"] = 32909] = \"PixarLog\";\n Compression[Compression[\"Deflate\"] = 32946] = \"Deflate\";\n Compression[Compression[\"Dcs\"] = 32947] = \"Dcs\";\n Compression[Compression[\"Jbig\"] = 34661] = \"Jbig\";\n Compression[Compression[\"SgiLog\"] = 34676] = \"SgiLog\";\n Compression[Compression[\"SgiLog24\"] = 34677] = \"SgiLog24\";\n Compression[Compression[\"Jp2000\"] = 34712] = \"Jp2000\";\n Compression[Compression[\"Lerc\"] = 34887] = \"Lerc\";\n Compression[Compression[\"Lzma\"] = 34925] = \"Lzma\";\n Compression[Compression[\"Zstd\"] = 50000] = \"Zstd\";\n Compression[Compression[\"Webp\"] = 50001] = \"Webp\";\n Compression[Compression[\"JpegXl\"] = 50002] = \"JpegXl\";\n Compression[Compression[\"JpegXlDng17\"] = 52546] = \"JpegXlDng17\";\n})(Compression || (Compression = {}));\nexport var PlanarConfiguration;\n(function (PlanarConfiguration) {\n /** single image plane */\n PlanarConfiguration[PlanarConfiguration[\"Contig\"] = 1] = \"Contig\";\n /** separate planes of data */\n PlanarConfiguration[PlanarConfiguration[\"Separate\"] = 2] = \"Separate\";\n})(PlanarConfiguration || (PlanarConfiguration = {}));\nexport var Predictor;\n(function (Predictor) {\n Predictor[Predictor[\"None\"] = 1] = \"None\";\n /** Horizontal differencing */\n Predictor[Predictor[\"Horizontal\"] = 2] = \"Horizontal\";\n /** Floating point */\n Predictor[Predictor[\"FloatingPoint\"] = 3] = \"FloatingPoint\";\n})(Predictor || (Predictor = {}));\nexport var SampleFormat;\n(function (SampleFormat) {\n /** Unsigned integer data */\n SampleFormat[SampleFormat[\"Uint\"] = 1] = \"Uint\";\n /** Signed integer data */\n SampleFormat[SampleFormat[\"Int\"] = 2] = \"Int\";\n /** IEEE floating point data */\n SampleFormat[SampleFormat[\"Float\"] = 3] = \"Float\";\n /** Untyped data */\n SampleFormat[SampleFormat[\"Void\"] = 4] = \"Void\";\n /** Complex signed int */\n SampleFormat[SampleFormat[\"ComplexInt\"] = 5] = \"ComplexInt\";\n /** Complex ieee floating */\n SampleFormat[SampleFormat[\"ComplexFloat\"] = 6] = \"ComplexFloat\";\n})(SampleFormat || (SampleFormat = {}));\nexport var Photometric;\n(function (Photometric) {\n /** min value is white */\n Photometric[Photometric[\"MinIsWhite\"] = 0] = \"MinIsWhite\";\n /** min value is black */\n Photometric[Photometric[\"MinIsBlack\"] = 1] = \"MinIsBlack\";\n /** RGB color model */\n Photometric[Photometric[\"Rgb\"] = 2] = \"Rgb\";\n /** color map indexed */\n Photometric[Photometric[\"Palette\"] = 3] = \"Palette\";\n /** $holdout mask */\n Photometric[Photometric[\"Mask\"] = 4] = \"Mask\";\n /** !color separations */\n Photometric[Photometric[\"Separated\"] = 5] = \"Separated\";\n /** !CCIR 601 */\n Photometric[Photometric[\"Ycbcr\"] = 6] = \"Ycbcr\";\n /** !1976 CIE L*a*b* */\n Photometric[Photometric[\"Cielab\"] = 8] = \"Cielab\";\n /** ICC L*a*b* [Adobe TIFF Technote 4] */\n Photometric[Photometric[\"Icclab\"] = 9] = \"Icclab\";\n /** ITU L*a*b* */\n Photometric[Photometric[\"Itulab\"] = 10] = \"Itulab\";\n /** color filter array */\n Photometric[Photometric[\"Cfa\"] = 32803] = \"Cfa\";\n /** CIE Log2(L) */\n Photometric[Photometric[\"Logl\"] = 32844] = \"Logl\";\n Photometric[Photometric[\"Logluv\"] = 32845] = \"Logluv\";\n})(Photometric || (Photometric = {}));\n/**\n * Tiff tags as defined by libtiff and libgeotiff\n *\n * - {@link https://gitlab.com/libtiff/libtiff}\n * - {@link https://github.com/OSGeo/libgeotiff/}\n */\nexport var TiffTag;\n(function (TiffTag) {\n /**\n * Type of the sub file\n *\n * @see {@link SubFileType}\n */\n TiffTag[TiffTag[\"SubFileType\"] = 254] = \"SubFileType\";\n /**\n * Type of sub file\n *\n * @see {@link OldSubFileType}\n */\n TiffTag[TiffTag[\"OldSubFileType\"] = 255] = \"OldSubFileType\";\n /** Width of image in pixels */\n TiffTag[TiffTag[\"ImageWidth\"] = 256] = \"ImageWidth\";\n /** Height of image in pixels */\n TiffTag[TiffTag[\"ImageHeight\"] = 257] = \"ImageHeight\";\n /**\n * Number of bits per channel\n *\n * @example\n * ```typescript\n * [8,8,8] // 8 bit RGB\n * [16] // 16bit\n * ```\n */\n TiffTag[TiffTag[\"BitsPerSample\"] = 258] = \"BitsPerSample\";\n /**\n *\n * Data type of the image\n *\n * See {@link SampleFormat}\n *\n * @example\n * ```typescript\n * [1] // SampleFormat.Uint\n * [1,1,1,1] // 4 band Uint\n * ```\n */\n TiffTag[TiffTag[\"SampleFormat\"] = 339] = \"SampleFormat\";\n /**\n * Compression Type\n *\n * @see {@link Compression}\n *\n * @example\n * ```typescript\n * 5 // Compression.Lzw\n * ```\n */\n TiffTag[TiffTag[\"Compression\"] = 259] = \"Compression\";\n /**\n * Photometric interpretation\n *\n * @see {@link Photometric}\n *\n * @example\n * ```typescript\n * 2 // Photometric.Rgb\n * ```\n */\n TiffTag[TiffTag[\"Photometric\"] = 262] = \"Photometric\";\n /** Tile width in pixels */\n TiffTag[TiffTag[\"TileWidth\"] = 322] = \"TileWidth\";\n /** Tile height in pixels */\n TiffTag[TiffTag[\"TileHeight\"] = 323] = \"TileHeight\";\n /**\n * Offsets to data tiles\n * `0` means the tile has no data (sparse tiff)\n *\n * @example\n * ```typescript\n * [0, 3200, 1406] // three tiles, first tile does not exist\n * ```\n */\n TiffTag[TiffTag[\"TileOffsets\"] = 324] = \"TileOffsets\";\n /**\n * Byte counts for tiles\n * `0 means the tile does not exist (sparse tiff)\n *\n * @example\n * ```typescript\n * [0, 3200, 1406] // three tiles, first tile does not exist\n * ```\n **/\n TiffTag[TiffTag[\"TileByteCounts\"] = 325] = \"TileByteCounts\";\n /** JPEG table stream */\n TiffTag[TiffTag[\"JpegTables\"] = 347] = \"JpegTables\";\n TiffTag[TiffTag[\"StripOffsets\"] = 273] = \"StripOffsets\";\n TiffTag[TiffTag[\"StripByteCounts\"] = 279] = \"StripByteCounts\";\n // GDAL\n /**\n * GDAL metadata\n * Generally a xml document with lots of information about the tiff and how it was created\n */\n TiffTag[TiffTag[\"GdalMetadata\"] = 42112] = \"GdalMetadata\";\n /**\n * No data value encoded as a string\n *\n * @example \"-9999\"\n */\n TiffTag[TiffTag[\"GdalNoData\"] = 42113] = \"GdalNoData\";\n /** GeoTiff Tags */\n /**\n * Pixel scale in meters\n * in the format [scaleX, scaleY, scaleZ]\n *\n * Requires {@link ModelTiePoint} to be set and {@link ModelTransformation} not to be set\n *\n * @example\n * ```typescript\n * [100.0, 100.0, 0.0]\n * ```\n */\n TiffTag[TiffTag[\"ModelPixelScale\"] = 33550] = \"ModelPixelScale\";\n /**\n * Position of the tiff\n *\n * contains a list of tie points that contain\n * [x,y,z] of position in the in the tiff, generally [0,0,0]\n * [x,y,z] of the position in the projected\n *\n * @example\n * Mapping tiff point `[0,0,0]` to projected coordinates `[350807.4, 5316081.3, 0.0]`\n * ```\n * [0, 0, 0, 350807.4, 5316081.3, 0.0]\n * ```\n */\n TiffTag[TiffTag[\"ModelTiePoint\"] = 33922] = \"ModelTiePoint\";\n /**\n * Exact affine transformation between the tiff and the projected location\n *\n * this tag should not be defined when {@link ModelTiePoint} or {@link ModelPixelScale} are used\n *\n * @example\n *```typescript\n * [ 0, 100.0, 0, 400000.0,\n * 100.0, 0, 0, 500000.0,\n * 0, 0, 0, 0,\n * 0, 0, 0, 1]\n * ```\n */\n TiffTag[TiffTag[\"ModelTransformation\"] = 34264] = \"ModelTransformation\";\n /**\n * List of GeoTiff tags\n * {@link TiffTagGeo}\n *\n * {@link https://docs.ogc.org/is/19-008r4/19-008r4.html#_requirements_class_geokeydirectorytag}\n */\n TiffTag[TiffTag[\"GeoKeyDirectory\"] = 34735] = \"GeoKeyDirectory\";\n /**\n * Double Parameters for GeoTiff Tags\n *\n * {@link TiffTagGeo}\n */\n TiffTag[TiffTag[\"GeoDoubleParams\"] = 34736] = \"GeoDoubleParams\";\n /**\n * Ascii Parameters for GeoTiff Tags\n *\n * {@link TiffTagGeo}\n */\n TiffTag[TiffTag[\"GeoAsciiParams\"] = 34737] = \"GeoAsciiParams\";\n /**\n * Stores the LERC version and additional compression\n *\n * @example\n * ```typescript\n * [4, 0] // version 4, no extra compression\n * ```\n */\n TiffTag[TiffTag[\"LercParameters\"] = 50674] = \"LercParameters\";\n TiffTag[TiffTag[\"PlanarConfiguration\"] = 284] = \"PlanarConfiguration\";\n /** Untyped values */\n TiffTag[TiffTag[\"CellLength\"] = 265] = \"CellLength\";\n TiffTag[TiffTag[\"CellWidth\"] = 264] = \"CellWidth\";\n TiffTag[TiffTag[\"ColorMap\"] = 320] = \"ColorMap\";\n TiffTag[TiffTag[\"Copyright\"] = 33432] = \"Copyright\";\n TiffTag[TiffTag[\"DateTime\"] = 306] = \"DateTime\";\n TiffTag[TiffTag[\"ExtraSamples\"] = 338] = \"ExtraSamples\";\n TiffTag[TiffTag[\"FillOrder\"] = 266] = \"FillOrder\";\n TiffTag[TiffTag[\"FreeByteCounts\"] = 289] = \"FreeByteCounts\";\n TiffTag[TiffTag[\"FreeOffsets\"] = 288] = \"FreeOffsets\";\n TiffTag[TiffTag[\"GrayResponseCurve\"] = 291] = \"GrayResponseCurve\";\n TiffTag[TiffTag[\"GrayResponseUnit\"] = 290] = \"GrayResponseUnit\";\n TiffTag[TiffTag[\"HostComputer\"] = 316] = \"HostComputer\";\n TiffTag[TiffTag[\"ImageDescription\"] = 270] = \"ImageDescription\";\n TiffTag[TiffTag[\"Make\"] = 271] = \"Make\";\n TiffTag[TiffTag[\"MaxSampleValue\"] = 281] = \"MaxSampleValue\";\n TiffTag[TiffTag[\"MinSampleValue\"] = 280] = \"MinSampleValue\";\n TiffTag[TiffTag[\"Model\"] = 272] = \"Model\";\n TiffTag[TiffTag[\"Orientation\"] = 274] = \"Orientation\";\n TiffTag[TiffTag[\"ResolutionUnit\"] = 296] = \"ResolutionUnit\";\n TiffTag[TiffTag[\"RowsPerStrip\"] = 278] = \"RowsPerStrip\";\n TiffTag[TiffTag[\"SamplesPerPixel\"] = 277] = \"SamplesPerPixel\";\n TiffTag[TiffTag[\"Software\"] = 305] = \"Software\";\n TiffTag[TiffTag[\"Threshholding\"] = 263] = \"Threshholding\";\n TiffTag[TiffTag[\"XResolution\"] = 282] = \"XResolution\";\n TiffTag[TiffTag[\"YResolution\"] = 283] = \"YResolution\";\n TiffTag[TiffTag[\"BadFaxLines\"] = 326] = \"BadFaxLines\";\n TiffTag[TiffTag[\"CleanFaxData\"] = 327] = \"CleanFaxData\";\n TiffTag[TiffTag[\"ClipPath\"] = 343] = \"ClipPath\";\n TiffTag[TiffTag[\"ConsecutiveBadFaxLines\"] = 328] = \"ConsecutiveBadFaxLines\";\n TiffTag[TiffTag[\"Decode\"] = 433] = \"Decode\";\n TiffTag[TiffTag[\"DefaultImageColor\"] = 434] = \"DefaultImageColor\";\n TiffTag[TiffTag[\"DocumentName\"] = 269] = \"DocumentName\";\n TiffTag[TiffTag[\"DotRange\"] = 336] = \"DotRange\";\n TiffTag[TiffTag[\"HalftoneHints\"] = 321] = \"HalftoneHints\";\n TiffTag[TiffTag[\"Indexed\"] = 346] = \"Indexed\";\n TiffTag[TiffTag[\"PageName\"] = 285] = \"PageName\";\n TiffTag[TiffTag[\"PageNumber\"] = 297] = \"PageNumber\";\n TiffTag[TiffTag[\"Predictor\"] = 317] = \"Predictor\";\n TiffTag[TiffTag[\"PrimaryChromaticities\"] = 319] = \"PrimaryChromaticities\";\n TiffTag[TiffTag[\"ReferenceBlackWhite\"] = 532] = \"ReferenceBlackWhite\";\n TiffTag[TiffTag[\"SMinSampleValue\"] = 340] = \"SMinSampleValue\";\n TiffTag[TiffTag[\"SMaxSampleValue\"] = 341] = \"SMaxSampleValue\";\n TiffTag[TiffTag[\"StripRowCounts\"] = 559] = \"StripRowCounts\";\n TiffTag[TiffTag[\"SubIFDs\"] = 330] = \"SubIFDs\";\n TiffTag[TiffTag[\"T4Options\"] = 292] = \"T4Options\";\n TiffTag[TiffTag[\"T6Options\"] = 293] = \"T6Options\";\n TiffTag[TiffTag[\"TransferFunction\"] = 301] = \"TransferFunction\";\n TiffTag[TiffTag[\"WhitePoint\"] = 318] = \"WhitePoint\";\n TiffTag[TiffTag[\"XClipPathUnits\"] = 344] = \"XClipPathUnits\";\n TiffTag[TiffTag[\"XPosition\"] = 286] = \"XPosition\";\n TiffTag[TiffTag[\"YCbCrCoefficients\"] = 529] = \"YCbCrCoefficients\";\n TiffTag[TiffTag[\"YCbCrPositioning\"] = 531] = \"YCbCrPositioning\";\n TiffTag[TiffTag[\"YCbCrSubSampling\"] = 530] = \"YCbCrSubSampling\";\n TiffTag[TiffTag[\"YClipPathUnits\"] = 345] = \"YClipPathUnits\";\n TiffTag[TiffTag[\"YPosition\"] = 287] = \"YPosition\";\n TiffTag[TiffTag[\"ApertureValue\"] = 37378] = \"ApertureValue\";\n TiffTag[TiffTag[\"ColorSpace\"] = 40961] = \"ColorSpace\";\n TiffTag[TiffTag[\"DateTimeDigitized\"] = 36868] = \"DateTimeDigitized\";\n TiffTag[TiffTag[\"DateTimeOriginal\"] = 36867] = \"DateTimeOriginal\";\n TiffTag[TiffTag[\"ExifIFD\"] = 34665] = \"ExifIFD\";\n TiffTag[TiffTag[\"ExifVersion\"] = 36864] = \"ExifVersion\";\n TiffTag[TiffTag[\"ExposureTime\"] = 33434] = \"ExposureTime\";\n TiffTag[TiffTag[\"FileSource\"] = 41728] = \"FileSource\";\n TiffTag[TiffTag[\"Flash\"] = 37385] = \"Flash\";\n TiffTag[TiffTag[\"FlashpixVersion\"] = 40960] = \"FlashpixVersion\";\n TiffTag[TiffTag[\"FNumber\"] = 33437] = \"FNumber\";\n TiffTag[TiffTag[\"ImageUniqueID\"] = 42016] = \"ImageUniqueID\";\n TiffTag[TiffTag[\"LightSource\"] = 37384] = \"LightSource\";\n TiffTag[TiffTag[\"MakerNote\"] = 37500] = \"MakerNote\";\n TiffTag[TiffTag[\"ShutterSpeedValue\"] = 37377] = \"ShutterSpeedValue\";\n TiffTag[TiffTag[\"UserComment\"] = 37510] = \"UserComment\";\n TiffTag[TiffTag[\"IPTC\"] = 33723] = \"IPTC\";\n TiffTag[TiffTag[\"ICCProfile\"] = 34675] = \"ICCProfile\";\n TiffTag[TiffTag[\"XMP\"] = 700] = \"XMP\";\n})(TiffTag || (TiffTag = {}));\n/**\n * Geotiff tags as defined by OGC GeoTiff 1.1\n *\n * {@link https://docs.ogc.org/is/19-008r4/19-008r4.html#_summary_of_geokey_ids_and_names}\n */\nexport var TiffTagGeo;\n(function (TiffTagGeo) {\n // GeoTIFF Configuration Keys\n /**\n * This GeoKey defines the type of Model coordinate reference system used, to which the transformation from the raster space is made:\n *\n * {@link https://docs.ogc.org/is/19-008r4/19-008r4.html#_requirements_class_gtmodeltypegeokey}\n *\n * {@link ModelTypeCode}\n */\n TiffTagGeo[TiffTagGeo[\"GTModelTypeGeoKey\"] = 1024] = \"GTModelTypeGeoKey\";\n /**\n * There are currently only two options: `RasterPixelIsPoint` and `RasterPixelIsArea`\n *\n * {@link https://docs.ogc.org/is/19-008r4/19-008r4.html#_requirements_class_gtrastertypegeokey}\n *\n * {@link RasterTypeKey}\n */\n TiffTagGeo[TiffTagGeo[\"GTRasterTypeGeoKey\"] = 1025] = \"GTRasterTypeGeoKey\";\n /**\n * ASCII reference to published documentation on the overall configuration of the GeoTIFF file.\n *\n * @example \"NZGD2000 / New Zealand Transverse Mercator 2000\"\n */\n TiffTagGeo[TiffTagGeo[\"GTCitationGeoKey\"] = 1026] = \"GTCitationGeoKey\";\n // Geodetic CRS Parameter Keys\n /**\n * Renamed from GeographicTypeGeoKey in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"GeodeticCRSGeoKey\"] = 2048] = \"GeodeticCRSGeoKey\";\n /**\n * Renamed from GeogCitationGeoKey in OGC GeoTiff\n *\n * @example \"NZTM\"\n */\n TiffTagGeo[TiffTagGeo[\"GeodeticCitationGeoKey\"] = 2049] = \"GeodeticCitationGeoKey\";\n /**\n * Renamed from GeogGeodeticDatumGeoKey in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"GeodeticDatumGeoKey\"] = 2050] = \"GeodeticDatumGeoKey\";\n /**\n * Renamed from \"GeogPrimeMeridianGeoKey\" in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"PrimeMeridianGeoKey\"] = 2051] = \"PrimeMeridianGeoKey\";\n /**\n * Linear unit of measure\n * @example 9001 // Metre\n */\n TiffTagGeo[TiffTagGeo[\"GeogLinearUnitsGeoKey\"] = 2052] = \"GeogLinearUnitsGeoKey\";\n TiffTagGeo[TiffTagGeo[\"GeogLinearUnitSizeGeoKey\"] = 2053] = \"GeogLinearUnitSizeGeoKey\";\n /**\n * Angular unit of measure\n *\n * @example 9102 // Degree\n */\n TiffTagGeo[TiffTagGeo[\"GeogAngularUnitsGeoKey\"] = 2054] = \"GeogAngularUnitsGeoKey\";\n TiffTagGeo[TiffTagGeo[\"GeogAngularUnitSizeGeoKey\"] = 2055] = \"GeogAngularUnitSizeGeoKey\";\n /**\n * Renamed from \"GeogEllipsoidGeoKey\" in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"EllipsoidGeoKey\"] = 2056] = \"EllipsoidGeoKey\";\n /**\n * Renamed from \"GeogSemiMajorAxisGeoKey\" in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"EllipsoidSemiMajorAxisGeoKey\"] = 2057] = \"EllipsoidSemiMajorAxisGeoKey\";\n /**\n * Renamed from \"GeogSemiMinorAxisGeoKey\" in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"EllipsoidSemiMinorAxisGeoKey\"] = 2058] = \"EllipsoidSemiMinorAxisGeoKey\";\n /**\n * Renamed from \"GeogInvFlatteningGeoKey\" in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"EllipsoidInvFlatteningGeoKey\"] = 2059] = \"EllipsoidInvFlatteningGeoKey\";\n /**\n * Renamed from \"GeogPrimeMeridianLongGeoKey\" in OGC GeoTiff\n */\n TiffTagGeo[TiffTagGeo[\"PrimeMeridianLongitudeGeoKey\"] = 2061] = \"PrimeMeridianLongitudeGeoKey\";\n TiffTagGeo[TiffTagGeo[\"GeogTOWGS84GeoKey\"] = 2062] = \"GeogTOWGS84GeoKey\";\n // Projected CRS Parameter Keys\n TiffTagGeo[TiffTagGeo[\"GeogAzimuthUnitsGeoKey\"] = 2060] = \"GeogAzimuthUnitsGeoKey\";\n /**\n * EPSG code of the tiff\n *\n * Renamed from \"ProjectedCSTypeGeoKey\" in OGC GeoTiff\n *\n * @example\n * ```typescript\n * 2193 // NZTM\n * 3857 // WebMercatorQuad\n * ```\n */\n TiffTagGeo[TiffTagGeo[\"ProjectedCRSGeoKey\"] = 3072] = \"ProjectedCRSGeoKey\";\n /**\n * ASCII reference to published documentation on the Projected Coordinate System\n *\n * Renamed from \"PCSCitationGeoKey\" in OGC GeoTiff\n *\n * @example \"UTM Zone 60 N with WGS 84\"\n */\n TiffTagGeo[TiffTagGeo[\"ProjectedCitationGeoKey\"] = 3073] = \"ProjectedCitationGeoKey\";\n /**\n * Specifies a map projection from the GeoTIFF CRS register or to indicate that the map projection is user-defined.\n *\n * {@link https://docs.ogc.org/is/19-008r4/19-008r4.html#_map_projection_geokeys}\n *\n * @example 2193\n */\n TiffTagGeo[TiffTagGeo[\"ProjectionGeoKey\"] = 3074] = \"ProjectionGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjMethodGeoKey\"] = 3075] = \"ProjMethodGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjLinearUnitsGeoKey\"] = 3076] = \"ProjLinearUnitsGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjLinearUnitSizeGeoKey\"] = 3077] = \"ProjLinearUnitSizeGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjStdParallel1GeoKey\"] = 3078] = \"ProjStdParallel1GeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjStdParallel2GeoKey\"] = 3079] = \"ProjStdParallel2GeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjNatOriginLongGeoKey\"] = 3080] = \"ProjNatOriginLongGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjNatOriginLatGeoKey\"] = 3081] = \"ProjNatOriginLatGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjFalseEastingGeoKey\"] = 3082] = \"ProjFalseEastingGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjFalseNorthingGeoKey\"] = 3083] = \"ProjFalseNorthingGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjFalseOriginLongGeoKey\"] = 3084] = \"ProjFalseOriginLongGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjFalseOriginLatGeoKey\"] = 3085] = \"ProjFalseOriginLatGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjFalseOriginEastingGeoKey\"] = 3086] = \"ProjFalseOriginEastingGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjFalseOriginNorthingGeoKey\"] = 3087] = \"ProjFalseOriginNorthingGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjCenterLongGeoKey\"] = 3088] = \"ProjCenterLongGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjCenterLatGeoKey\"] = 3089] = \"ProjCenterLatGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjCenterEastingGeoKey\"] = 3090] = \"ProjCenterEastingGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjCenterNorthingGeoKey\"] = 3091] = \"ProjCenterNorthingGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjScaleAtNatOriginGeoKey\"] = 3092] = \"ProjScaleAtNatOriginGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjScaleAtCenterGeoKey\"] = 3093] = \"ProjScaleAtCenterGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjAzimuthAngleGeoKey\"] = 3094] = \"ProjAzimuthAngleGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjStraightVertPoleLongGeoKey\"] = 3095] = \"ProjStraightVertPoleLongGeoKey\";\n TiffTagGeo[TiffTagGeo[\"ProjRectifiedGridAngleGeoKey\"] = 3096] = \"ProjRectifiedGridAngleGeoKey\";\n // Vertical CRS Parameter Keys (4096-5119)\n /**\n * This key is provided to specify the vertical coordinate reference system from the GeoTIFF CRS register or to indicate that the CRS is a user-defined vertical coordinate reference system. The value for VerticalGeoKey should follow the\n *\n * {@link https://docs.ogc.org/is/19-008r4/19-008r4.html#_requirements_class_verticalgeokey}\n *\n * @example 4979\n */\n TiffTagGeo[TiffTagGeo[\"VerticalGeoKey\"] = 4096] = \"VerticalGeoKey\";\n /**\n *\n * @example \"Geographic 3D WGS 84, Ellipsoidal height\"\n */\n TiffTagGeo[TiffTagGeo[\"VerticalCitationGeoKey\"] = 4097] = \"VerticalCitationGeoKey\";\n /**\n * vertical datum for a user-defined vertical coordinate reference system.\n */\n TiffTagGeo[TiffTagGeo[\"VerticalDatumGeoKey\"] = 4098] = \"VerticalDatumGeoKey\";\n /**\n * Linear Unit for vertical CRS\n *\n * @example 9001\n */\n TiffTagGeo[TiffTagGeo[\"VerticalUnitsGeoKey\"] = 4099] = \"VerticalUnitsGeoKey\";\n})(TiffTagGeo || (TiffTagGeo = {}));\n/**\n * EPSG Angular Units. exist between [9100, 9199]\n *\n * Taken from libgeotiff\n */\nexport var AngularUnit;\n(function (AngularUnit) {\n AngularUnit[AngularUnit[\"Radian\"] = 9101] = \"Radian\";\n AngularUnit[AngularUnit[\"Degree\"] = 9102] = \"Degree\";\n AngularUnit[AngularUnit[\"ArcMinute\"] = 9103] = \"ArcMinute\";\n AngularUnit[AngularUnit[\"ArcDegree\"] = 9104] = \"ArcDegree\";\n AngularUnit[AngularUnit[\"Grad\"] = 9105] = \"Grad\";\n AngularUnit[AngularUnit[\"Gon\"] = 9106] = \"Gon\";\n AngularUnit[AngularUnit[\"Dms\"] = 9107] = \"Dms\";\n})(AngularUnit || (AngularUnit = {}));\n/**\n * ESPG Liner units exist between [9000, 9099]\n *\n * Taken from libgeotiff\n */\nexport var LinearUnit;\n(function (LinearUnit) {\n LinearUnit[LinearUnit[\"Metre\"] = 9001] = \"Metre\";\n LinearUnit[LinearUnit[\"Foot\"] = 9002] = \"Foot\";\n LinearUnit[LinearUnit[\"FootUsSurvey\"] = 9003] = \"FootUsSurvey\";\n LinearUnit[LinearUnit[\"FootModifiedAmerican\"] = 9004] = \"FootModifiedAmerican\";\n LinearUnit[LinearUnit[\"FootClarke\"] = 9005] = \"FootClarke\";\n LinearUnit[LinearUnit[\"FootIndian\"] = 9006] = \"FootIndian\";\n LinearUnit[LinearUnit[\"Link\"] = 9007] = \"Link\";\n LinearUnit[LinearUnit[\"LinkBenoit\"] = 9008] = \"LinkBenoit\";\n LinearUnit[LinearUnit[\"LinkSears\"] = 9009] = \"LinkSears\";\n LinearUnit[LinearUnit[\"ChainBenoit\"] = 9010] = \"ChainBenoit\";\n LinearUnit[LinearUnit[\"ChainSears\"] = 9011] = \"ChainSears\";\n LinearUnit[LinearUnit[\"YardSears\"] = 9012] = \"YardSears\";\n LinearUnit[LinearUnit[\"YardIndian\"] = 9013] = \"YardIndian\";\n LinearUnit[LinearUnit[\"Fathom\"] = 9014] = \"Fathom\";\n LinearUnit[LinearUnit[\"MileInternationalNautical\"] = 9015] = \"MileInternationalNautical\";\n})(LinearUnit || (LinearUnit = {}));\n/**\n * Convert tiff tag values when being read.\n */\nexport const TiffTagConvertArray = {\n [TiffTag.TileByteCounts]: true,\n [TiffTag.TileOffsets]: true,\n [TiffTag.StripOffsets]: true,\n [TiffTag.StripByteCounts]: true,\n [TiffTag.BitsPerSample]: true,\n [TiffTag.SampleFormat]: true,\n [TiffTag.GeoKeyDirectory]: true,\n [TiffTag.GeoDoubleParams]: true,\n};\n","import { Compression } from './tiff.tag.id.js';\n/**\n * MimeType conversion for common tif image compresson types\n */\nexport var TiffMimeType;\n(function (TiffMimeType) {\n TiffMimeType[\"None\"] = \"application/octet-stream\";\n TiffMimeType[\"Jbig\"] = \"image/jbig\";\n TiffMimeType[\"Dcs\"] = \"image/x-kodak-dcs\";\n TiffMimeType[\"PackBits\"] = \"application/packbits\";\n TiffMimeType[\"Jpeg\"] = \"image/jpeg\";\n TiffMimeType[\"Jp2000\"] = \"image/jp2\";\n TiffMimeType[\"JpegXl\"] = \"image/jpegxl\";\n TiffMimeType[\"Webp\"] = \"image/webp\";\n TiffMimeType[\"Zstd\"] = \"application/zstd\";\n TiffMimeType[\"Lzw\"] = \"application/lzw\";\n TiffMimeType[\"Deflate\"] = \"application/deflate\";\n TiffMimeType[\"Lerc\"] = \"application/lerc\";\n TiffMimeType[\"Lzma\"] = \"application/x-lzma\";\n})(TiffMimeType || (TiffMimeType = {}));\nexport const TiffCompressionMimeType = {\n [Compression.None]: TiffMimeType.None,\n [Compression.Lzw]: TiffMimeType.Lzw,\n [Compression.Jpeg6]: TiffMimeType.Jpeg,\n [Compression.Jpeg]: TiffMimeType.Jpeg,\n [Compression.DeflateOther]: TiffMimeType.Deflate,\n [Compression.Deflate]: TiffMimeType.Deflate,\n [Compression.Lerc]: TiffMimeType.Lerc,\n [Compression.Lzma]: TiffMimeType.Lzma,\n [Compression.Jp2000]: TiffMimeType.Jp2000,\n [Compression.Zstd]: TiffMimeType.Zstd,\n [Compression.Webp]: TiffMimeType.Webp,\n [Compression.JpegXl]: TiffMimeType.JpegXl,\n [Compression.Ccittrle]: TiffMimeType.None,\n [Compression.CcittT4]: TiffMimeType.None,\n [Compression.CcittT6]: TiffMimeType.None,\n [Compression.T85]: TiffMimeType.Jbig,\n [Compression.T43]: TiffMimeType.Jbig,\n [Compression.Next]: TiffMimeType.None,\n [Compression.Ccittrlew]: TiffMimeType.None,\n [Compression.PackBits]: TiffMimeType.PackBits,\n [Compression.ThunderScan]: TiffMimeType.None,\n [Compression.It8ctpad]: TiffMimeType.None,\n [Compression.It8lw]: TiffMimeType.None,\n [Compression.It8mp]: TiffMimeType.None,\n [Compression.It8bl]: TiffMimeType.None,\n [Compression.PixarFilm]: TiffMimeType.None,\n [Compression.PixarLog]: TiffMimeType.None,\n [Compression.Dcs]: TiffMimeType.Dcs,\n [Compression.Jbig]: TiffMimeType.Jbig,\n [Compression.SgiLog]: TiffMimeType.None,\n [Compression.SgiLog24]: TiffMimeType.None,\n [Compression.JpegXlDng17]: TiffMimeType.JpegXl,\n};\n/**\n * Lookup the related mimetype for a compression id\n *\n * @param c Compression id\n * @returns mime type for compression\n */\nexport function getCompressionMimeType(c) {\n if (c == null)\n return null;\n return TiffCompressionMimeType[c];\n}\n","export var TiffTagValueType;\n(function (TiffTagValueType) {\n TiffTagValueType[TiffTagValueType[\"Uint8\"] = 1] = \"Uint8\";\n TiffTagValueType[TiffTagValueType[\"Ascii\"] = 2] = \"Ascii\";\n TiffTagValueType[TiffTagValueType[\"Uint16\"] = 3] = \"Uint16\";\n TiffTagValueType[TiffTagValueType[\"Uint32\"] = 4] = \"Uint32\";\n TiffTagValueType[TiffTagValueType[\"Rational\"] = 5] = \"Rational\";\n TiffTagValueType[TiffTagValueType[\"Int8\"] = 6] = \"Int8\";\n TiffTagValueType[TiffTagValueType[\"Undefined\"] = 7] = \"Undefined\";\n TiffTagValueType[TiffTagValueType[\"Int16\"] = 8] = \"Int16\";\n TiffTagValueType[TiffTagValueType[\"Int32\"] = 9] = \"Int32\";\n TiffTagValueType[TiffTagValueType[\"SignedRational\"] = 10] = \"SignedRational\";\n TiffTagValueType[TiffTagValueType[\"Float32\"] = 11] = \"Float32\";\n TiffTagValueType[TiffTagValueType[\"Float64\"] = 12] = \"Float64\";\n // IFD offset: https://owl.phy.queensu.ca/~phil/exiftool/standards.html\n TiffTagValueType[TiffTagValueType[\"Ifd\"] = 13] = \"Ifd\";\n // BigTiff\n TiffTagValueType[TiffTagValueType[\"Uint64\"] = 16] = \"Uint64\";\n TiffTagValueType[TiffTagValueType[\"Int64\"] = 17] = \"Int64\";\n TiffTagValueType[TiffTagValueType[\"Ifd8\"] = 18] = \"Ifd8\";\n})(TiffTagValueType || (TiffTagValueType = {}));\n","/**\n * Tif version number that is stored at the start of a tif file\n */\nexport var TiffVersion;\n(function (TiffVersion) {\n /**\n * Big tif's,\n * generally uses 64bit numbers for offsets\n * @see http://bigtiff.org/\n **/\n TiffVersion[TiffVersion[\"BigTiff\"] = 43] = \"BigTiff\";\n /**\n * Original tif\n * Uses 32 bit or smaller numbers for offsets and counters\n */\n TiffVersion[TiffVersion[\"Tiff\"] = 42] = \"Tiff\";\n})(TiffVersion || (TiffVersion = {}));\n","export var ByteSizeFloat;\n(function (ByteSizeFloat) {\n ByteSizeFloat[ByteSizeFloat[\"Double\"] = 8] = \"Double\";\n ByteSizeFloat[ByteSizeFloat[\"Float32\"] = 4] = \"Float32\";\n})(ByteSizeFloat || (ByteSizeFloat = {}));\nexport var ByteSize;\n(function (ByteSize) {\n ByteSize[ByteSize[\"UInt64\"] = 8] = \"UInt64\";\n ByteSize[ByteSize[\"UInt32\"] = 4] = \"UInt32\";\n ByteSize[ByteSize[\"UInt16\"] = 2] = \"UInt16\";\n ByteSize[ByteSize[\"UInt8\"] = 1] = \"UInt8\";\n})(ByteSize || (ByteSize = {}));\n/** Shifting `<< 32` does not work in javascript */\nconst POW_32 = 2 ** 32;\n/**\n * Read a uint64 at the offset\n *\n * This is not precise for large numbers\n * @see {DataView.getBigUint64}\n * @param offset offset to read\n */\nexport function getUint64(view, offset, isLittleEndian) {\n // split 64-bit number into two 32-bit (4-byte) parts\n const left = view.getUint32(offset, isLittleEndian);\n const right = view.getUint32(offset + 4, isLittleEndian);\n // combine the two 32-bit values\n const combined = isLittleEndian ? left + POW_32 * right : POW_32 * left + right;\n if (!Number.isSafeInteger(combined)) {\n throw new Error(combined + ' exceeds MAX_SAFE_INTEGER. Precision may is lost');\n }\n return combined;\n}\nexport function getUint(view, offset, bs, isLittleEndian) {\n switch (bs) {\n case ByteSize.UInt8:\n return view.getUint8(offset);\n case ByteSize.UInt16:\n return view.getUint16(offset, isLittleEndian);\n case ByteSize.UInt32:\n return view.getUint32(offset, isLittleEndian);\n case ByteSize.UInt64:\n return getUint64(view, offset, isLittleEndian);\n }\n}\n","const buffer = new ArrayBuffer(4);\nconst uint32 = new Uint32Array(buffer);\nconst uint8 = new Uint8Array(buffer);\nuint32[0] = 1;\nexport const isLittleEndian = uint8[0] === 1;\n","import { getCompressionMimeType, TiffCompressionMimeType, TiffMimeType } from './const/tiff.mime.js';\nimport { Compression, ModelTypeCode, SubFileType, TiffTag, TiffTagGeo } from './const/tiff.tag.id.js';\nimport { fetchAllOffsets, fetchLazy, getValueAt, getValueAtSync } from './read/tiff.tag.factory.js';\nimport { getUint } from './util/bytes.js';\n/** Invalid EPSG code */\nexport const InvalidProjectionCode = 32767;\n/** Tags that are commonly accessed for geotiffs */\nexport const ImportantTags = new Set([\n TiffTag.Compression,\n TiffTag.ImageHeight,\n TiffTag.ImageWidth,\n TiffTag.ModelPixelScale,\n TiffTag.ModelTiePoint,\n TiffTag.ModelTransformation,\n TiffTag.TileHeight,\n TiffTag.TileWidth,\n]);\nexport const ImportantGeoTags = new Set([TiffTag.GeoKeyDirectory, TiffTag.GeoAsciiParams, TiffTag.GeoDoubleParams]);\nexport class TiffImage {\n /**\n * Id of the tif image, generally the image index inside the tif\n * where 0 is the root image, and every sub image is +1\n *\n * @example 0, 1, 2\n */\n id;\n /** Reference to the TIFF that owns this image */\n tiff;\n /** Has loadGeoTiffTags been called */\n isGeoTagsLoaded = false;\n /** Sub tags stored in TiffTag.GeoKeyDirectory */\n tagsGeo = new Map();\n /** All IFD tags that have been read for the image */\n tags;\n constructor(tiff, id, tags) {\n this.tiff = tiff;\n this.id = id;\n this.tags = tags;\n }\n /**\n * Force loading of important tags if they have not already been loaded\n *\n * @param loadGeoTags Whether to load the GeoKeyDirectory and unpack it\n */\n async init(loadGeoTags = true, options) {\n const requiredTags = [];\n ImportantTags.forEach((tag) => {\n requiredTags.push(this.fetch(tag, options));\n });\n if (loadGeoTags) {\n ImportantGeoTags.forEach((tag) => {\n requiredTags.push(this.fetch(tag, options));\n });\n }\n await Promise.all(requiredTags);\n if (loadGeoTags)\n await this.loadGeoTiffTags();\n }\n /**\n * Get the value of a TiffTag if it has been loaded, null otherwise.\n *\n * If the value is not loaded use {@link TiffImage.fetch} to load the value\n * Or use {@link TiffImage.has} to check if the tag exists\n *\n *\n * @returns value if loaded, null otherwise\n */\n value(tag) {\n const sourceTag = this.tags.get(tag);\n if (sourceTag == null)\n return null;\n if (sourceTag.type === 'offset' && sourceTag.isLoaded === false)\n return null;\n // TODO would be good to type check this\n return sourceTag.value;\n }\n /**\n * Does the tag exist\n *\n * @example\n * ```typescript\n * img.has(TiffTag.ImageWidth) // true\n * ```\n *\n * @param tag Tag to check\n * @returns true if the tag exists, false otherwise\n */\n has(tag) {\n return this.tags.has(tag);\n }\n /**\n * Load a tag.\n *\n * If it is not currently loaded, fetch the required data for the tag.\n *\n * @example\n * ```typescript\n * await img.fetch(TiffTag.ImageWidth) // 512 (px)\n * ```\n *\n * @param tag tag to fetch\n */\n async fetch(tag, options) {\n const sourceTag = this.tags.get(tag);\n if (sourceTag == null)\n return null;\n if (sourceTag.type === 'inline')\n return sourceTag.value;\n if (sourceTag.type === 'lazy')\n return fetchLazy(sourceTag, this.tiff, options);\n if (sourceTag.isLoaded)\n return sourceTag.value;\n if (sourceTag.type === 'offset')\n return fetchAllOffsets(this.tiff, sourceTag, options);\n throw new Error('Cannot fetch:' + tag);\n }\n /**\n * Get the associated TiffTagGeo\n *\n * @example\n * ```typescript\n * image.valueGeo(TiffTagGeo.GTRasterTypeGeoKey)\n * ```\n * @throws if {@link loadGeoTiffTags} has not been called\n */\n valueGeo(tag) {\n if (this.isGeoTagsLoaded === false)\n throw new Error('loadGeoTiffTags() has not been called');\n return this.tagsGeo.get(tag);\n }\n /**\n * Load and parse the GDAL_NODATA Tifftag\n *\n * @throws if the tag is not loaded\n * @returns null if the tag does not exist\n */\n get noData() {\n const tag = this.tags.get(TiffTag.GdalNoData);\n if (tag == null)\n return null;\n if (tag.value != null)\n return Number(tag.value);\n throw new Error('GdalNoData tag is not loaded');\n }\n /**\n * Load and unpack the GeoKeyDirectory\n *\n * @see {TiffTag.GeoKeyDirectory}\n */\n async loadGeoTiffTags() {\n // Already loaded\n if (this.isGeoTagsLoaded)\n return;\n const sourceTag = this.tags.get(TiffTag.GeoKeyDirectory);\n if (sourceTag == null) {\n this.isGeoTagsLoaded = true;\n return;\n }\n if (sourceTag.type === 'lazy' && sourceTag.value == null) {\n // Load all the required keys\n await Promise.all([\n this.fetch(TiffTag.GeoKeyDirectory),\n this.fetch(TiffTag.GeoAsciiParams),\n this.fetch(TiffTag.GeoDoubleParams),\n ]);\n }\n this.isGeoTagsLoaded = true;\n if (sourceTag.value == null)\n return;\n const geoTags = sourceTag.value;\n if (typeof geoTags === 'number')\n throw new Error('Invalid geo tags found');\n for (let i = 4; i <= geoTags[3] * 4; i += 4) {\n const key = geoTags[i];\n const locationTagId = geoTags[i + 1];\n const offset = geoTags[i + 3];\n if (locationTagId === 0) {\n this.tagsGeo.set(key, offset);\n continue;\n }\n const tag = this.tags.get(locationTagId);\n if (tag == null || tag.value == null)\n continue;\n const count = geoTags[i + 2];\n if (typeof tag.value === 'string') {\n this.tagsGeo.set(key, tag.value.slice(offset, offset + count - 1).trim());\n }\n else if (Array.isArray(tag.value)) {\n if (count === 1)\n this.tagsGeo.set(key, tag.value[offset]);\n else\n this.tagsGeo.set(key, tag.value.slice(offset, offset + count));\n }\n else {\n throw new Error('Failed to extract GeoTiffTags');\n }\n }\n }\n /**\n * Get the origin point for the image\n *\n * @returns origin point of the image\n */\n get origin() {\n const tiePoints = this.value(TiffTag.ModelTiePoint);\n if (tiePoints != null && tiePoints.length === 6) {\n return [tiePoints[3], tiePoints[4], tiePoints[5]];\n }\n const modelTransformation = this.value(TiffTag.ModelTransformation);\n if (modelTransformation != null) {\n return [modelTransformation[3], modelTransformation[7], modelTransformation[11]];\n }\n // If this is a sub image, use the origin from the top level image\n if (this.value(TiffTag.SubFileType) === SubFileType.ReducedImage && this.id !== 0) {\n return this.tiff.images[0].origin;\n }\n throw new Error('Image does not have a geo transformation.');\n }\n /** Is there enough geo information on this image to figure out where its actually located */\n get isGeoLocated() {\n const isImageLocated = this.value(TiffTag.ModelPixelScale) != null || this.value(TiffTag.ModelTransformation) != null;\n if (isImageLocated)\n return true;\n // If this is a sub image, use the isGeoLocated from the top level image\n if (this.isSubImage && this.id !== 0)\n return this.tiff.images[0].isGeoLocated;\n return false;\n }\n /**\n * Get the resolution of the image\n *\n * @returns [x,y,z] pixel scale\n */\n get resolution() {\n const modelPixelScale = this.value(TiffTag.ModelPixelScale);\n if (modelPixelScale != null) {\n return [modelPixelScale[0], -modelPixelScale[1], modelPixelScale[2]];\n }\n const modelTransformation = this.value(TiffTag.ModelTransformation);\n if (modelTransformation != null) {\n return [modelTransformation[0], modelTransformation[5], modelTransformation[10]];\n }\n // If this is a sub image, use the resolution from the top level image\n if (this.isSubImage && this.id !== 0) {\n const firstImg = this.tiff.images[0];\n const [resX, resY, resZ] = firstImg.resolution;\n const firstImgSize = firstImg.size;\n const imgSize = this.size;\n // scale resolution based on the size difference between the two images\n return [(resX * firstImgSize.width) / imgSize.width, (resY * firstImgSize.height) / imgSize.height, resZ];\n }\n throw new Error('Image does not have a geo transformation.');\n }\n /**\n * Is this image a reduced size image\n * @see {@link TiffTag.SubFileType}\n * @returns true if SubFileType is Reduces image, false otherwise\n */\n get isSubImage() {\n return this.value(TiffTag.SubFileType) === SubFileType.ReducedImage;\n }\n /**\n * Bounding box of the image\n *\n * @returns [minX, minY, maxX, maxY] bounding box\n */\n get bbox() {\n const size = this.size;\n const origin = this.origin;\n const resolution = this.resolution;\n if (origin == null || size == null || resolution == null) {\n throw new Error('Unable to calculate bounding box');\n }\n const x1 = origin[0];\n const y1 = origin[1];\n const x2 = x1 + resolution[0] * size.width;\n const y2 = y1 + resolution[1] * size.height;\n return [Math.min(x1, x2), Math.min(y1, y2), Math.max(x1, x2), Math.max(y1, y2)];\n }\n /**\n * Get the compression used by the tile\n *\n * @see {@link TiffCompressionMimeType}\n *\n * @returns Compression type eg webp\n */\n get compression() {\n const compression = this.value(TiffTag.Compression);\n if (compression == null)\n return null;\n return TiffCompressionMimeType[compression];\n }\n /**\n * Attempt to read the EPSG Code from TiffGeoTags\n *\n * looks at TiffTagGeo.ProjectionGeoKey, TiffTagGeo.ProjectedCRSGeoKey and TiffTagGeo.GeodeticCRSGeoKey\n *\n * @returns EPSG Code if it exists and is not user defined.\n */\n get epsg() {\n const proj = this.valueGeo(TiffTagGeo.ProjectionGeoKey);\n if (proj != null && proj !== InvalidProjectionCode)\n return proj;\n let projection = null;\n switch (this.valueGeo(TiffTagGeo.GTModelTypeGeoKey)) {\n case ModelTypeCode.Unknown:\n return null;\n case ModelTypeCode.Projected:\n projection = this.valueGeo(TiffTagGeo.ProjectedCRSGeoKey);\n break;\n case ModelTypeCode.Geographic:\n projection = this.valueGeo(TiffTagGeo.GeodeticCRSGeoKey);\n break;\n case ModelTypeCode.Geocentric:\n projection = this.valueGeo(TiffTagGeo.GeodeticCRSGeoKey);\n break;\n case ModelTypeCode.UserDefined:\n return null;\n }\n if (projection === InvalidProjectionCode)\n return null;\n return projection;\n }\n /**\n * Get the size of the image\n *\n * @returns Size in pixels\n */\n get size() {\n const width = this.value(TiffTag.ImageWidth);\n const height = this.value(TiffTag.ImageHeight);\n if (width == null || height == null)\n throw new Error('Tiff has no height or width');\n return { width, height };\n }\n /**\n * Determine if this image is tiled\n */\n isTiled() {\n return this.value(TiffTag.TileWidth) !== null;\n }\n /**\n * Get size of individual tiles\n */\n get tileSize() {\n const width = this.value(TiffTag.TileWidth);\n const height = this.value(TiffTag.TileHeight);\n if (width == null || height == null)\n throw new Error('Tiff is not tiled');\n return { width, height };\n }\n /**\n * Number of tiles used to create this image\n */\n get tileCount() {\n const size = this.size;\n const tileSize = this.tileSize;\n const x = Math.ceil(size.width / tileSize.width);\n const y = Math.ceil(size.height / tileSize.height);\n return { x, y };\n }\n /**\n * Get the pointer to where the tiles start in the Tiff file\n *\n * @remarks Used to read tiled tiffs\n *\n * @returns file offset to where the tiffs are stored\n */\n get tileOffset() {\n const tileOffset = this.tags.get(TiffTag.TileOffsets);\n if (tileOffset == null)\n throw new Error('No tile offsets found');\n return tileOffset;\n }\n /**\n * Get the number of strip's inside this tiff\n *\n * @remarks Used to read striped tiffs\n *\n * @returns number of strips present\n */\n get stripCount() {\n return this.tags.get(TiffTag.StripByteCounts)?.count ?? 0;\n }\n // Clamp the bounds of the output image to the size of the image, as sometimes the edge tiles are not full tiles\n getTileBounds(x, y) {\n const { size, tileSize } = this;\n const top = y * tileSize.height;\n const left = x * tileSize.width;\n const width = left + tileSize.width >= size.width ? size.width - left : tileSize.width;\n const height = top + tileSize.height >= size.height ? size.height - top : tileSize.height;\n return { x: left, y: top, width, height };\n }\n /**\n * Read a strip into a ArrayBuffer\n *\n * Image has to be striped see {@link stripCount}\n *\n * @param index Strip index to read\n */\n async getStrip(index, options) {\n if (this.isTiled())\n throw new Error('Cannot read stripes, tiff is tiled: ' + index);\n const byteCounts = this.tags.get(TiffTag.StripByteCounts);\n const offsets = this.tags.get(TiffTag.StripOffsets);\n if (index >= byteCounts.count)\n throw new Error('Cannot read strip, index out of bounds');\n const [byteCount, offset] = await Promise.all([\n getOffset(this.tiff, offsets, index, options),\n getOffset(this.tiff, byteCounts, index, options),\n ]);\n return this.getBytes(byteCount, offset, options);\n }\n /** The jpeg header is stored in the IFD, read the JPEG header and adjust the byte array to include it */\n getJpegHeader(bytes) {\n // Both the JPEGTable and the Bytes with have the start of image and end of image markers\n // StartOfImage 0xffd8 EndOfImage 0xffd9\n const tables = this.value(TiffTag.JpegTables);\n if (tables == null)\n throw new Error('Unable to find Jpeg header');\n // Remove EndOfImage marker\n const tableData = tables.slice(0, tables.length - 2);\n const actualBytes = new Uint8Array(bytes.byteLength + tableData.length - 2);\n actualBytes.set(tableData, 0);\n actualBytes.set(new Uint8Array(bytes).slice(2), tableData.length);\n return actualBytes.buffer.slice(actualBytes.byteOffset, actualBytes.byteOffset + actualBytes.byteLength);\n }\n /** Read image bytes at the given offset */\n async getBytes(offset, byteCount, options) {\n if (byteCount === 0)\n return null;\n const bytes = await this.tiff.source.fetch(offset, byteCount, options);\n if (bytes.byteLength < byteCount) {\n throw new Error(`Failed to fetch bytes from offset:${offset} wanted:${byteCount} got:${bytes.byteLength}`);\n }\n let compression = this.value(TiffTag.Compression);\n if (compression == null)\n compression = Compression.None; // No compression found default ??\n const mimeType = getCompressionMimeType(compression) ?? TiffMimeType.None;\n if (compression === Compression.Jpeg)\n return { mimeType, bytes: this.getJpegHeader(bytes), compression };\n return { mimeType, bytes, compression };\n }\n /**\n * Load a tile into a ArrayBuffer\n *\n * if the tile compression is JPEG, This will also apply the JPEG compression tables to the resulting ArrayBuffer see {@link getJpegHeader}\n *\n * @param x Tile x offset\n * @param y Tile y offset\n */\n async getTile(x, y, options) {\n const size = this.size;\n const tiles = this.tileSize;\n if (tiles == null)\n throw new Error('Tiff is not tiled');\n // TODO support GhostOptionTileOrder\n const nyTiles = Math.ceil(size.height / tiles.height);\n const nxTiles = Math.ceil(size.width / tiles.width);\n if (x >= nxTiles || y >= nyTiles) {\n throw new Error(`Tile index is outside of range x:${x} >= ${nxTiles} or y:${y} >= ${nyTiles}`);\n }\n const idx = y * nxTiles + x;\n const totalTiles = nxTiles * nyTiles;\n if (idx >= totalTiles)\n throw new Error(`Tile index is outside of tile range: ${idx} >= ${totalTiles}`);\n const { offset, imageSize } = await this.getTileSize(idx, options);\n return this.getBytes(offset, imageSize, options);\n }\n /**\n * Does this tile exist in the tiff and does it actually have a value\n *\n * Sparse tiffs can have a lot of empty tiles, they set the tile size to `0 bytes` when the tile is empty\n * this checks the tile byte size to validate if it actually has any data.\n *\n * @param x Tile x offset\n * @param y Tile y offset\n *\n * @returns if the tile exists and has data\n */\n async hasTile(x, y, options) {\n const tiles = this.tileSize;\n const size = this.size;\n if (tiles == null)\n throw new Error('Tiff is not tiled');\n // TODO support GhostOptionTileOrder\n const nyTiles = Math.ceil(size.height / tiles.height);\n const nxTiles = Math.ceil(size.width / tiles.width);\n if (x >= nxTiles || y >= nyTiles)\n return false;\n const idx = y * nxTiles + x;\n const ret = await this.getTileSize(idx, options);\n return ret.offset > 0;\n }\n /**\n * Load the offset and byteCount of a tile\n *\n * if the tiff is sparse, offset and byteCount will be zero if the tile is empty\n *\n * @param index index in the tile array\n * @returns Offset and byteCount for the tile\n */\n async getTileSize(index, options) {\n // If both the tile offset and tile byte counts are loaded,\n // we can get the offset and byte count synchronously without needing to fetch any additional data\n const byteCounts = this.tags.get(TiffTag.TileByteCounts);\n const tileOffset = getOffsetSync(this.tiff, this.tileOffset, index);\n const tileSize = getOffsetSync(this.tiff, byteCounts, index);\n if (tileOffset != null && tileSize != null)\n return { offset: tileOffset, imageSize: tileSize };\n // GDAL optimizes tiles by storing the size of the tile in\n // the few bytes leading up to the tile\n const leaderBytes = this.tiff.options?.tileLeaderByteSize;\n if (leaderBytes) {\n const offset = tileOffset ?? (await getOffset(this.tiff, this.tileOffset, index, options));\n // Sparse tiff no data found\n if (offset === 0)\n return { offset: 0, imageSize: 0 };\n // This fetch will generally load in the bytes needed for the image too\n // provided the image size is less than the size of a chunk\n const bytes = await this.tiff.source.fetch(offset - leaderBytes, leaderBytes, options);\n return { offset, imageSize: getUint(new DataView(bytes), 0, leaderBytes, this.tiff.isLittleEndian) };\n }\n if (byteCounts == null)\n throw new Error('No tile byte counts found');\n const [offset, imageSize] = await Promise.all([\n tileOffset ?? getOffset(this.tiff, this.tileOffset, index, options),\n tileSize ?? getOffset(this.tiff, byteCounts, index, options),\n ]);\n return { offset, imageSize };\n }\n}\nfunction getOffset(tiff, x, index, options) {\n const val = getOffsetSync(tiff, x, index);\n if (val != null)\n return Promise.resolve(val);\n return getValueAt(tiff, x, index, options);\n}\nfunction getOffsetSync(tiff, x, index) {\n if (index < 0) {\n throw new Error(`Tiff: ${tiff.source.url.href} out of bounds ${TiffTag[x.id]} index:${index} total:${x.count}`);\n }\n // Sparse tiffs may not have the full tileWidth * tileHeight in their offset arrays\n if (index >= x.count)\n return 0;\n if (x.type === 'inline')\n return x.value[index];\n if (x.isLoaded)\n return x.value[index];\n return getValueAtSync(tiff, x, index);\n}\n","import { ByteSize } from '../util/bytes.js';\nexport var GhostOption;\n(function (GhostOption) {\n GhostOption[\"GdalStructuralMetadataSize\"] = \"GDAL_STRUCTURAL_METADATA_SIZE\";\n GhostOption[\"Layout\"] = \"LAYOUT\";\n GhostOption[\"BlockOrder\"] = \"BLOCK_ORDER\";\n GhostOption[\"BlockLeader\"] = \"BLOCK_LEADER\";\n GhostOption[\"BlockTrailer\"] = \"BLOCK_TRAILER\";\n GhostOption[\"KnownIncompatibleEdition\"] = \"KNOWN_INCOMPATIBLE_EDITION\";\n GhostOption[\"MaskInterleavedWithImagery\"] = \"MASK_INTERLEAVED_WITH_IMAGERY\";\n})(GhostOption || (GhostOption = {}));\nexport var GhostOptionTileOrder;\n(function (GhostOptionTileOrder) {\n GhostOptionTileOrder[\"RowMajor\"] = \"ROW_MAJOR\";\n})(GhostOptionTileOrder || (GhostOptionTileOrder = {}));\nexport var GhostOptionTileLeader;\n(function (GhostOptionTileLeader) {\n GhostOptionTileLeader[\"uint32\"] = \"SIZE_AS_UINT4\";\n})(GhostOptionTileLeader || (GhostOptionTileLeader = {}));\n/**\n * GDAL has made a ghost set of options for Tiff files\n * this class represents the optimizations that GDAL has applied\n */\nexport class TiffGhostOptions {\n options = new Map();\n /**\n * Has GDAL optimized this tiff\n */\n get isCogOptimized() {\n if (this.isBroken)\n return false;\n return this.options.get(GhostOption.Layout) === 'IFDS_BEFORE_DATA';\n }\n /**\n * Has GDAL determined this tiff is now broken\n */\n get isBroken() {\n return this.options.get(GhostOption.KnownIncompatibleEdition) === 'YES';\n }\n /**\n * Load the ghost options from a source\n * @param bytes the ghost header bytes\n */\n process(bytes, offset, ghostSize) {\n let key = '';\n let value = '';\n let setValue = false;\n for (let i = 0; i < ghostSize; i++) {\n const charCode = bytes.getUint8(offset + i);\n if (charCode === 0)\n break;\n const char = String.fromCharCode(charCode);\n if (char === '\\n') {\n this.options.set(key.trim(), value.trim());\n key = '';\n value = '';\n setValue = false;\n }\n else if (char === '=') {\n setValue = true;\n }\n else {\n if (setValue)\n value += char;\n else\n key += char;\n }\n }\n }\n /**\n * If the tile leader is set, how many bytes are allocated to the tile size\n */\n get tileLeaderByteSize() {\n switch (this.options.get(GhostOption.BlockLeader)) {\n case GhostOptionTileLeader.uint32:\n return ByteSize.UInt32;\n default:\n return null;\n }\n }\n get isMaskInterleaved() {\n return this.options.get(GhostOption.MaskInterleavedWithImagery) === 'YES';\n }\n}\n","import { TiffVersion } from '../const/tiff.version.js';\nimport { ByteSize } from '../util/bytes.js';\nexport const TagTiffConfig = {\n version: TiffVersion.Tiff,\n pointer: ByteSize.UInt32,\n offset: ByteSize.UInt16,\n /**\n * Each tag entry is specified as\n * UInt16:TagCode\n * UInt16:TagType\n * UInt32:TagCount\n * UInt32:Pointer To Value or value\n */\n ifd: ByteSize.UInt16 + ByteSize.UInt16 + 2 * ByteSize.UInt32,\n};\nexport const TagTiffBigConfig = {\n version: TiffVersion.BigTiff,\n /** Size of most pointers */\n pointer: ByteSize.UInt64,\n /** Size of offsets */\n offset: ByteSize.UInt64,\n /**\n * Each tag entry is specified as\n * UInt16:TagCode\n * UInt16:TagType\n * UInt64:TagCount\n * UInt64:Pointer To Value or value\n */\n ifd: ByteSize.UInt16 + ByteSize.UInt16 + 2 * ByteSize.UInt64,\n};\nexport const TiffIfdEntry = {\n [TiffVersion.BigTiff]: TagTiffBigConfig,\n [TiffVersion.Tiff]: TagTiffConfig,\n};\n","// TODO: in the future, have an API that returns an ImageBitmap directly from\n// the decoder, to avoid copying pixel data from GPU -> CPU memory\n// Then deck.gl could use the ImageBitmap directly as a texture source without\n// copying again from CPU -> GPU memory\n// https://github.com/developmentseed/deck.gl-raster/issues/228\nexport async function decode(bytes, metadata) {\n const blob = new Blob([bytes]);\n const imageBitmap = await createImageBitmap(blob);\n const canvas = new OffscreenCanvas(imageBitmap.width, imageBitmap.height);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n const { width, height } = canvas;\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = imageData.data;\n const samplesPerPixel = metadata.samplesPerPixel;\n if (samplesPerPixel === 4) {\n return { layout: \"pixel-interleaved\", data: rgba };\n }\n if (samplesPerPixel === 3) {\n const pixelCount = width * height;\n const rgb = new Uint8ClampedArray(pixelCount * 3);\n for (let i = 0, j = 0; i < rgb.length; i += 3, j += 4) {\n rgb[i] = rgba[j];\n rgb[i + 1] = rgba[j + 1];\n rgb[i + 2] = rgba[j + 2];\n }\n return { layout: \"pixel-interleaved\", data: rgb };\n }\n throw new Error(`Unsupported SamplesPerPixel for JPEG: ${samplesPerPixel}`);\n}\n//# sourceMappingURL=canvas.js.map","export function assert(expression, msg = \"\") {\n if (!expression) {\n throw new Error(msg);\n }\n}\nexport async function decompressWithDecompressionStream(data, { format, signal }) {\n const response = data instanceof Response ? data : new Response(data);\n assert(response.body, \"Response does not contain body.\");\n try {\n const decompressedResponse = new Response(response.body.pipeThrough(new DecompressionStream(format), { signal }));\n const buffer = await decompressedResponse.arrayBuffer();\n return buffer;\n }\n catch {\n signal?.throwIfAborted();\n throw new Error(`Failed to decode ${format}`);\n }\n}\n//# sourceMappingURL=decompression-stream.js.map","import { decompressWithDecompressionStream } from \"./decompression-stream.js\";\nexport async function decode(bytes) {\n return decompressWithDecompressionStream(bytes, { format: \"deflate\" });\n}\n//# sourceMappingURL=deflate.js.map","import { PlanarConfiguration, Predictor } from \"@cogeotiff/core\";\n/**\n * Undo TIFF horizontal differencing (predictor 2) or floating-point\n * prediction (predictor 3) in-place on a decoded tile buffer.\n *\n * Mirrors the applyPredictor logic in geotiff.js.\n */\n/** Undo horizontal differencing for integer samples (predictor 2). */\nfunction decodeRowAcc(row, stride) {\n const r = row;\n let offset = 0;\n let length = row.length - stride;\n do {\n for (let i = stride; i > 0; i--) {\n r[offset + stride] = (r[offset + stride] ?? 0) + (r[offset] ?? 0);\n offset++;\n }\n length -= stride;\n } while (length > 0);\n}\n/** Undo floating-point horizontal differencing (predictor 3). */\nfunction decodeRowFloatingPoint(row, stride, bytesPerSample) {\n let index = 0;\n let count = row.length;\n const wc = count / bytesPerSample;\n while (count > stride) {\n for (let i = stride; i > 0; i--) {\n row[index + stride] += row[index];\n index++;\n }\n count -= stride;\n }\n const copy = row.slice();\n for (let i = 0; i < wc; i++) {\n for (let b = 0; b < bytesPerSample; b++) {\n row[bytesPerSample * i + b] = copy[(bytesPerSample - b - 1) * wc + i];\n }\n }\n}\n/**\n * Apply TIFF predictor decoding to a raw decoded tile buffer in-place.\n *\n * @param block Decoded tile bytes.\n * @param predictor Predictor enum value.\n * @param width Tile width in pixels.\n * @param height Tile height in pixels.\n * @param bitsPerSample Bits per sample (all samples must be equal).\n * @param samplesPerPixel Number of bands.\n * @param planarConfiguration PlanarConfiguration enum value.\n */\nexport function applyPredictor(block, predictor, width, height, bitsPerSample, samplesPerPixel, planarConfiguration) {\n if (predictor === Predictor.None) {\n return block;\n }\n const bytesPerSample = bitsPerSample / 8;\n const stride = planarConfiguration === PlanarConfiguration.Separate ? 1 : samplesPerPixel;\n for (let i = 0; i < height; i++) {\n const byteOffset = i * stride * width * bytesPerSample;\n if (byteOffset >= block.byteLength) {\n break;\n }\n if (predictor === Predictor.Horizontal) {\n let row;\n const length = stride * width;\n switch (bitsPerSample) {\n case 8:\n row = new Uint8Array(block, byteOffset, length);\n break;\n case 16:\n row = new Uint16Array(block, byteOffset, length);\n break;\n case 32:\n row = new Uint32Array(block, byteOffset, length);\n break;\n default:\n throw new Error(`Predictor 2 not supported for ${bitsPerSample} bits per sample.`);\n }\n decodeRowAcc(row, stride);\n }\n else if (predictor === Predictor.FloatingPoint) {\n const row = new Uint8Array(block, byteOffset, stride * width * bytesPerSample);\n decodeRowFloatingPoint(row, stride, bytesPerSample);\n }\n }\n return block;\n}\n//# sourceMappingURL=predictor.js.map","import { Compression, SampleFormat } from \"@cogeotiff/core\";\nimport { decode as decodeViaCanvas } from \"./codecs/canvas.js\";\nimport { decode as decodeDeflate } from \"./codecs/deflate.js\";\nimport { applyPredictor } from \"./codecs/predictor.js\";\nasync function decodeUncompressed(bytes) {\n return bytes;\n}\n/**\n * The global registry of decoders for each compression type.\n *\n * This maps a {@link Compression} value to a function that returns a promise of\n * a {@link Decoder}.\n */\nexport const DECODER_REGISTRY = new Map();\nDECODER_REGISTRY.set(Compression.None, () => Promise.resolve(decodeUncompressed));\nDECODER_REGISTRY.set(Compression.Deflate, () => Promise.resolve(decodeDeflate));\nDECODER_REGISTRY.set(Compression.DeflateOther, () => Promise.resolve(decodeDeflate));\nDECODER_REGISTRY.set(Compression.Lzw, () => import(\"./codecs/lzw.js\").then((m) => m.decode));\nDECODER_REGISTRY.set(Compression.Zstd, () => import(\"./codecs/zstd.js\").then((m) => m.decode));\n// DECODER_REGISTRY.set(Compression.Lzma, () =>\n// import(\"../codecs/lzma.js\").then((m) => m.decode),\n// );\n// DECODER_REGISTRY.set(Compression.Jp2000, () =>\n// import(\"../codecs/jp2000.js\").then((m) => m.decode),\n// );\nDECODER_REGISTRY.set(Compression.Jpeg, () => Promise.resolve(decodeViaCanvas));\nDECODER_REGISTRY.set(Compression.Jpeg6, () => Promise.resolve(decodeViaCanvas));\nDECODER_REGISTRY.set(Compression.Webp, () => Promise.resolve(decodeViaCanvas));\nDECODER_REGISTRY.set(Compression.Lerc, () => import(\"./codecs/lerc.js\").then((m) => m.decode));\n/**\n * Decode a tile's bytes according to its compression and image metadata.\n */\nexport async function decode(bytes, compression, metadata) {\n const loader = DECODER_REGISTRY.get(compression);\n if (!loader) {\n throw new Error(`Unsupported compression: ${compression}`);\n }\n const decoder = await loader();\n const result = await decoder(bytes, metadata);\n if (result instanceof ArrayBuffer) {\n const { predictor, width, height, bitsPerSample, samplesPerPixel, planarConfiguration, } = metadata;\n const predicted = applyPredictor(result, predictor, width, height, bitsPerSample, samplesPerPixel, planarConfiguration);\n return {\n layout: \"pixel-interleaved\",\n data: toTypedArray(predicted, metadata),\n };\n }\n return result;\n}\n/**\n * Unpack a 1-bit packed mask buffer (MSB-first) into a Uint8Array of 0/255.\n * Each input byte holds 8 pixels; bit 7 is the first pixel in that byte.\n */\n// TODO: check for FillOrder tag and reverse bit order if needed\n// https://web.archive.org/web/20240329145342/https://www.awaresystems.be/imaging/tiff/tifftags/fillorder.html\nexport function unpackBitPacked(buffer, pixelCount) {\n const packed = new Uint8Array(buffer);\n const out = new Uint8Array(pixelCount);\n for (let i = 0; i < pixelCount; i++) {\n out[i] = (packed[i >> 3] >> (7 - (i & 7))) & 1 ? 255 : 0;\n }\n return out;\n}\n/**\n * Convert a raw ArrayBuffer of pixel data into a typed array based on the\n * sample format and bits per sample. This is used for codecs that return raw\n * bytes.\n */\nfunction toTypedArray(buffer, metadata) {\n const { sampleFormat, bitsPerSample } = metadata;\n switch (sampleFormat) {\n case SampleFormat.Uint:\n switch (bitsPerSample) {\n case 1:\n return unpackBitPacked(buffer, metadata.width * metadata.height * metadata.samplesPerPixel);\n case 8:\n return new Uint8Array(buffer);\n case 16:\n return new Uint16Array(buffer);\n case 32:\n return new Uint32Array(buffer);\n }\n break;\n case SampleFormat.Int:\n switch (bitsPerSample) {\n case 8:\n return new Int8Array(buffer);\n case 16:\n return new Int16Array(buffer);\n case 32:\n return new Int32Array(buffer);\n }\n break;\n case SampleFormat.Float:\n switch (bitsPerSample) {\n case 32:\n return new Float32Array(buffer);\n case 64:\n return new Float64Array(buffer);\n }\n break;\n }\n throw new Error(`Unsupported sample format/depth: SampleFormat=${sampleFormat}, BitsPerSample=${bitsPerSample}`);\n}\n//# sourceMappingURL=decode.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { r as Compression, t as DECODER_REGISTRY } from "./decode-BvR5vy7g.js";
|
|
2
|
+
//#region node_modules/@developmentseed/geotiff/dist/codecs/lerc.js
|
|
3
|
+
/** Inner compression type encoded in LercParameters[1]. */
|
|
4
|
+
var LercCompression;
|
|
5
|
+
(function(LercCompression) {
|
|
6
|
+
LercCompression[LercCompression["None"] = 0] = "None";
|
|
7
|
+
LercCompression[LercCompression["Deflate"] = 1] = "Deflate";
|
|
8
|
+
LercCompression[LercCompression["Zstd"] = 2] = "Zstd";
|
|
9
|
+
})(LercCompression || (LercCompression = {}));
|
|
10
|
+
let wasmInitialized = false;
|
|
11
|
+
async function getLerc() {
|
|
12
|
+
const lerc = await import("./LercDecode.es-Bvg6-wb5.js");
|
|
13
|
+
if (!wasmInitialized) {
|
|
14
|
+
await lerc.load();
|
|
15
|
+
wasmInitialized = true;
|
|
16
|
+
}
|
|
17
|
+
return lerc;
|
|
18
|
+
}
|
|
19
|
+
async function decode(bytes, metadata) {
|
|
20
|
+
const lercCompressionType = metadata.lercParameters?.[1] ?? LercCompression.None;
|
|
21
|
+
let lercInput = bytes;
|
|
22
|
+
if (lercCompressionType === LercCompression.Deflate || lercCompressionType === LercCompression.Zstd) {
|
|
23
|
+
const innerCompression = lercCompressionType === LercCompression.Deflate ? Compression.Deflate : Compression.Zstd;
|
|
24
|
+
lercInput = await (await DECODER_REGISTRY.get(innerCompression)())(bytes, metadata);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
layout: "band-separate",
|
|
28
|
+
bands: (await getLerc()).decode(lercInput).pixels
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { decode };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=lerc-By2TvjAX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lerc-By2TvjAX.js","names":[],"sources":["../../node_modules/@developmentseed/geotiff/dist/codecs/lerc.js"],"sourcesContent":["import { Compression } from \"@cogeotiff/core\";\nimport { DECODER_REGISTRY } from \"../decode.js\";\n/** Inner compression type encoded in LercParameters[1]. */\nvar LercCompression;\n(function (LercCompression) {\n LercCompression[LercCompression[\"None\"] = 0] = \"None\";\n LercCompression[LercCompression[\"Deflate\"] = 1] = \"Deflate\";\n LercCompression[LercCompression[\"Zstd\"] = 2] = \"Zstd\";\n})(LercCompression || (LercCompression = {}));\nlet wasmInitialized = false;\nasync function getLerc() {\n // This import is cached by the module loader\n const lerc = await import(\"lerc\");\n if (!wasmInitialized) {\n await lerc.load();\n wasmInitialized = true;\n }\n return lerc;\n}\nexport async function decode(bytes, metadata) {\n const lercCompressionType = metadata.lercParameters?.[1] ??\n LercCompression.None;\n let lercInput = bytes;\n if (lercCompressionType === LercCompression.Deflate ||\n lercCompressionType === LercCompression.Zstd) {\n const innerCompression = lercCompressionType === LercCompression.Deflate\n ? Compression.Deflate\n : Compression.Zstd;\n const decoderEntry = DECODER_REGISTRY.get(innerCompression);\n const decoder = await decoderEntry();\n lercInput = (await decoder(bytes, metadata));\n }\n const lerc = await getLerc();\n const result = lerc.decode(lercInput);\n return { layout: \"band-separate\", bands: result.pixels };\n}\n//# sourceMappingURL=lerc.js.map"],"x_google_ignoreList":[0],"mappings":";;;AAGA,IAAI;CACH,SAAU,iBAAiB;CACxB,gBAAgB,gBAAgB,UAAU,KAAK;CAC/C,gBAAgB,gBAAgB,aAAa,KAAK;CAClD,gBAAgB,gBAAgB,UAAU,KAAK;AACnD,GAAG,oBAAoB,kBAAkB,CAAC,EAAE;AAC5C,IAAI,kBAAkB;AACtB,eAAe,UAAU;CAErB,MAAM,OAAO,MAAM,OAAO;CAC1B,IAAI,CAAC,iBAAiB;EAClB,MAAM,KAAK,KAAK;EAChB,kBAAkB;CACtB;CACA,OAAO;AACX;AACA,eAAsB,OAAO,OAAO,UAAU;CAC1C,MAAM,sBAAsB,SAAS,iBAAiB,MAClD,gBAAgB;CACpB,IAAI,YAAY;CAChB,IAAI,wBAAwB,gBAAgB,WACxC,wBAAwB,gBAAgB,MAAM;EAC9C,MAAM,mBAAmB,wBAAwB,gBAAgB,UAC3D,YAAY,UACZ,YAAY;EAGlB,YAAa,OAAM,MAFE,iBAAiB,IAAI,gBACT,EAAE,GACR,OAAO,QAAQ;CAC9C;CAGA,OAAO;EAAE,QAAQ;EAAiB,QADnB,MADI,QAAQ,GACP,OAAO,SACmB,EAAE;CAAO;AAC3D"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
//#region node_modules/@developmentseed/lzw-tiff-decoder/index.mjs
|
|
2
|
+
function A(A, I) {
|
|
3
|
+
try {
|
|
4
|
+
const w = C.__wbindgen_add_to_stack_pointer(-16), y = function(A, I) {
|
|
5
|
+
const B = I(1 * A.length, 1) >>> 0;
|
|
6
|
+
return Q().set(A, B / 1), E = A.length, B;
|
|
7
|
+
}(A, C.__wbindgen_export), G = E;
|
|
8
|
+
C.decompress(w, y, G, I);
|
|
9
|
+
var g = B().getInt32(w + 0, !0), i = B().getInt32(w + 4, !0), o = (D = g, s = i, D >>>= 0, Q().subarray(D / 1, D / 1 + s)).slice();
|
|
10
|
+
return C.__wbindgen_export2(g, 1 * i, 1), o;
|
|
11
|
+
} finally {
|
|
12
|
+
C.__wbindgen_add_to_stack_pointer(16);
|
|
13
|
+
}
|
|
14
|
+
var D, s;
|
|
15
|
+
}
|
|
16
|
+
let I = null;
|
|
17
|
+
function B() {
|
|
18
|
+
return (null === I || !0 === I.buffer.detached || void 0 === I.buffer.detached && I.buffer !== C.memory.buffer) && (I = new DataView(C.memory.buffer)), I;
|
|
19
|
+
}
|
|
20
|
+
let g = null;
|
|
21
|
+
function Q() {
|
|
22
|
+
return null !== g && 0 !== g.byteLength || (g = new Uint8Array(C.memory.buffer)), g;
|
|
23
|
+
}
|
|
24
|
+
let C, E = 0;
|
|
25
|
+
const i = [
|
|
26
|
+
62,
|
|
27
|
+
0,
|
|
28
|
+
0,
|
|
29
|
+
0,
|
|
30
|
+
63,
|
|
31
|
+
52,
|
|
32
|
+
53,
|
|
33
|
+
54,
|
|
34
|
+
55,
|
|
35
|
+
56,
|
|
36
|
+
57,
|
|
37
|
+
58,
|
|
38
|
+
59,
|
|
39
|
+
60,
|
|
40
|
+
61,
|
|
41
|
+
0,
|
|
42
|
+
0,
|
|
43
|
+
0,
|
|
44
|
+
0,
|
|
45
|
+
0,
|
|
46
|
+
0,
|
|
47
|
+
0,
|
|
48
|
+
0,
|
|
49
|
+
1,
|
|
50
|
+
2,
|
|
51
|
+
3,
|
|
52
|
+
4,
|
|
53
|
+
5,
|
|
54
|
+
6,
|
|
55
|
+
7,
|
|
56
|
+
8,
|
|
57
|
+
9,
|
|
58
|
+
10,
|
|
59
|
+
11,
|
|
60
|
+
12,
|
|
61
|
+
13,
|
|
62
|
+
14,
|
|
63
|
+
15,
|
|
64
|
+
16,
|
|
65
|
+
17,
|
|
66
|
+
18,
|
|
67
|
+
19,
|
|
68
|
+
20,
|
|
69
|
+
21,
|
|
70
|
+
22,
|
|
71
|
+
23,
|
|
72
|
+
24,
|
|
73
|
+
25,
|
|
74
|
+
0,
|
|
75
|
+
0,
|
|
76
|
+
0,
|
|
77
|
+
0,
|
|
78
|
+
0,
|
|
79
|
+
0,
|
|
80
|
+
26,
|
|
81
|
+
27,
|
|
82
|
+
28,
|
|
83
|
+
29,
|
|
84
|
+
30,
|
|
85
|
+
31,
|
|
86
|
+
32,
|
|
87
|
+
33,
|
|
88
|
+
34,
|
|
89
|
+
35,
|
|
90
|
+
36,
|
|
91
|
+
37,
|
|
92
|
+
38,
|
|
93
|
+
39,
|
|
94
|
+
40,
|
|
95
|
+
41,
|
|
96
|
+
42,
|
|
97
|
+
43,
|
|
98
|
+
44,
|
|
99
|
+
45,
|
|
100
|
+
46,
|
|
101
|
+
47,
|
|
102
|
+
48,
|
|
103
|
+
49,
|
|
104
|
+
50,
|
|
105
|
+
51
|
|
106
|
+
];
|
|
107
|
+
function o(A) {
|
|
108
|
+
return i[A - 43];
|
|
109
|
+
}
|
|
110
|
+
var D = function(A) {
|
|
111
|
+
let I, B = A.endsWith("==") ? 2 : A.endsWith("=") ? 1 : 0, g = A.length, Q = new Uint8Array(g / 4 * 3);
|
|
112
|
+
for (let B = 0, C = 0; B < g; B += 4, C += 3) I = o(A.charCodeAt(B)) << 18 | o(A.charCodeAt(B + 1)) << 12 | o(A.charCodeAt(B + 2)) << 6 | o(A.charCodeAt(B + 3)), Q[C] = I >> 16, Q[C + 1] = I >> 8 & 255, Q[C + 2] = 255 & I;
|
|
113
|
+
return Q.subarray(0, Q.length - B);
|
|
114
|
+
}("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AAAgAkUNAQNAQayJwAAtAAANAEGsicAAQayJwAAtAAAiAkEBIAIbOgAAIAINAAsMAQsgBCADQQEgAhAMIgUNAUEBEBcACyAEIAMQBkGsicAAQQA6AAAgASgCCCECCyABIAU2AgQLIAAgAjYCBCAAIAEoAgQ2AgALqQEBAX8jAEEQayIDJAACfyAARQRAQQAhACADQQxqDAELIANBAjYCDCAAIAJsIQAgA0EIagsgADYCAAJAIAMoAgxFDQAgAygCCCICRQ0AQayJwABBrInAAC0AACIAQQEgABs6AAAgAARAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACIAQQEgABs6AAAgAA0ACwsgASACEAZBrInAAEEAOgAACyADQRBqJAALewECfyACQf//A3EiBSABSQRAIAAgBUECdGotAAMgBARAIANBAWshAyACIQEDQCADIARqIAAgAUH//wNxQQJ0aiIBLQACOgAAIAEvAQAiASACQf//A3EiBiABIAZJGyEBIARBAWsiBA0ACwsPC0EAIAUgAUG8hsAAEBQAC4MBAQJ/IABBADYCCAJAIAEoAhQiBCACQf//A3EiA0sEQCAAKAIEIgQgASgCECADQQF0ai8BACIDSQ0BIAEoAgQgASgCCCACIAAoAgAiASADEAogACADNgIMIAAgBDYCBCAAIAE2AgAPCyADIARBnIfAABAOAAtBACADIARBrIfAABAUAAt8ACACIAMQAyICBEAgAyABIAEgA0sbIgMEQCACIAAgA/wKAAALQayJwABBrInAAC0AACIDQQEgAxs6AAAgAwRAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACIDQQEgAxs6AAAgAw0ACwsgACABEAZBrInAAEEAOgAACyACC3sBAn8jAEEQayIDJABBxInAAEHEicAAKAIAIgRBAWo2AgACQCAEQQBIDQACQEHAicAALQAARQRAQbyJwABBvInAACgCAEEBajYCAEHIicAAKAIAQQBODQEMAgsgA0EIaiAAIAERAAAAC0HAicAAQQA6AAAgAkUNAAALAAtOAgF/AX4jAEEgayIDJAAgAyABNgIMIAMgADYCCCADQoCAgIAQIgQgA0EIaq2ENwMYIAMgBCADQQxqrYQ3AxBBqIDAACADQRBqIAIQFQALWwAgAQRAQayJwABBrInAAC0AACICQQEgAhs6AAAgAgRAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACICQQEgAhs6AAAgAg0ACwsgACABEAZBrInAAEEAOgAACwtHAQN/IAEoAgwiAiABKAIIIgNPIAIgASgCBCIETXFFBEAgAyACIARBvIfAABAUAAsgACACIANrNgIEIAAgASgCACADajYCAAtFAQJ/IwBBEGsiASQAIAFBCGogACAAKAIAQQFBAkEEEAcgASgCCCIAQYGAgIB4RwRAIAEoAgwhAiAAEBcACyABQRBqJAALRQECfyMAQRBrIgEkACABQQhqIAAgACgCAEEBQQJBAhAHIAEoAggiAEGBgICAeEcEQCABKAIMIQIgABAXAAsgAUEQaiQAC0IBAn8jAEEQayIFJAAgBUEIaiAAIAEgAiADIAQQByAFKAIIIgBBgYCAgHhHBEAgBSgCDCEGIAAQFwALIAVBEGokAAv4AQACQCAAIAJNBEAgACABTSABIAJLcg0BIwBBIGsiAiQAIAIgATYCDCACIAA2AgggAiACQQxqrUKAgICAEIQ3AxggAiACQQhqrUKAgICAEIQ3AxBBgIDAACACQRBqIAMQFQALIwBBIGsiASQAIAEgAjYCDCABIAA2AgggASABQQxqrUKAgICAEIQ3AxggASABQQhqrUKAgICAEIQ3AxBB34DAACABQRBqIAMQFQALIwBBIGsiACQAIAAgAjYCDCAAIAE2AgggACAAQQxqrUKAgICAEIQ3AxggACAAQQhqrUKAgICAEIQ3AxBBmIHAACAAQRBqIAMQFQAL2QECAX8BfiMAQSBrIgMkACADIAE2AhAgAyAANgIMIANBATsBHCADIAI2AhggAyADQQxqNgIUIwBBEGsiASQAIANBFGoiACkCACEEIAEgADYCDCABIAQ3AgQjAEEQayIAJAAgAUEEaiIBKAIAIgIoAgQiA0EBcUUEQCAAQYCAgIB4NgIAIAAgATYCDCABKAIIIgEtAAghAiABLQAJGiAAQQMgAhANAAsgAigCACECIAAgA0EBdjYCBCAAIAI2AgAgASgCCCIBLQAIIQIgAS0ACRogAEEEIAIQDQALLgACQCABaUEBRyAAQYCAgIB4IAFrS3INACAABEAgASAAEAMiAUUNAQsgAQ8LAAsZACAABEAQGQALQfyDwABBI0GQhMAAEBUACwsAIAAjAGokACMACw0AQbiJwABBAToAAAALDAAgACABKQIANwMACwkAIABBADYCAAsLwAkCAEGAgMAAC6kJFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAC9Vc2Vycy9reWxlLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMDgvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMva3lsZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dlZXpsLTAuMS4xMi9zcmMvZGVjb2RlLnJzAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAHNyYy9saWIucnMAAADPARAACgAAACoAAAAYAAAAzwEQAAoAAAArAAAAHgAAAGNhcGFjaXR5IG92ZXJmbG93AAAArgEQACAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5zwAQABsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZOsAEABmAAAAfwAAABEAAADrABAAZgAAAIwAAAARAAAAbWlkID4gbGVuAAAAUgEQAFsAAADRBQAAIAAAAFIBEABbAAAAvwUAACQAAABSARAAWwAAAKcFAAAUAAAAUgEQAFsAAAC0BQAAIAAAAFIBEABbAAAAawUAACcAAABSARAAWwAAAGsFAAAJAAAAUgEQAFsAAAB1BQAAIQAAAFIBEABbAAAAeAUAAB4AAABSARAAWwAAAIEFAAAUAAAAUgEQAFsAAADABAAAFwAAAFIBEABbAAAAugQAABcAAABSARAAWwAAAKoDAAAgAAAAUgEQAFsAAACvAwAAMAAAAFIBEABbAAAAxgMAADAAAABSARAAWwAAANUDAAAVAAAAUgEQAFsAAADeAwAALwAAAFIBEABbAAAACQQAACYAAABSARAAWwAAAAcEAAAmAAAAUgEQAFsAAAA1BAAANwAAAFIBEABbAAAAOwQAAB8AAABSARAAWwAAADwEAAAZAAAAUgEQAFsAAAAiBAAALgAAAFIBEABbAAAAagQAAB4AQbCJwAALBf////8EAEgJcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkCBndhbHJ1cwYwLjI0LjQMd2FzbS1iaW5kZ2VuEzAuMi4xMDggKGE3ODhmNThmOSk=");
|
|
115
|
+
function s(I, B) {
|
|
116
|
+
const g = A(I, B);
|
|
117
|
+
if (0 === g.length) throw Error("Failed to decode with LZW decoder.");
|
|
118
|
+
return g;
|
|
119
|
+
}
|
|
120
|
+
await async function(A) {
|
|
121
|
+
if (void 0 !== C) return C;
|
|
122
|
+
void 0 !== A && (Object.getPrototypeOf(A) === Object.prototype ? {module_or_path: A} = A : console.warn("using deprecated parameters for the initialization function; pass a single object instead"));
|
|
123
|
+
const B = {
|
|
124
|
+
__proto__: null,
|
|
125
|
+
"./index_bg.js": { __proto__: null }
|
|
126
|
+
};
|
|
127
|
+
("string" == typeof A || "function" == typeof Request && A instanceof Request || "function" == typeof URL && A instanceof URL) && (A = fetch(A));
|
|
128
|
+
const { instance: Q, module: E } = await async function(A, I) {
|
|
129
|
+
if ("function" == typeof Response && A instanceof Response) {
|
|
130
|
+
if ("function" == typeof WebAssembly.instantiateStreaming) try {
|
|
131
|
+
return await WebAssembly.instantiateStreaming(A, I);
|
|
132
|
+
} catch (I) {
|
|
133
|
+
if (!A.ok || !function(A) {
|
|
134
|
+
switch (A) {
|
|
135
|
+
case "basic":
|
|
136
|
+
case "cors":
|
|
137
|
+
case "default": return !0;
|
|
138
|
+
}
|
|
139
|
+
return !1;
|
|
140
|
+
}(A.type) || "application/wasm" === A.headers.get("Content-Type")) throw I;
|
|
141
|
+
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", I);
|
|
142
|
+
}
|
|
143
|
+
const B = await A.arrayBuffer();
|
|
144
|
+
return await WebAssembly.instantiate(B, I);
|
|
145
|
+
}
|
|
146
|
+
{
|
|
147
|
+
const B = await WebAssembly.instantiate(A, I);
|
|
148
|
+
return B instanceof WebAssembly.Instance ? {
|
|
149
|
+
instance: B,
|
|
150
|
+
module: A
|
|
151
|
+
} : B;
|
|
152
|
+
}
|
|
153
|
+
}(await A, B);
|
|
154
|
+
return function(A) {
|
|
155
|
+
return C = A.exports, I = null, g = null, C;
|
|
156
|
+
}(Q);
|
|
157
|
+
}({ module_or_path: D });
|
|
158
|
+
//#endregion
|
|
159
|
+
//#region node_modules/@developmentseed/geotiff/dist/codecs/lzw.js
|
|
160
|
+
async function decode(bytes, metadata) {
|
|
161
|
+
const { width, height, samplesPerPixel, bitsPerSample } = metadata;
|
|
162
|
+
const maxUncompressedSize = width * height * samplesPerPixel * (bitsPerSample / 8);
|
|
163
|
+
return copyIfViewNotFullBuffer(s(new Uint8Array(bytes), maxUncompressedSize));
|
|
164
|
+
}
|
|
165
|
+
function copyIfViewNotFullBuffer(view) {
|
|
166
|
+
if (view.byteOffset === 0 && view.byteLength === view.buffer.byteLength) return view.buffer;
|
|
167
|
+
const copy = new Uint8Array(view.byteLength);
|
|
168
|
+
copy.set(view);
|
|
169
|
+
return copy.buffer;
|
|
170
|
+
}
|
|
171
|
+
//#endregion
|
|
172
|
+
export { decode };
|
|
173
|
+
|
|
174
|
+
//# sourceMappingURL=lzw-CQJJDca2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lzw-CQJJDca2.js","names":["decompress"],"sources":["../../node_modules/@developmentseed/lzw-tiff-decoder/index.mjs","../../node_modules/@developmentseed/geotiff/dist/codecs/lzw.js"],"sourcesContent":["function A(A,I){try{const w=C.__wbindgen_add_to_stack_pointer(-16),y=function(A,I){const B=I(1*A.length,1)>>>0;return Q().set(A,B/1),E=A.length,B}(A,C.__wbindgen_export),G=E;C.decompress(w,y,G,I);var g=B().getInt32(w+0,!0),i=B().getInt32(w+4,!0),o=(D=g,s=i,D>>>=0,Q().subarray(D/1,D/1+s)).slice();return C.__wbindgen_export2(g,1*i,1),o}finally{C.__wbindgen_add_to_stack_pointer(16)}var D,s}let I=null;function B(){return(null===I||!0===I.buffer.detached||void 0===I.buffer.detached&&I.buffer!==C.memory.buffer)&&(I=new DataView(C.memory.buffer)),I}let g=null;function Q(){return null!==g&&0!==g.byteLength||(g=new Uint8Array(C.memory.buffer)),g}let C,E=0;const i=[62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function o(A){return i[A-43]}var D=function(A){let I,B=A.endsWith(\"==\")?2:A.endsWith(\"=\")?1:0,g=A.length,Q=new Uint8Array(g/4*3);for(let B=0,C=0;B<g;B+=4,C+=3)I=o(A.charCodeAt(B))<<18|o(A.charCodeAt(B+1))<<12|o(A.charCodeAt(B+2))<<6|o(A.charCodeAt(B+3)),Q[C]=I>>16,Q[C+1]=I>>8&255,Q[C+2]=255&I;return Q.subarray(0,Q.length-B)}(\"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AAAgAkUNAQNAQayJwAAtAAANAEGsicAAQayJwAAtAAAiAkEBIAIbOgAAIAINAAsMAQsgBCADQQEgAhAMIgUNAUEBEBcACyAEIAMQBkGsicAAQQA6AAAgASgCCCECCyABIAU2AgQLIAAgAjYCBCAAIAEoAgQ2AgALqQEBAX8jAEEQayIDJAACfyAARQRAQQAhACADQQxqDAELIANBAjYCDCAAIAJsIQAgA0EIagsgADYCAAJAIAMoAgxFDQAgAygCCCICRQ0AQayJwABBrInAAC0AACIAQQEgABs6AAAgAARAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACIAQQEgABs6AAAgAA0ACwsgASACEAZBrInAAEEAOgAACyADQRBqJAALewECfyACQf//A3EiBSABSQRAIAAgBUECdGotAAMgBARAIANBAWshAyACIQEDQCADIARqIAAgAUH//wNxQQJ0aiIBLQACOgAAIAEvAQAiASACQf//A3EiBiABIAZJGyEBIARBAWsiBA0ACwsPC0EAIAUgAUG8hsAAEBQAC4MBAQJ/IABBADYCCAJAIAEoAhQiBCACQf//A3EiA0sEQCAAKAIEIgQgASgCECADQQF0ai8BACIDSQ0BIAEoAgQgASgCCCACIAAoAgAiASADEAogACADNgIMIAAgBDYCBCAAIAE2AgAPCyADIARBnIfAABAOAAtBACADIARBrIfAABAUAAt8ACACIAMQAyICBEAgAyABIAEgA0sbIgMEQCACIAAgA/wKAAALQayJwABBrInAAC0AACIDQQEgAxs6AAAgAwRAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACIDQQEgAxs6AAAgAw0ACwsgACABEAZBrInAAEEAOgAACyACC3sBAn8jAEEQayIDJABBxInAAEHEicAAKAIAIgRBAWo2AgACQCAEQQBIDQACQEHAicAALQAARQRAQbyJwABBvInAACgCAEEBajYCAEHIicAAKAIAQQBODQEMAgsgA0EIaiAAIAERAAAAC0HAicAAQQA6AAAgAkUNAAALAAtOAgF/AX4jAEEgayIDJAAgAyABNgIMIAMgADYCCCADQoCAgIAQIgQgA0EIaq2ENwMYIAMgBCADQQxqrYQ3AxBBqIDAACADQRBqIAIQFQALWwAgAQRAQayJwABBrInAAC0AACICQQEgAhs6AAAgAgRAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACICQQEgAhs6AAAgAg0ACwsgACABEAZBrInAAEEAOgAACwtHAQN/IAEoAgwiAiABKAIIIgNPIAIgASgCBCIETXFFBEAgAyACIARBvIfAABAUAAsgACACIANrNgIEIAAgASgCACADajYCAAtFAQJ/IwBBEGsiASQAIAFBCGogACAAKAIAQQFBAkEEEAcgASgCCCIAQYGAgIB4RwRAIAEoAgwhAiAAEBcACyABQRBqJAALRQECfyMAQRBrIgEkACABQQhqIAAgACgCAEEBQQJBAhAHIAEoAggiAEGBgICAeEcEQCABKAIMIQIgABAXAAsgAUEQaiQAC0IBAn8jAEEQayIFJAAgBUEIaiAAIAEgAiADIAQQByAFKAIIIgBBgYCAgHhHBEAgBSgCDCEGIAAQFwALIAVBEGokAAv4AQACQCAAIAJNBEAgACABTSABIAJLcg0BIwBBIGsiAiQAIAIgATYCDCACIAA2AgggAiACQQxqrUKAgICAEIQ3AxggAiACQQhqrUKAgICAEIQ3AxBBgIDAACACQRBqIAMQFQALIwBBIGsiASQAIAEgAjYCDCABIAA2AgggASABQQxqrUKAgICAEIQ3AxggASABQQhqrUKAgICAEIQ3AxBB34DAACABQRBqIAMQFQALIwBBIGsiACQAIAAgAjYCDCAAIAE2AgggACAAQQxqrUKAgICAEIQ3AxggACAAQQhqrUKAgICAEIQ3AxBBmIHAACAAQRBqIAMQFQAL2QECAX8BfiMAQSBrIgMkACADIAE2AhAgAyAANgIMIANBATsBHCADIAI2AhggAyADQQxqNgIUIwBBEGsiASQAIANBFGoiACkCACEEIAEgADYCDCABIAQ3AgQjAEEQayIAJAAgAUEEaiIBKAIAIgIoAgQiA0EBcUUEQCAAQYCAgIB4NgIAIAAgATYCDCABKAIIIgEtAAghAiABLQAJGiAAQQMgAhANAAsgAigCACECIAAgA0EBdjYCBCAAIAI2AgAgASgCCCIBLQAIIQIgAS0ACRogAEEEIAIQDQALLgACQCABaUEBRyAAQYCAgIB4IAFrS3INACAABEAgASAAEAMiAUUNAQsgAQ8LAAsZACAABEAQGQALQfyDwABBI0GQhMAAEBUACwsAIAAjAGokACMACw0AQbiJwABBAToAAAALDAAgACABKQIANwMACwkAIABBADYCAAsLwAkCAEGAgMAAC6kJFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAC9Vc2Vycy9reWxlLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMDgvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMva3lsZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dlZXpsLTAuMS4xMi9zcmMvZGVjb2RlLnJzAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAHNyYy9saWIucnMAAADPARAACgAAACoAAAAYAAAAzwEQAAoAAAArAAAAHgAAAGNhcGFjaXR5IG92ZXJmbG93AAAArgEQACAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5zwAQABsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZOsAEABmAAAAfwAAABEAAADrABAAZgAAAIwAAAARAAAAbWlkID4gbGVuAAAAUgEQAFsAAADRBQAAIAAAAFIBEABbAAAAvwUAACQAAABSARAAWwAAAKcFAAAUAAAAUgEQAFsAAAC0BQAAIAAAAFIBEABbAAAAawUAACcAAABSARAAWwAAAGsFAAAJAAAAUgEQAFsAAAB1BQAAIQAAAFIBEABbAAAAeAUAAB4AAABSARAAWwAAAIEFAAAUAAAAUgEQAFsAAADABAAAFwAAAFIBEABbAAAAugQAABcAAABSARAAWwAAAKoDAAAgAAAAUgEQAFsAAACvAwAAMAAAAFIBEABbAAAAxgMAADAAAABSARAAWwAAANUDAAAVAAAAUgEQAFsAAADeAwAALwAAAFIBEABbAAAACQQAACYAAABSARAAWwAAAAcEAAAmAAAAUgEQAFsAAAA1BAAANwAAAFIBEABbAAAAOwQAAB8AAABSARAAWwAAADwEAAAZAAAAUgEQAFsAAAAiBAAALgAAAFIBEABbAAAAagQAAB4AQbCJwAALBf////8EAEgJcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkCBndhbHJ1cwYwLjI0LjQMd2FzbS1iaW5kZ2VuEzAuMi4xMDggKGE3ODhmNThmOSk=\");function s(I,B){const g=A(I,B);if(0===g.length)throw Error(\"Failed to decode with LZW decoder.\");return g}await async function(A){if(void 0!==C)return C;void 0!==A&&(Object.getPrototypeOf(A)===Object.prototype?({module_or_path:A}=A):console.warn(\"using deprecated parameters for the initialization function; pass a single object instead\"));const B={__proto__:null,\"./index_bg.js\":{__proto__:null}};(\"string\"==typeof A||\"function\"==typeof Request&&A instanceof Request||\"function\"==typeof URL&&A instanceof URL)&&(A=fetch(A));const{instance:Q,module:E}=await async function(A,I){if(\"function\"==typeof Response&&A instanceof Response){if(\"function\"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(A,I)}catch(I){if(!A.ok||!function(A){switch(A){case\"basic\":case\"cors\":case\"default\":return!0}return!1}(A.type)||\"application/wasm\"===A.headers.get(\"Content-Type\"))throw I;console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",I)}const B=await A.arrayBuffer();return await WebAssembly.instantiate(B,I)}{const B=await WebAssembly.instantiate(A,I);return B instanceof WebAssembly.Instance?{instance:B,module:A}:B}}(await A,B);return function(A){return C=A.exports,I=null,g=null,C}(Q)}({module_or_path:D});export{s as decompress};\n","import { decompress } from \"@developmentseed/lzw-tiff-decoder\";\nexport async function decode(bytes, metadata) {\n const { width, height, samplesPerPixel, bitsPerSample } = metadata;\n const maxUncompressedSize = width * height * samplesPerPixel * (bitsPerSample / 8);\n const result = decompress(new Uint8Array(bytes), maxUncompressedSize);\n return copyIfViewNotFullBuffer(result);\n}\n// Duplicated in zstd.ts: sharing this via a separate module causes the bundler\n// to emit a tiny shared chunk, adding a roundtrip on the codec's critical path.\nfunction copyIfViewNotFullBuffer(view) {\n // If the view is already aligned, we can return its underlying buffer directly\n if (view.byteOffset === 0 && view.byteLength === view.buffer.byteLength) {\n return view.buffer;\n }\n // Otherwise, we need to copy the relevant portion of the buffer into a new ArrayBuffer\n const copy = new Uint8Array(view.byteLength);\n copy.set(view);\n return copy.buffer;\n}\n//# sourceMappingURL=lzw.js.map"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { n as decode } from "./decode-BvR5vy7g.js";
|
|
2
|
+
//#region node_modules/@developmentseed/geotiff/dist/pool/wrapper.js
|
|
3
|
+
/** Collect the transferable ArrayBuffers from a DecodedPixels. */
|
|
4
|
+
function collectTransferables(pixels) {
|
|
5
|
+
if (pixels.layout === "pixel-interleaved") return [pixels.data.buffer];
|
|
6
|
+
return pixels.bands.map((b) => b.buffer);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region node_modules/@developmentseed/geotiff/dist/pool/worker.js
|
|
10
|
+
/**
|
|
11
|
+
* Default worker entry point for DecoderPool.
|
|
12
|
+
*
|
|
13
|
+
* In most cases you don't need to reference this file directly — call
|
|
14
|
+
* `defaultDecoderPool()` instead, which creates a pool backed by this worker.
|
|
15
|
+
*
|
|
16
|
+
* To override codecs (e.g. swap in a WASM zstd decoder), create your own
|
|
17
|
+
* worker file that mutates `registry` before importing this handler:
|
|
18
|
+
*
|
|
19
|
+
* import { registry } from "@developmentseed/geotiff";
|
|
20
|
+
* import { Compression } from "@cogeotiff/core";
|
|
21
|
+
* registry.set(Compression.Zstd, () => import("./my-wasm-zstd.js").then(m => m.decode));
|
|
22
|
+
* import "@developmentseed/geotiff/pool/worker";
|
|
23
|
+
*
|
|
24
|
+
* Then pass a custom `createWorker` factory to `DecoderPool`:
|
|
25
|
+
*
|
|
26
|
+
* new DecoderPool({
|
|
27
|
+
* createWorker: () =>
|
|
28
|
+
* new Worker(new URL("./my-worker.js", import.meta.url), { type: "module" }),
|
|
29
|
+
* });
|
|
30
|
+
*/
|
|
31
|
+
self.addEventListener("message", async (e) => {
|
|
32
|
+
const { jobId, compression, metadata, buffer } = e.data;
|
|
33
|
+
try {
|
|
34
|
+
const array = await decode(buffer, compression, metadata);
|
|
35
|
+
const transferables = collectTransferables(array);
|
|
36
|
+
const response = {
|
|
37
|
+
jobId,
|
|
38
|
+
pixels: array
|
|
39
|
+
};
|
|
40
|
+
self.postMessage(response, { transfer: transferables });
|
|
41
|
+
} catch (err) {
|
|
42
|
+
const response = {
|
|
43
|
+
jobId,
|
|
44
|
+
error: String(err)
|
|
45
|
+
};
|
|
46
|
+
self.postMessage(response);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
//#endregion
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=worker-C6cg9T3Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-C6cg9T3Y.js","names":[],"sources":["../../node_modules/@developmentseed/geotiff/dist/pool/wrapper.js","../../node_modules/@developmentseed/geotiff/dist/pool/worker.js"],"sourcesContent":["/** Collect the transferable ArrayBuffers from a DecodedPixels. */\nexport function collectTransferables(pixels) {\n if (pixels.layout === \"pixel-interleaved\") {\n return [pixels.data.buffer];\n }\n return pixels.bands.map((b) => b.buffer);\n}\n/**\n * Wraps a Worker, tracking in-flight jobs and routing responses via jobId.\n */\nexport class WorkerWrapper {\n worker;\n jobIdCounter = 0;\n jobs = new Map();\n constructor(worker) {\n this.worker = worker;\n this.worker.addEventListener(\"message\", (e) => this.onMessage(e));\n }\n get jobCount() {\n return this.jobs.size;\n }\n onMessage(e) {\n const { jobId, error, pixels } = e.data;\n const job = this.jobs.get(jobId);\n this.jobs.delete(jobId);\n if (!job) {\n return;\n }\n if (error) {\n job.reject(new Error(error));\n }\n else {\n job.resolve(pixels);\n }\n }\n submitJob(request, transferables) {\n const jobId = this.jobIdCounter++;\n return new Promise((resolve, reject) => {\n this.jobs.set(jobId, { resolve, reject });\n this.worker.postMessage({ ...request, jobId }, { transfer: transferables });\n });\n }\n terminate() {\n this.worker.terminate();\n }\n}\n//# sourceMappingURL=wrapper.js.map","/**\n * Default worker entry point for DecoderPool.\n *\n * In most cases you don't need to reference this file directly — call\n * `defaultDecoderPool()` instead, which creates a pool backed by this worker.\n *\n * To override codecs (e.g. swap in a WASM zstd decoder), create your own\n * worker file that mutates `registry` before importing this handler:\n *\n * import { registry } from \"@developmentseed/geotiff\";\n * import { Compression } from \"@cogeotiff/core\";\n * registry.set(Compression.Zstd, () => import(\"./my-wasm-zstd.js\").then(m => m.decode));\n * import \"@developmentseed/geotiff/pool/worker\";\n *\n * Then pass a custom `createWorker` factory to `DecoderPool`:\n *\n * new DecoderPool({\n * createWorker: () =>\n * new Worker(new URL(\"./my-worker.js\", import.meta.url), { type: \"module\" }),\n * });\n */\nimport { decode } from \"../decode.js\";\nimport { collectTransferables } from \"./wrapper.js\";\nself.addEventListener(\"message\", async (e) => {\n const { jobId, compression, metadata, buffer } = e.data;\n try {\n const array = await decode(buffer, compression, metadata);\n const transferables = collectTransferables(array);\n const response = { jobId, pixels: array };\n self.postMessage(response, { transfer: transferables });\n }\n catch (err) {\n const response = { jobId, error: String(err) };\n self.postMessage(response);\n }\n});\n//# sourceMappingURL=worker.js.map"],"x_google_ignoreList":[0,1],"mappings":";;;AACA,SAAgB,qBAAqB,QAAQ;CACzC,IAAI,OAAO,WAAW,qBAClB,OAAO,CAAC,OAAO,KAAK,MAAM;CAE9B,OAAO,OAAO,MAAM,KAAK,MAAM,EAAE,MAAM;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;ACiBA,KAAK,iBAAiB,WAAW,OAAO,MAAM;CAC1C,MAAM,EAAE,OAAO,aAAa,UAAU,WAAW,EAAE;CACnD,IAAI;EACA,MAAM,QAAQ,MAAM,OAAO,QAAQ,aAAa,QAAQ;EACxD,MAAM,gBAAgB,qBAAqB,KAAK;EAChD,MAAM,WAAW;GAAE;GAAO,QAAQ;EAAM;EACxC,KAAK,YAAY,UAAU,EAAE,UAAU,cAAc,CAAC;CAC1D,SACO,KAAK;EACR,MAAM,WAAW;GAAE;GAAO,OAAO,OAAO,GAAG;EAAE;EAC7C,KAAK,YAAY,QAAQ;CAC7B;AACJ,CAAC"}
|