geotiff 3.0.2 → 3.0.4-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist-browser/geotiff.js +3 -3
  2. package/dist-browser/geotiff.js.map +1 -1
  3. package/dist-module/compression/basedecoder.d.ts +30 -4
  4. package/dist-module/compression/basedecoder.d.ts.map +1 -1
  5. package/dist-module/compression/basedecoder.js +22 -1
  6. package/dist-module/compression/basedecoder.js.map +1 -0
  7. package/dist-module/compression/deflate.d.ts +2 -1
  8. package/dist-module/compression/deflate.d.ts.map +1 -1
  9. package/dist-module/compression/deflate.js +2 -0
  10. package/dist-module/compression/deflate.js.map +1 -0
  11. package/dist-module/compression/index.d.ts +14 -22
  12. package/dist-module/compression/index.d.ts.map +1 -1
  13. package/dist-module/compression/index.js +36 -25
  14. package/dist-module/compression/index.js.map +1 -0
  15. package/dist-module/compression/jpeg.d.ts +55 -15
  16. package/dist-module/compression/jpeg.d.ts.map +1 -1
  17. package/dist-module/compression/jpeg.js +187 -16
  18. package/dist-module/compression/jpeg.js.map +1 -0
  19. package/dist-module/compression/lerc.d.ts +11 -1
  20. package/dist-module/compression/lerc.d.ts.map +1 -1
  21. package/dist-module/compression/lerc.js +16 -4
  22. package/dist-module/compression/lerc.js.map +1 -0
  23. package/dist-module/compression/lzw.d.ts +2 -1
  24. package/dist-module/compression/lzw.d.ts.map +1 -1
  25. package/dist-module/compression/lzw.js +29 -1
  26. package/dist-module/compression/lzw.js.map +1 -0
  27. package/dist-module/compression/packbits.d.ts +2 -1
  28. package/dist-module/compression/packbits.d.ts.map +1 -1
  29. package/dist-module/compression/packbits.js +2 -0
  30. package/dist-module/compression/packbits.js.map +1 -0
  31. package/dist-module/compression/raw.d.ts +2 -1
  32. package/dist-module/compression/raw.d.ts.map +1 -1
  33. package/dist-module/compression/raw.js +2 -0
  34. package/dist-module/compression/raw.js.map +1 -0
  35. package/dist-module/compression/webimage.d.ts +2 -1
  36. package/dist-module/compression/webimage.d.ts.map +1 -1
  37. package/dist-module/compression/webimage.js +5 -0
  38. package/dist-module/compression/webimage.js.map +1 -0
  39. package/dist-module/compression/zstd.d.ts +4 -2
  40. package/dist-module/compression/zstd.d.ts.map +1 -1
  41. package/dist-module/compression/zstd.js +3 -1
  42. package/dist-module/compression/zstd.js.map +1 -0
  43. package/dist-module/dataslice.d.ts +78 -22
  44. package/dist-module/dataslice.d.ts.map +1 -1
  45. package/dist-module/dataslice.js +57 -1
  46. package/dist-module/dataslice.js.map +1 -0
  47. package/dist-module/dataview64.d.ts +71 -14
  48. package/dist-module/dataview64.d.ts.map +1 -1
  49. package/dist-module/dataview64.js +58 -1
  50. package/dist-module/dataview64.js.map +1 -0
  51. package/dist-module/geotiff.d.ts +61 -12
  52. package/dist-module/geotiff.d.ts.map +1 -1
  53. package/dist-module/geotiff.js +73 -14
  54. package/dist-module/geotiff.js.map +1 -0
  55. package/dist-module/geotiffimage.d.ts +41 -15
  56. package/dist-module/geotiffimage.d.ts.map +1 -1
  57. package/dist-module/geotiffimage.js +132 -52
  58. package/dist-module/geotiffimage.js.map +1 -0
  59. package/dist-module/geotiffwriter.d.ts +28 -1
  60. package/dist-module/geotiffwriter.d.ts.map +1 -1
  61. package/dist-module/geotiffwriter.js +206 -84
  62. package/dist-module/geotiffwriter.js.map +1 -0
  63. package/dist-module/globals.d.ts +912 -92
  64. package/dist-module/globals.d.ts.map +1 -1
  65. package/dist-module/globals.js +201 -227
  66. package/dist-module/globals.js.map +1 -0
  67. package/dist-module/imagefiledirectory.d.ts +72 -19
  68. package/dist-module/imagefiledirectory.d.ts.map +1 -1
  69. package/dist-module/imagefiledirectory.js +51 -26
  70. package/dist-module/imagefiledirectory.js.map +1 -0
  71. package/dist-module/logging.d.ts +36 -10
  72. package/dist-module/logging.d.ts.map +1 -1
  73. package/dist-module/logging.js +16 -2
  74. package/dist-module/logging.js.map +1 -0
  75. package/dist-module/pool.d.ts +15 -8
  76. package/dist-module/pool.d.ts.map +1 -1
  77. package/dist-module/pool.js +11 -3
  78. package/dist-module/pool.js.map +1 -0
  79. package/dist-module/predictor.d.ts +10 -1
  80. package/dist-module/predictor.d.ts.map +1 -1
  81. package/dist-module/predictor.js +19 -0
  82. package/dist-module/predictor.js.map +1 -0
  83. package/dist-module/resample.d.ts.map +1 -1
  84. package/dist-module/resample.js +12 -0
  85. package/dist-module/resample.js.map +1 -0
  86. package/dist-module/rgb.js +1 -0
  87. package/dist-module/rgb.js.map +1 -0
  88. package/dist-module/source/arraybuffer.d.ts +7 -4
  89. package/dist-module/source/arraybuffer.d.ts.map +1 -1
  90. package/dist-module/source/arraybuffer.js +15 -1
  91. package/dist-module/source/arraybuffer.js.map +1 -0
  92. package/dist-module/source/basesource.d.ts +11 -6
  93. package/dist-module/source/basesource.d.ts.map +1 -1
  94. package/dist-module/source/basesource.js +7 -4
  95. package/dist-module/source/basesource.js.map +1 -0
  96. package/dist-module/source/blockedsource.d.ts +2 -2
  97. package/dist-module/source/blockedsource.d.ts.map +1 -1
  98. package/dist-module/source/blockedsource.js +8 -5
  99. package/dist-module/source/blockedsource.js.map +1 -0
  100. package/dist-module/source/client/base.d.ts +8 -7
  101. package/dist-module/source/client/base.d.ts.map +1 -1
  102. package/dist-module/source/client/base.js +7 -5
  103. package/dist-module/source/client/base.js.map +1 -0
  104. package/dist-module/source/client/fetch.d.ts +6 -2
  105. package/dist-module/source/client/fetch.d.ts.map +1 -1
  106. package/dist-module/source/client/fetch.js +7 -2
  107. package/dist-module/source/client/fetch.js.map +1 -0
  108. package/dist-module/source/client/http.d.ts +27 -5
  109. package/dist-module/source/client/http.d.ts.map +1 -1
  110. package/dist-module/source/client/http.js +16 -2
  111. package/dist-module/source/client/http.js.map +1 -0
  112. package/dist-module/source/client/xhr.d.ts +22 -3
  113. package/dist-module/source/client/xhr.d.ts.map +1 -1
  114. package/dist-module/source/client/xhr.js +12 -2
  115. package/dist-module/source/client/xhr.js.map +1 -0
  116. package/dist-module/source/file.d.ts +8 -5
  117. package/dist-module/source/file.d.ts.map +1 -1
  118. package/dist-module/source/file.js +40 -8
  119. package/dist-module/source/file.js.map +1 -0
  120. package/dist-module/source/filereader.d.ts +12 -4
  121. package/dist-module/source/filereader.d.ts.map +1 -1
  122. package/dist-module/source/filereader.js +15 -2
  123. package/dist-module/source/filereader.js.map +1 -0
  124. package/dist-module/source/httputils.d.ts +16 -9
  125. package/dist-module/source/httputils.d.ts.map +1 -1
  126. package/dist-module/source/httputils.js +19 -12
  127. package/dist-module/source/httputils.js.map +1 -0
  128. package/dist-module/source/remote.d.ts.map +1 -1
  129. package/dist-module/source/remote.js +19 -7
  130. package/dist-module/source/remote.js.map +1 -0
  131. package/dist-module/utils.d.ts +36 -41
  132. package/dist-module/utils.d.ts.map +1 -1
  133. package/dist-module/utils.js +17 -12
  134. package/dist-module/utils.js.map +1 -0
  135. package/dist-module/worker/create.js +1 -1
  136. package/dist-module/worker/create.js.map +1 -0
  137. package/dist-module/worker/decoder.d.ts +2 -0
  138. package/dist-module/worker/decoder.d.ts.map +1 -0
  139. package/dist-module/worker/decoder.js +21 -0
  140. package/dist-module/worker/decoder.js.map +1 -0
  141. package/dist-node/compression/basedecoder.d.ts +30 -4
  142. package/dist-node/compression/basedecoder.d.ts.map +1 -1
  143. package/dist-node/compression/basedecoder.js +22 -1
  144. package/dist-node/compression/basedecoder.js.map +1 -1
  145. package/dist-node/compression/deflate.d.ts +2 -1
  146. package/dist-node/compression/deflate.d.ts.map +1 -1
  147. package/dist-node/compression/deflate.js +2 -0
  148. package/dist-node/compression/deflate.js.map +1 -1
  149. package/dist-node/compression/index.d.ts +14 -22
  150. package/dist-node/compression/index.d.ts.map +1 -1
  151. package/dist-node/compression/index.js +36 -25
  152. package/dist-node/compression/index.js.map +1 -1
  153. package/dist-node/compression/jpeg.d.ts +55 -16
  154. package/dist-node/compression/jpeg.d.ts.map +1 -1
  155. package/dist-node/compression/jpeg.js +187 -16
  156. package/dist-node/compression/jpeg.js.map +1 -1
  157. package/dist-node/compression/lerc.d.ts +11 -1
  158. package/dist-node/compression/lerc.d.ts.map +1 -1
  159. package/dist-node/compression/lerc.js +16 -4
  160. package/dist-node/compression/lerc.js.map +1 -1
  161. package/dist-node/compression/lzw.d.ts +2 -1
  162. package/dist-node/compression/lzw.d.ts.map +1 -1
  163. package/dist-node/compression/lzw.js +29 -1
  164. package/dist-node/compression/lzw.js.map +1 -1
  165. package/dist-node/compression/packbits.d.ts +2 -1
  166. package/dist-node/compression/packbits.d.ts.map +1 -1
  167. package/dist-node/compression/packbits.js +2 -0
  168. package/dist-node/compression/packbits.js.map +1 -1
  169. package/dist-node/compression/raw.d.ts +2 -1
  170. package/dist-node/compression/raw.d.ts.map +1 -1
  171. package/dist-node/compression/raw.js +2 -0
  172. package/dist-node/compression/raw.js.map +1 -1
  173. package/dist-node/compression/webimage.d.ts +2 -2
  174. package/dist-node/compression/webimage.d.ts.map +1 -1
  175. package/dist-node/compression/webimage.js +5 -0
  176. package/dist-node/compression/webimage.js.map +1 -1
  177. package/dist-node/compression/zstd.d.ts +2 -1
  178. package/dist-node/compression/zstd.d.ts.map +1 -1
  179. package/dist-node/compression/zstd.js +3 -1
  180. package/dist-node/compression/zstd.js.map +1 -1
  181. package/dist-node/dataslice.d.ts +78 -22
  182. package/dist-node/dataslice.d.ts.map +1 -1
  183. package/dist-node/dataslice.js +57 -1
  184. package/dist-node/dataslice.js.map +1 -1
  185. package/dist-node/dataview64.d.ts +71 -14
  186. package/dist-node/dataview64.d.ts.map +1 -1
  187. package/dist-node/dataview64.js +58 -1
  188. package/dist-node/dataview64.js.map +1 -1
  189. package/dist-node/geotiff.d.ts +61 -12
  190. package/dist-node/geotiff.d.ts.map +1 -1
  191. package/dist-node/geotiff.js +75 -15
  192. package/dist-node/geotiff.js.map +1 -1
  193. package/dist-node/geotiffimage.d.ts +41 -15
  194. package/dist-node/geotiffimage.d.ts.map +1 -1
  195. package/dist-node/geotiffimage.js +132 -52
  196. package/dist-node/geotiffimage.js.map +1 -1
  197. package/dist-node/geotiffwriter.d.ts +28 -1
  198. package/dist-node/geotiffwriter.d.ts.map +1 -1
  199. package/dist-node/geotiffwriter.js +206 -84
  200. package/dist-node/geotiffwriter.js.map +1 -1
  201. package/dist-node/globals.d.ts +910 -90
  202. package/dist-node/globals.d.ts.map +1 -1
  203. package/dist-node/globals.js +202 -228
  204. package/dist-node/globals.js.map +1 -1
  205. package/dist-node/imagefiledirectory.d.ts +72 -19
  206. package/dist-node/imagefiledirectory.d.ts.map +1 -1
  207. package/dist-node/imagefiledirectory.js +51 -26
  208. package/dist-node/imagefiledirectory.js.map +1 -1
  209. package/dist-node/logging.d.ts +36 -10
  210. package/dist-node/logging.d.ts.map +1 -1
  211. package/dist-node/logging.js +16 -2
  212. package/dist-node/logging.js.map +1 -1
  213. package/dist-node/pool.d.ts +15 -8
  214. package/dist-node/pool.d.ts.map +1 -1
  215. package/dist-node/pool.js +11 -3
  216. package/dist-node/pool.js.map +1 -1
  217. package/dist-node/predictor.d.ts +10 -1
  218. package/dist-node/predictor.d.ts.map +1 -1
  219. package/dist-node/predictor.js +19 -0
  220. package/dist-node/predictor.js.map +1 -1
  221. package/dist-node/resample.d.ts.map +1 -1
  222. package/dist-node/resample.js +12 -0
  223. package/dist-node/resample.js.map +1 -1
  224. package/dist-node/rgb.js +1 -0
  225. package/dist-node/rgb.js.map +1 -1
  226. package/dist-node/source/arraybuffer.d.ts +7 -4
  227. package/dist-node/source/arraybuffer.d.ts.map +1 -1
  228. package/dist-node/source/arraybuffer.js +15 -1
  229. package/dist-node/source/arraybuffer.js.map +1 -1
  230. package/dist-node/source/basesource.d.ts +11 -6
  231. package/dist-node/source/basesource.d.ts.map +1 -1
  232. package/dist-node/source/basesource.js +7 -4
  233. package/dist-node/source/basesource.js.map +1 -1
  234. package/dist-node/source/blockedsource.d.ts +2 -2
  235. package/dist-node/source/blockedsource.d.ts.map +1 -1
  236. package/dist-node/source/blockedsource.js +8 -5
  237. package/dist-node/source/blockedsource.js.map +1 -1
  238. package/dist-node/source/client/base.d.ts +8 -7
  239. package/dist-node/source/client/base.d.ts.map +1 -1
  240. package/dist-node/source/client/base.js +7 -5
  241. package/dist-node/source/client/base.js.map +1 -1
  242. package/dist-node/source/client/fetch.d.ts +5 -2
  243. package/dist-node/source/client/fetch.d.ts.map +1 -1
  244. package/dist-node/source/client/fetch.js +7 -2
  245. package/dist-node/source/client/fetch.js.map +1 -1
  246. package/dist-node/source/client/http.d.ts +22 -4
  247. package/dist-node/source/client/http.d.ts.map +1 -1
  248. package/dist-node/source/client/http.js +16 -2
  249. package/dist-node/source/client/http.js.map +1 -1
  250. package/dist-node/source/client/xhr.d.ts +23 -3
  251. package/dist-node/source/client/xhr.d.ts.map +1 -1
  252. package/dist-node/source/client/xhr.js +12 -2
  253. package/dist-node/source/client/xhr.js.map +1 -1
  254. package/dist-node/source/file.d.ts +8 -5
  255. package/dist-node/source/file.d.ts.map +1 -1
  256. package/dist-node/source/file.js +40 -8
  257. package/dist-node/source/file.js.map +1 -1
  258. package/dist-node/source/filereader.d.ts +12 -4
  259. package/dist-node/source/filereader.d.ts.map +1 -1
  260. package/dist-node/source/filereader.js +15 -2
  261. package/dist-node/source/filereader.js.map +1 -1
  262. package/dist-node/source/httputils.d.ts +16 -9
  263. package/dist-node/source/httputils.d.ts.map +1 -1
  264. package/dist-node/source/httputils.js +19 -12
  265. package/dist-node/source/httputils.js.map +1 -1
  266. package/dist-node/source/remote.d.ts.map +1 -1
  267. package/dist-node/source/remote.js +19 -7
  268. package/dist-node/source/remote.js.map +1 -1
  269. package/dist-node/utils.d.ts +9 -8
  270. package/dist-node/utils.d.ts.map +1 -1
  271. package/dist-node/utils.js +17 -12
  272. package/dist-node/utils.js.map +1 -1
  273. package/dist-node/worker/create.js +1 -1
  274. package/dist-node/worker/create.js.map +1 -1
  275. package/dist-node/worker/decoder.d.ts +2 -0
  276. package/dist-node/worker/decoder.d.ts.map +1 -0
  277. package/dist-node/worker/decoder.js +24 -0
  278. package/dist-node/worker/decoder.js.map +1 -0
  279. package/package.json +5 -3
@@ -1,42 +1,53 @@
1
1
  export class ImageFileDirectory {
2
2
  /**
3
3
  * Create an ImageFileDirectory.
4
- * @param {Map} actualizedFields the file directory, mapping tag names to values
5
- * @param {Map} deferredFields the deferred fields, mapping tag names to async functions
6
- * @param {Map} deferredArrays the deferred arrays, mapping tag names to DeferredArray objects
4
+ * @param {Map<string|number, number|string|Array<number|string>>} actualizedFields the file directory,
5
+ * mapping tag names to values
6
+ * @param {Map<string|number, Function>} deferredFields the deferred fields, mapping tag names to async functions
7
+ * @param {Map<string|number, DeferredArray>} deferredArrays the deferred arrays, mapping tag names to
8
+ * DeferredArray objects
7
9
  * @param {number} nextIFDByteOffset the byte offset to the next IFD
8
10
  */
9
- constructor(actualizedFields: Map<any, any>, deferredFields: Map<any, any>, deferredArrays: Map<any, any>, nextIFDByteOffset: number);
10
- actualizedFields: Map<any, any>;
11
- deferredFields: Map<any, any>;
11
+ constructor(actualizedFields: Map<string | number, number | string | Array<number | string>>, deferredFields: Map<string | number, Function>, deferredArrays: Map<string | number, DeferredArray>, nextIFDByteOffset: number);
12
+ actualizedFields: Map<string | number, string | number | (string | number)[]>;
13
+ deferredFields: Map<string | number, Function>;
12
14
  deferredFieldsBeingResolved: Map<any, any>;
13
- deferredArrays: Map<any, any>;
15
+ deferredArrays: Map<string | number, DeferredArray>;
14
16
  nextIFDByteOffset: number;
15
17
  /**
16
- * @param {number|string} tagIdentifier The field tag ID or name
17
- * @returns {boolean} whether the field exists (actualized or deferred)
18
+ * @template {import('./globals.js').TagName} [T=any]
19
+ * @param {T|number} tagIdentifier The field tag ID or name
20
+ * @returns {this is { getValue(t: T): NonNullable<import('./globals.js').TagValue<T>> }
21
+ * & import('./imagefiledirectory').ImageFileDirectory} whether the field exists (actualized or deferred)
18
22
  */
19
- hasTag(tagIdentifier: number | string): boolean;
23
+ hasTag<T extends import("./globals.js").TagName = any>(tagIdentifier: T | number): this is {
24
+ getValue(t: T): NonNullable<import("./globals.js").TagValue<T>>;
25
+ } & import("./imagefiledirectory").ImageFileDirectory;
20
26
  /**
21
27
  * Synchronously retrieves the value for a given tag. If it is deferred, an error is thrown.
22
- * @param {number|string} tagIdentifier The field tag ID or name
23
- * @returns the field value, or undefined if it does not exist
28
+ * @template {import('./globals.js').TagName} [T=any]
29
+ * @param {T|number} tagIdentifier The field tag ID or name
30
+ * @returns {T extends import('./globals.js').TagName ? (import('./globals.js').TagValue<T> | undefined) : unknown}
31
+ * the field value,
32
+ * or undefined if it does not exist
24
33
  * @throws {Error} If the tag is deferred and requires asynchronous loading
25
34
  */
26
- getValue(tagIdentifier: number | string): any;
35
+ getValue<T extends import("./globals.js").TagName = any>(tagIdentifier: T | number): T extends import("./globals.js").TagName ? (import("./globals.js").TagValue<T> | undefined) : unknown;
27
36
  /**
28
37
  * Retrieves the value for a given tag. If it is deferred, it will be loaded first.
29
- * @param {number|string} tagIdentifier The field tag ID or name
30
- * @returns the field value, or undefined if it does not exist
38
+ * @template {import('./globals.js').TagName} [T=any]
39
+ * @param {T|number} tagIdentifier The field tag ID or name
40
+ * @returns {Promise<T extends import('./globals.js').TagName ? (import('./globals.js').TagValue<T> | undefined) : any>}
41
+ * the field value, or undefined if it does not exist
31
42
  */
32
- loadValue(tagIdentifier: number | string): Promise<any>;
43
+ loadValue<T extends import("./globals.js").TagName = any>(tagIdentifier: T | number): Promise<T extends import("./globals.js").TagName ? (import("./globals.js").TagValue<T> | undefined) : any>;
33
44
  /**
34
45
  * Retrieves the value at a given index for a tag that is an array. If it is deferred, it will be loaded first.
35
46
  * @param {number|string} tagIdentifier The field tag ID or name
36
47
  * @param {number} index The index within the array
37
- * @returns the field value at the given index, or undefined if it does not exist
48
+ * @returns {Promise<number|string|bigint|undefined>} the field value at the given index, or undefined if it does not exist
38
49
  */
39
- loadValueIndexed(tagIdentifier: number | string, index: number): Promise<any>;
50
+ loadValueIndexed(tagIdentifier: number | string, index: number): Promise<number | string | bigint | undefined>;
40
51
  /**
41
52
  * Parses the GeoTIFF GeoKeyDirectory tag into a structured object.
42
53
  * The GeoKeyDirectory is a special TIFF tag that contains geographic metadata
@@ -46,7 +57,7 @@ export class ImageFileDirectory {
46
57
  * @throws {Error} If a referenced geo key value cannot be retrieved
47
58
  */
48
59
  parseGeoKeyDirectory(): Partial<Record<import("./globals.js").GeoKeyName, any>> | null;
49
- toObject(): {};
60
+ toObject(): Record<string, unknown>;
50
61
  }
51
62
  /**
52
63
  * Parser for Image File Directories (IFDs).
@@ -82,5 +93,47 @@ export class ImageFileDirectoryParser {
82
93
  */
83
94
  parseFileDirectoryAt(offset: number): Promise<ImageFileDirectory>;
84
95
  }
96
+ /**
97
+ * Lazily-loaded array for large TIFF field values that are fetched on-demand.
98
+ * Supports loading individual indices or the entire array. Uses a bitmap to track
99
+ * which values have been loaded to avoid redundant fetches.
100
+ */
101
+ declare class DeferredArray {
102
+ /**
103
+ * Creates a DeferredArray for lazy-loading of large TIFF field arrays.
104
+ * @param {import("./source/basesource.js").BaseSource} source - Data source for fetching
105
+ * @param {number} arrayOffset - Byte offset where the array data starts
106
+ * @param {boolean} littleEndian - Endianness of the data
107
+ * @param {import('./globals.js').FieldType} fieldType - TIFF field type constant
108
+ * @param {number} length - Number of elements in the array
109
+ */
110
+ constructor(source: import("./source/basesource.js").BaseSource, arrayOffset: number, littleEndian: boolean, fieldType: import("./globals.js").FieldType, length: number);
111
+ source: import("./source/basesource.js").BaseSource;
112
+ arrayOffset: number;
113
+ littleEndian: boolean;
114
+ fieldType: import("./globals.js").FieldType;
115
+ length: number;
116
+ data: import("./geotiff.js").TypedArray | number[];
117
+ itemSize: number;
118
+ maskBitmap: Uint8Array<ArrayBuffer>;
119
+ fetchIndexPromises: Map<any, any>;
120
+ fullFetchPromise: Promise<Uint8Array<ArrayBufferLike> | Int8Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | Float64Array<ArrayBufferLike> | number[]> | null;
121
+ /**
122
+ * Loads all values in the deferred array at once.
123
+ * Subsequent calls return the same promise to avoid redundant fetches.
124
+ * @returns {Promise<import('./geotiff.js').TypedArray|Array<number>>} Promise resolving to the fully loaded array
125
+ */
126
+ loadAll(): Promise<import("./geotiff.js").TypedArray | Array<number>>;
127
+ /**
128
+ * Loads and returns a single value at the specified index.
129
+ * If the value is already loaded, returns it immediately. Otherwise, fetches it
130
+ * from the source. Multiple calls for the same index reuse the same promise.
131
+ * @param {number} index - Zero-based index of the value to load
132
+ * @returns {Promise<number|bigint>} Promise resolving to the value at the given index
133
+ * @throws {RangeError} If index is out of bounds
134
+ */
135
+ get(index: number): Promise<number | bigint>;
136
+ }
85
137
  import DataSlice from './dataslice.js';
138
+ export {};
86
139
  //# sourceMappingURL=imagefiledirectory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imagefiledirectory.d.ts","sourceRoot":"","sources":["../src/imagefiledirectory.js"],"names":[],"mappings":"AAyQA;IACE;;;;;;OAMG;IACH,8HAFW,MAAM,EAQhB;IALC,gCAAwC;IACxC,8BAAoC;IACpC,2CAA4C;IAC5C,8BAAoC;IACpC,0BAA0C;IAG5C;;;OAGG;IACH,sBAHW,MAAM,GAAC,MAAM,GACX,OAAO,CAKnB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,GAAC,MAAM,OAoBvB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GAAC,MAAM,gBAmCvB;IAED;;;;;OAKG;IACH,gCAJW,MAAM,GAAC,MAAM,SACb,MAAM,gBAehB;IAED;;;;;;;OAOG;IACH,wBAJa,OAAO,CAAC,MAAM,CAAC,OAAO,cAAc,EAAE,UAAU,EAAE,GAAC,CAAC,CAAC,GAAC,IAAI,CAqCtE;IAED,eAQC;CACF;AAED;;GAEG;AACH;IACE;;;;;;;OAOG;IACH,oBAPW,OAAO,wBAAwB,EAAE,UAAU,gBAC3C,OAAO,WACP,OAAO,UACP,OAAO,EASjB;IAJC,oDAAoB;IACpB,sBAAgC;IAChC,iBAAsB;IACtB,eAAkB;IAGpB;;;;;OAKG;IACH,iBAJW,MAAM,WACN,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAiB9B;IAED;;;;;;;OAOG;IACH,6BAHW,MAAM,GACJ,OAAO,CAAC,kBAAkB,CAAC,CA+HvC;CACF;sBA3lBqB,gBAAgB"}
1
+ {"version":3,"file":"imagefiledirectory.d.ts","sourceRoot":"","sources":["../src/imagefiledirectory.js"],"names":[],"mappings":"AAqRA;IACE;;;;;;;;OAQG;IACH,8BAPW,GAAG,CAAC,MAAM,GAAC,MAAM,EAAE,MAAM,GAAC,MAAM,GAAC,KAAK,CAAC,MAAM,GAAC,MAAM,CAAC,CAAC,kBAEtD,GAAG,CAAC,MAAM,GAAC,MAAM,WAAW,kBAC5B,GAAG,CAAC,MAAM,GAAC,MAAM,EAAE,aAAa,CAAC,qBAEjC,MAAM,EAQhB;IALC,8EAAwC;IACxC,+CAAoC;IACpC,2CAA4C;IAC5C,oDAAoC;IACpC,0BAA0C;IAG5C;;;;;OAKG;IACH,OAL+C,CAAC,SAAnC,OAAQ,cAAc,EAAE,OAAQ,uBAClC,CAAC,GAAC,MAAM,GACN,QAAQ;QAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GACjF,OAAO,sBAAsB,EAAE,kBAAkB,CAKvD;IAED;;;;;;;;OAQG;IACH,SAP+C,CAAC,SAAnC,OAAQ,cAAc,EAAE,OAAQ,uBAClC,CAAC,GAAC,MAAM,GACN,CAAC,SAAS,OAAO,cAAc,EAAE,OAAO,GAAG,CAAC,OAAO,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAqBjH;IAED;;;;;;OAMG;IACH,UAL+C,CAAC,SAAnC,OAAQ,cAAc,EAAE,OAAQ,uBAClC,CAAC,GAAC,MAAM,GACN,OAAO,CAAC,CAAC,SAAS,OAAO,cAAc,EAAE,OAAO,GAAG,CAAC,OAAO,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAoCtH;IAED;;;;;OAKG;IACH,gCAJW,MAAM,GAAC,MAAM,SACb,MAAM,GACJ,OAAO,CAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAC,SAAS,CAAC,CAiBnD;IAED;;;;;;;OAOG;IACH,wBAJa,OAAO,CAAC,MAAM,CAAC,OAAO,cAAc,EAAE,UAAU,EAAE,GAAC,CAAC,CAAC,GAAC,IAAI,CAqCtE;IAED,oCASC;CACF;AAED;;GAEG;AACH;IACE;;;;;;;OAOG;IACH,oBAPW,OAAO,wBAAwB,EAAE,UAAU,gBAC3C,OAAO,WACP,OAAO,UACP,OAAO,EASjB;IAJC,oDAAoB;IACpB,sBAAgC;IAChC,iBAAsB;IACtB,eAAkB;IAGpB;;;;;OAKG;IACH,iBAJW,MAAM,WACN,MAAM,GACJ,OAAO,CAAC,SAAS,CAAC,CAiB9B;IAED;;;;;;;OAOG;IACH,6BAHW,MAAM,GACJ,OAAO,CAAC,kBAAkB,CAAC,CA+HvC;CACF;AAjdD;;;;GAIG;AACH;IACE;;;;;;;OAOG;IACH,oBANW,OAAO,wBAAwB,EAAE,UAAU,eAC3C,MAAM,gBACN,OAAO,aACP,OAAO,cAAc,EAAE,SAAS,UAChC,MAAM,EAahB;IAVC,oDAAoB;IACpB,oBAA8B;IAC9B,sBAAgC;IAChC,4CAA0B;IAC1B,eAAoB;IACpB,mDAAiD;IACjD,iBAA2C;IAC3C,oCAAuD;IACvD,kCAAmC;IACnC,gSAA4B;IAG9B;;;;OAIG;IACH,WAFa,OAAO,CAAC,OAAO,cAAc,EAAE,UAAU,GAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAkCpE;IAED;;;;;;;OAOG;IACH,WAJW,MAAM,GACJ,OAAO,CAAC,MAAM,GAAC,MAAM,CAAC,CAuClC;CACF;sBAnRqB,gBAAgB"}
@@ -93,6 +93,17 @@ function getDataSliceReader(dataSlice, fieldType) {
93
93
  * @param {true} isArray - Whether to always return an array (vs single value)
94
94
  * @returns {import('./geotiff.js').TypedArray|Array<number>} The decoded value(s)
95
95
  */
96
+ /**
97
+ * @overload
98
+ * @param {import('./geotiff.js').TypedArray|Array<number>|null} outValues - Optional pre-allocated output array
99
+ * @param {Function} readMethod - DataView read method (e.g., getUint16)
100
+ * @param {DataSlice} dataSlice - Source data slice
101
+ * @param {number} fieldType - TIFF field type constant
102
+ * @param {number} count - Number of values to read
103
+ * @param {number} offset - Byte offset to start reading
104
+ * @param {boolean} [isArray] - Whether to always return an array (vs single value)
105
+ * @returns {import('./geotiff.js').TypedArray|Array<number>|string|number} The decoded value(s)
106
+ */
96
107
  /**
97
108
  * Reads field values from a DataSlice.
98
109
  * @param {import('./geotiff.js').TypedArray|Array<number>|null} outValues - Optional pre-allocated output array
@@ -217,9 +228,11 @@ class DeferredArray {
217
228
  export class ImageFileDirectory {
218
229
  /**
219
230
  * Create an ImageFileDirectory.
220
- * @param {Map} actualizedFields the file directory, mapping tag names to values
221
- * @param {Map} deferredFields the deferred fields, mapping tag names to async functions
222
- * @param {Map} deferredArrays the deferred arrays, mapping tag names to DeferredArray objects
231
+ * @param {Map<string|number, number|string|Array<number|string>>} actualizedFields the file directory,
232
+ * mapping tag names to values
233
+ * @param {Map<string|number, Function>} deferredFields the deferred fields, mapping tag names to async functions
234
+ * @param {Map<string|number, DeferredArray>} deferredArrays the deferred arrays, mapping tag names to
235
+ * DeferredArray objects
223
236
  * @param {number} nextIFDByteOffset the byte offset to the next IFD
224
237
  */
225
238
  constructor(actualizedFields, deferredFields, deferredArrays, nextIFDByteOffset) {
@@ -230,8 +243,10 @@ export class ImageFileDirectory {
230
243
  this.nextIFDByteOffset = nextIFDByteOffset;
231
244
  }
232
245
  /**
233
- * @param {number|string} tagIdentifier The field tag ID or name
234
- * @returns {boolean} whether the field exists (actualized or deferred)
246
+ * @template {import('./globals.js').TagName} [T=any]
247
+ * @param {T|number} tagIdentifier The field tag ID or name
248
+ * @returns {this is { getValue(t: T): NonNullable<import('./globals.js').TagValue<T>> }
249
+ * & import('./imagefiledirectory').ImageFileDirectory} whether the field exists (actualized or deferred)
235
250
  */
236
251
  hasTag(tagIdentifier) {
237
252
  const tag = resolveTag(tagIdentifier);
@@ -239,8 +254,11 @@ export class ImageFileDirectory {
239
254
  }
240
255
  /**
241
256
  * Synchronously retrieves the value for a given tag. If it is deferred, an error is thrown.
242
- * @param {number|string} tagIdentifier The field tag ID or name
243
- * @returns the field value, or undefined if it does not exist
257
+ * @template {import('./globals.js').TagName} [T=any]
258
+ * @param {T|number} tagIdentifier The field tag ID or name
259
+ * @returns {T extends import('./globals.js').TagName ? (import('./globals.js').TagValue<T> | undefined) : unknown}
260
+ * the field value,
261
+ * or undefined if it does not exist
244
262
  * @throws {Error} If the tag is deferred and requires asynchronous loading
245
263
  */
246
264
  getValue(tagIdentifier) {
@@ -251,25 +269,27 @@ export class ImageFileDirectory {
251
269
  throw new Error(`Field '${tagName}' (${tag}) is deferred. Use loadValue() to load it asynchronously.`);
252
270
  }
253
271
  if (!this.actualizedFields.has(tag)) {
254
- return undefined;
272
+ return /** @type {any} */ (undefined);
255
273
  }
256
- return this.actualizedFields.get(tag);
274
+ return /** @type {any} */ (this.actualizedFields.get(tag));
257
275
  }
258
276
  /**
259
277
  * Retrieves the value for a given tag. If it is deferred, it will be loaded first.
260
- * @param {number|string} tagIdentifier The field tag ID or name
261
- * @returns the field value, or undefined if it does not exist
278
+ * @template {import('./globals.js').TagName} [T=any]
279
+ * @param {T|number} tagIdentifier The field tag ID or name
280
+ * @returns {Promise<T extends import('./globals.js').TagName ? (import('./globals.js').TagValue<T> | undefined) : any>}
281
+ * the field value, or undefined if it does not exist
262
282
  */
263
283
  async loadValue(tagIdentifier) {
264
284
  const tag = resolveTag(tagIdentifier);
265
285
  if (this.actualizedFields.has(tag)) {
266
- return this.actualizedFields.get(tag);
286
+ return /** @type {any} */ (this.actualizedFields.get(tag));
267
287
  }
268
288
  if (this.deferredFieldsBeingResolved.has(tag)) {
269
- return this.deferredFieldsBeingResolved.get(tag);
289
+ return /** @type {any} */ (this.deferredFieldsBeingResolved.get(tag));
270
290
  }
271
- if (this.deferredFields.has(tag)) {
272
- const loaderFn = this.deferredFields.get(tag);
291
+ const loaderFn = this.deferredFields.get(tag);
292
+ if (loaderFn) {
273
293
  this.deferredFields.delete(tag);
274
294
  // Set promise BEFORE starting async work to prevent race conditions
275
295
  const valuePromise = (async () => {
@@ -283,32 +303,35 @@ export class ImageFileDirectory {
283
303
  }
284
304
  })();
285
305
  this.deferredFieldsBeingResolved.set(tag, valuePromise);
286
- return valuePromise;
306
+ return /** @type {any} */ (valuePromise);
287
307
  }
288
- if (this.deferredArrays.has(tag)) {
289
- const deferredArray = this.deferredArrays.get(tag);
290
- return deferredArray.loadAll();
308
+ const deferredArray = this.deferredArrays.get(tag);
309
+ if (deferredArray) {
310
+ return /** @type {any} */ (deferredArray.loadAll());
291
311
  }
292
- return undefined;
312
+ return /** @type {any} */ (undefined);
293
313
  }
294
314
  /**
295
315
  * Retrieves the value at a given index for a tag that is an array. If it is deferred, it will be loaded first.
296
316
  * @param {number|string} tagIdentifier The field tag ID or name
297
317
  * @param {number} index The index within the array
298
- * @returns the field value at the given index, or undefined if it does not exist
318
+ * @returns {Promise<number|string|bigint|undefined>} the field value at the given index, or undefined if it does not exist
299
319
  */
300
320
  async loadValueIndexed(tagIdentifier, index) {
301
321
  const tag = resolveTag(tagIdentifier);
302
322
  if (this.actualizedFields.has(tag)) {
303
323
  const value = this.actualizedFields.get(tag);
304
- return value[index];
324
+ return /** @type {any} */ (value)[index];
305
325
  }
306
326
  else if (this.deferredArrays.has(tag)) {
307
- const deferredArray = this.deferredArrays.get(tag);
327
+ const deferredArray = /** @type {DeferredArray} */ (this.deferredArrays.get(tag));
308
328
  return deferredArray.get(index);
309
329
  }
310
330
  else if (this.hasTag(tag)) {
311
- return (await this.loadValue(tag))[index];
331
+ const value = await this.loadValue(tag);
332
+ if (value && typeof value !== 'number') {
333
+ return value[index];
334
+ }
312
335
  }
313
336
  return undefined;
314
337
  }
@@ -328,7 +351,7 @@ export class ImageFileDirectory {
328
351
  /** @type {Partial<Record<import('./globals.js').GeoKeyName, *>>} */
329
352
  const geoKeyDirectory = {};
330
353
  for (let i = 4; i <= rawGeoKeyDirectory[3] * 4; i += 4) {
331
- const key = geoKeyNames[rawGeoKeyDirectory[i]];
354
+ const key = ( /** @type {Record<number, import('./globals.js').GeoKeyName>} */(geoKeyNames))[rawGeoKeyDirectory[i]];
332
355
  const location = rawGeoKeyDirectory[i + 1] || null;
333
356
  const count = rawGeoKeyDirectory[i + 2];
334
357
  const offset = rawGeoKeyDirectory[i + 3];
@@ -356,9 +379,10 @@ export class ImageFileDirectory {
356
379
  return geoKeyDirectory;
357
380
  }
358
381
  toObject() {
382
+ /** @type {Record<string, unknown>} */
359
383
  const obj = {};
360
384
  for (const [tag, value] of this.actualizedFields.entries()) {
361
- const tagDefinition = tagDefinitions[tag];
385
+ const tagDefinition = typeof tag === 'number' ? tagDefinitions[tag] : undefined;
362
386
  const tagName = tagDefinition ? tagDefinition.name : `Tag${tag}`;
363
387
  obj[tagName] = value;
364
388
  }
@@ -481,3 +505,4 @@ export class ImageFileDirectoryParser {
481
505
  return new ImageFileDirectory(actualizedFields, deferredFields, deferredArrays, nextIFDByteOffset);
482
506
  }
483
507
  }
508
+ //# sourceMappingURL=imagefiledirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagefiledirectory.js","sourceRoot":"","sources":["../src/imagefiledirectory.js"],"names":[],"mappings":"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"}
@@ -1,13 +1,39 @@
1
1
  /**
2
- *
3
- * @param {object} logger the new logger. e.g `console`
2
+ * @param {DummyLogger} logger the new logger. e.g `console`
4
3
  */
5
- export function setLogger(logger?: object): void;
6
- export function debug(...args: any[]): void;
7
- export function log(...args: any[]): void;
8
- export function info(...args: any[]): void;
9
- export function warn(...args: any[]): void;
10
- export function error(...args: any[]): void;
11
- export function time(...args: any[]): void;
12
- export function timeEnd(...args: any[]): void;
4
+ export function setLogger(logger?: DummyLogger): void;
5
+ /** @param {...unknown} args */
6
+ export function debug(...args: unknown[]): void;
7
+ /** @param {...unknown} args */
8
+ export function log(...args: unknown[]): void;
9
+ /** @param {...unknown} args */
10
+ export function info(...args: unknown[]): void;
11
+ /** @param {...unknown} args */
12
+ export function warn(...args: unknown[]): void;
13
+ /** @param {...unknown} args */
14
+ export function error(...args: unknown[]): void;
15
+ /** @param {...unknown} args */
16
+ export function time(...args: unknown[]): void;
17
+ /** @param {...unknown} args */
18
+ export function timeEnd(...args: unknown[]): void;
19
+ /**
20
+ * A no-op logger
21
+ */
22
+ declare class DummyLogger {
23
+ /** @param {...unknown} _args */
24
+ log(..._args: unknown[]): void;
25
+ /** @param {...unknown} _args */
26
+ debug(..._args: unknown[]): void;
27
+ /** @param {...unknown} _args */
28
+ info(..._args: unknown[]): void;
29
+ /** @param {...unknown} _args */
30
+ warn(..._args: unknown[]): void;
31
+ /** @param {...unknown} _args */
32
+ error(..._args: unknown[]): void;
33
+ /** @param {...unknown} _args */
34
+ time(..._args: unknown[]): void;
35
+ /** @param {...unknown} _args */
36
+ timeEnd(..._args: unknown[]): void;
37
+ }
38
+ export {};
13
39
  //# sourceMappingURL=logging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.js"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,mCAFW,MAAM,QAIhB;AAED,4CAEC;AAED,0CAEC;AAED,2CAEC;AAED,2CAEC;AAED,4CAEC;AAED,2CAEC;AAED,8CAEC"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.js"],"names":[],"mappings":"AA4BA;;GAEG;AACH,mCAFW,WAAW,QAIrB;AAED,+BAA+B;AAC/B,+BADe,OAAO,EAAA,QAGrB;AAED,+BAA+B;AAC/B,6BADe,OAAO,EAAA,QAGrB;AAED,+BAA+B;AAC/B,8BADe,OAAO,EAAA,QAGrB;AAED,+BAA+B;AAC/B,8BADe,OAAO,EAAA,QAGrB;AAED,+BAA+B;AAC/B,+BADe,OAAO,EAAA,QAGrB;AAED,+BAA+B;AAC/B,8BADe,OAAO,EAAA,QAGrB;AAED,+BAA+B;AAC/B,iCADe,OAAO,EAAA,QAGrB;AApED;;GAEG;AACH;IACE,gCAAgC;IAChC,cADe,OAAO,EAAA,QACN;IAEhB,gCAAgC;IAChC,gBADe,OAAO,EAAA,QACJ;IAElB,gCAAgC;IAChC,eADe,OAAO,EAAA,QACL;IAEjB,gCAAgC;IAChC,eADe,OAAO,EAAA,QACL;IAEjB,gCAAgC;IAChC,gBADe,OAAO,EAAA,QACJ;IAElB,gCAAgC;IAChC,eADe,OAAO,EAAA,QACL;IAEjB,gCAAgC;IAChC,kBADe,OAAO,EAAA,QACF;CACrB"}
@@ -2,40 +2,54 @@
2
2
  * A no-op logger
3
3
  */
4
4
  class DummyLogger {
5
+ /** @param {...unknown} _args */
5
6
  log(..._args) { }
7
+ /** @param {...unknown} _args */
6
8
  debug(..._args) { }
9
+ /** @param {...unknown} _args */
7
10
  info(..._args) { }
11
+ /** @param {...unknown} _args */
8
12
  warn(..._args) { }
13
+ /** @param {...unknown} _args */
9
14
  error(..._args) { }
15
+ /** @param {...unknown} _args */
10
16
  time(..._args) { }
17
+ /** @param {...unknown} _args */
11
18
  timeEnd(..._args) { }
12
19
  }
13
20
  let LOGGER = new DummyLogger();
14
21
  /**
15
- *
16
- * @param {object} logger the new logger. e.g `console`
22
+ * @param {DummyLogger} logger the new logger. e.g `console`
17
23
  */
18
24
  export function setLogger(logger = new DummyLogger()) {
19
25
  LOGGER = logger;
20
26
  }
27
+ /** @param {...unknown} args */
21
28
  export function debug(...args) {
22
29
  return LOGGER.debug(...args);
23
30
  }
31
+ /** @param {...unknown} args */
24
32
  export function log(...args) {
25
33
  return LOGGER.log(...args);
26
34
  }
35
+ /** @param {...unknown} args */
27
36
  export function info(...args) {
28
37
  return LOGGER.info(...args);
29
38
  }
39
+ /** @param {...unknown} args */
30
40
  export function warn(...args) {
31
41
  return LOGGER.warn(...args);
32
42
  }
43
+ /** @param {...unknown} args */
33
44
  export function error(...args) {
34
45
  return LOGGER.error(...args);
35
46
  }
47
+ /** @param {...unknown} args */
36
48
  export function time(...args) {
37
49
  return LOGGER.time(...args);
38
50
  }
51
+ /** @param {...unknown} args */
39
52
  export function timeEnd(...args) {
40
53
  return LOGGER.timeEnd(...args);
41
54
  }
55
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.js"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW;IACf,gCAAgC;IAChC,GAAG,CAAC,GAAG,KAAK,IAAG,CAAC;IAEhB,gCAAgC;IAChC,KAAK,CAAC,GAAG,KAAK,IAAG,CAAC;IAElB,gCAAgC;IAChC,IAAI,CAAC,GAAG,KAAK,IAAG,CAAC;IAEjB,gCAAgC;IAChC,IAAI,CAAC,GAAG,KAAK,IAAG,CAAC;IAEjB,gCAAgC;IAChC,KAAK,CAAC,GAAG,KAAK,IAAG,CAAC;IAElB,gCAAgC;IAChC,IAAI,CAAC,GAAG,KAAK,IAAG,CAAC;IAEjB,gCAAgC;IAChC,OAAO,CAAC,GAAG,KAAK,IAAG,CAAC;CACrB;AAED,IAAI,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE;IAClD,MAAM,GAAG,MAAM,CAAC;AAClB,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,KAAK,CAAC,GAAG,IAAI;IAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI;IACzB,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,KAAK,CAAC,GAAG,IAAI;IAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,OAAO,CAAC,GAAG,IAAI;IAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -34,9 +34,12 @@ declare class Pool {
34
34
  */
35
35
  constructor(size?: number, createWorker?: () => Worker);
36
36
  workerWrappers: Promise<WorkerWrapper[]> | null;
37
- bindParameters(compression: any, decoderParameters: any): {
38
- decode: (buffer: any) => Promise<any>;
39
- };
37
+ /**
38
+ * @param {number} compression
39
+ * @param {import('./compression/basedecoder.js').BaseDecoderParameters} decoderParameters
40
+ * @returns {import('./geotiff.js').DecoderWorker}
41
+ */
42
+ bindParameters(compression: number, decoderParameters: import("./compression/basedecoder.js").BaseDecoderParameters): import("./geotiff.js").DecoderWorker;
40
43
  destroy(): Promise<void>;
41
44
  }
42
45
  /**
@@ -63,14 +66,18 @@ declare class WorkerWrapper {
63
66
  * @returns {Number} the number of jobs currently running
64
67
  */
65
68
  getJobCount(): number;
66
- _onWorkerMessage(e: any): void;
69
+ /** @param {MessageEvent} e */
70
+ _onWorkerMessage(e: MessageEvent): void;
67
71
  /**
68
72
  * Submit a job to the worker
69
- * @param {Object} message the message to send to the worker. A "jobId" property will be added to this object.
70
- * @param {Object[]} [transferables] an optional array of transferable objects to transfer to the worker.
71
- * @returns {Promise} a promise that gets resolved/rejected when a message with the same jobId is received from the worker.
73
+ * @param {Record<string, unknown>} message the message to send to the worker. A "jobId" property will be added to this object.
74
+ * @param {Array<Transferable>} [transferables] an optional array of transferable objects to transfer to the worker.
75
+ * @returns {Promise<{decoded: ArrayBuffer}>} a promise that gets resolved/rejected when a message with the same jobId is
76
+ * received from the worker.
72
77
  */
73
- submitJob(message: Object, transferables?: Object[]): Promise<any>;
78
+ submitJob(message: Record<string, unknown>, transferables?: Array<Transferable>): Promise<{
79
+ decoded: ArrayBuffer;
80
+ }>;
74
81
  terminate(): void;
75
82
  }
76
83
  //# sourceMappingURL=pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.js"],"names":[],"mappings":";AAiFA;;GAEG;AACH;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,0CAxBW,MAAY,MAAM,EAsC5B;IAbC,gDAA0B;IAe5B;;MAgBC;IAED,yBAOC;CACF;AAvJD;;GAEG;AAEH;;GAEG;AACH;IACE;;OAEG;IACH,oBAFW,MAAM,EAOhB;IAJC,eAAoB;IAEpB,qBAAqB;IACrB,oBAAqB;IAGvB;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,sBAEC;IAED,+BAUC;IAED;;;;;OAKG;IACH,mBAJW,MAAM,kBACN,MAAM,EAAE,gBAgBlB;IAED,kBAEC;CACF"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.js"],"names":[],"mappings":";AAmFA;;GAEG;AACH;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,0CAxBW,MAAY,MAAM,EAsC5B;IAbC,gDAA0B;IAe5B;;;;OAIG;IACH,4BAJW,MAAM,qBACN,OAAO,8BAA8B,EAAE,qBAAqB,GAC1D,OAAO,cAAc,EAAE,aAAa,CAkBhD;IAED,yBAOC;CACF;AA9JD;;GAEG;AAEH;;GAEG;AACH;IACE;;OAEG;IACH,oBAFW,MAAM,EAOhB;IAJC,eAAoB;IAEpB,qBAAqB;IACrB,oBAAqB;IAGvB;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,sBAEC;IAED,8BAA8B;IAC9B,oBADY,YAAY,QAWvB;IAED;;;;;;OAMG;IACH,mBALW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBACvB,KAAK,CAAC,YAAY,CAAC,GACjB,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAC,CAAC,CAgB3C;IAED,kBAEC;CACF"}
@@ -31,6 +31,7 @@ class WorkerWrapper {
31
31
  getJobCount() {
32
32
  return this.jobs.size;
33
33
  }
34
+ /** @param {MessageEvent} e */
34
35
  _onWorkerMessage(e) {
35
36
  const { jobId, error, ...result } = e.data;
36
37
  const job = this.jobs.get(jobId);
@@ -44,9 +45,10 @@ class WorkerWrapper {
44
45
  }
45
46
  /**
46
47
  * Submit a job to the worker
47
- * @param {Object} message the message to send to the worker. A "jobId" property will be added to this object.
48
- * @param {Object[]} [transferables] an optional array of transferable objects to transfer to the worker.
49
- * @returns {Promise} a promise that gets resolved/rejected when a message with the same jobId is received from the worker.
48
+ * @param {Record<string, unknown>} message the message to send to the worker. A "jobId" property will be added to this object.
49
+ * @param {Array<Transferable>} [transferables] an optional array of transferable objects to transfer to the worker.
50
+ * @returns {Promise<{decoded: ArrayBuffer}>} a promise that gets resolved/rejected when a message with the same jobId is
51
+ * received from the worker.
50
52
  */
51
53
  submitJob(message, transferables = undefined) {
52
54
  const jobId = this.newJobId();
@@ -115,6 +117,11 @@ class Pool {
115
117
  })();
116
118
  }
117
119
  }
120
+ /**
121
+ * @param {number} compression
122
+ * @param {import('./compression/basedecoder.js').BaseDecoderParameters} decoderParameters
123
+ * @returns {import('./geotiff.js').DecoderWorker}
124
+ */
118
125
  bindParameters(compression, decoderParameters) {
119
126
  return {
120
127
  decode: async (buffer) => {
@@ -143,3 +150,4 @@ class Pool {
143
150
  }
144
151
  }
145
152
  export default Pool;
153
+ //# sourceMappingURL=pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.js"],"names":[],"mappings":"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"}
@@ -1,2 +1,11 @@
1
- export function applyPredictor(block: any, predictor: any, width: any, height: any, bitsPerSample: any, planarConfiguration: any): any;
1
+ /**
2
+ * @param {ArrayBufferLike} block
3
+ * @param {number} predictor
4
+ * @param {number} width
5
+ * @param {number} height
6
+ * @param {number[]} bitsPerSample
7
+ * @param {number} planarConfiguration
8
+ * @returns
9
+ */
10
+ export function applyPredictor(block: ArrayBufferLike, predictor: number, width: number, height: number, bitsPerSample: number[], planarConfiguration: number): ArrayBufferLike;
2
11
  //# sourceMappingURL=predictor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"predictor.d.ts","sourceRoot":"","sources":["../src/predictor.js"],"names":[],"mappings":"AAkCA,uIAqDC"}
1
+ {"version":3,"file":"predictor.d.ts","sourceRoot":"","sources":["../src/predictor.js"],"names":[],"mappings":"AA2CA;;;;;;;;GAQG;AACH,sCARW,eAAe,aACf,MAAM,SACN,MAAM,UACN,MAAM,iBACN,MAAM,EAAE,uBACR,MAAM,mBAwDhB"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @param {Uint8Array|Uint16Array|Uint32Array} row
3
+ * @param {number} stride
4
+ */
1
5
  function decodeRowAcc(row, stride) {
2
6
  let length = row.length - stride;
3
7
  let offset = 0;
@@ -9,6 +13,11 @@ function decodeRowAcc(row, stride) {
9
13
  length -= stride;
10
14
  } while (length > 0);
11
15
  }
16
+ /**
17
+ * @param {Uint8Array} row
18
+ * @param {number} stride
19
+ * @param {number} bytesPerSample
20
+ */
12
21
  function decodeRowFloatingPoint(row, stride, bytesPerSample) {
13
22
  let index = 0;
14
23
  let count = row.length;
@@ -27,6 +36,15 @@ function decodeRowFloatingPoint(row, stride, bytesPerSample) {
27
36
  }
28
37
  }
29
38
  }
39
+ /**
40
+ * @param {ArrayBufferLike} block
41
+ * @param {number} predictor
42
+ * @param {number} width
43
+ * @param {number} height
44
+ * @param {number[]} bitsPerSample
45
+ * @param {number} planarConfiguration
46
+ * @returns
47
+ */
30
48
  export function applyPredictor(block, predictor, width, height, bitsPerSample, planarConfiguration) {
31
49
  if (!predictor || predictor === 1) {
32
50
  return block;
@@ -70,3 +88,4 @@ export function applyPredictor(block, predictor, width, height, bitsPerSample, p
70
88
  }
71
89
  return block;
72
90
  }
91
+ //# sourceMappingURL=predictor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predictor.js","sourceRoot":"","sources":["../src/predictor.js"],"names":[],"mappings":"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"}