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.
- package/dist-browser/geotiff.js +3 -3
- package/dist-browser/geotiff.js.map +1 -1
- package/dist-module/compression/basedecoder.d.ts +30 -4
- package/dist-module/compression/basedecoder.d.ts.map +1 -1
- package/dist-module/compression/basedecoder.js +22 -1
- package/dist-module/compression/basedecoder.js.map +1 -0
- package/dist-module/compression/deflate.d.ts +2 -1
- package/dist-module/compression/deflate.d.ts.map +1 -1
- package/dist-module/compression/deflate.js +2 -0
- package/dist-module/compression/deflate.js.map +1 -0
- package/dist-module/compression/index.d.ts +14 -22
- package/dist-module/compression/index.d.ts.map +1 -1
- package/dist-module/compression/index.js +36 -25
- package/dist-module/compression/index.js.map +1 -0
- package/dist-module/compression/jpeg.d.ts +55 -15
- package/dist-module/compression/jpeg.d.ts.map +1 -1
- package/dist-module/compression/jpeg.js +187 -16
- package/dist-module/compression/jpeg.js.map +1 -0
- package/dist-module/compression/lerc.d.ts +11 -1
- package/dist-module/compression/lerc.d.ts.map +1 -1
- package/dist-module/compression/lerc.js +16 -4
- package/dist-module/compression/lerc.js.map +1 -0
- package/dist-module/compression/lzw.d.ts +2 -1
- package/dist-module/compression/lzw.d.ts.map +1 -1
- package/dist-module/compression/lzw.js +29 -1
- package/dist-module/compression/lzw.js.map +1 -0
- package/dist-module/compression/packbits.d.ts +2 -1
- package/dist-module/compression/packbits.d.ts.map +1 -1
- package/dist-module/compression/packbits.js +2 -0
- package/dist-module/compression/packbits.js.map +1 -0
- package/dist-module/compression/raw.d.ts +2 -1
- package/dist-module/compression/raw.d.ts.map +1 -1
- package/dist-module/compression/raw.js +2 -0
- package/dist-module/compression/raw.js.map +1 -0
- package/dist-module/compression/webimage.d.ts +2 -1
- package/dist-module/compression/webimage.d.ts.map +1 -1
- package/dist-module/compression/webimage.js +5 -0
- package/dist-module/compression/webimage.js.map +1 -0
- package/dist-module/compression/zstd.d.ts +4 -2
- package/dist-module/compression/zstd.d.ts.map +1 -1
- package/dist-module/compression/zstd.js +3 -1
- package/dist-module/compression/zstd.js.map +1 -0
- package/dist-module/dataslice.d.ts +78 -22
- package/dist-module/dataslice.d.ts.map +1 -1
- package/dist-module/dataslice.js +57 -1
- package/dist-module/dataslice.js.map +1 -0
- package/dist-module/dataview64.d.ts +71 -14
- package/dist-module/dataview64.d.ts.map +1 -1
- package/dist-module/dataview64.js +58 -1
- package/dist-module/dataview64.js.map +1 -0
- package/dist-module/geotiff.d.ts +61 -12
- package/dist-module/geotiff.d.ts.map +1 -1
- package/dist-module/geotiff.js +73 -14
- package/dist-module/geotiff.js.map +1 -0
- package/dist-module/geotiffimage.d.ts +41 -15
- package/dist-module/geotiffimage.d.ts.map +1 -1
- package/dist-module/geotiffimage.js +132 -52
- package/dist-module/geotiffimage.js.map +1 -0
- package/dist-module/geotiffwriter.d.ts +28 -1
- package/dist-module/geotiffwriter.d.ts.map +1 -1
- package/dist-module/geotiffwriter.js +206 -84
- package/dist-module/geotiffwriter.js.map +1 -0
- package/dist-module/globals.d.ts +912 -92
- package/dist-module/globals.d.ts.map +1 -1
- package/dist-module/globals.js +201 -227
- package/dist-module/globals.js.map +1 -0
- package/dist-module/imagefiledirectory.d.ts +72 -19
- package/dist-module/imagefiledirectory.d.ts.map +1 -1
- package/dist-module/imagefiledirectory.js +51 -26
- package/dist-module/imagefiledirectory.js.map +1 -0
- package/dist-module/logging.d.ts +36 -10
- package/dist-module/logging.d.ts.map +1 -1
- package/dist-module/logging.js +16 -2
- package/dist-module/logging.js.map +1 -0
- package/dist-module/pool.d.ts +15 -8
- package/dist-module/pool.d.ts.map +1 -1
- package/dist-module/pool.js +11 -3
- package/dist-module/pool.js.map +1 -0
- package/dist-module/predictor.d.ts +10 -1
- package/dist-module/predictor.d.ts.map +1 -1
- package/dist-module/predictor.js +19 -0
- package/dist-module/predictor.js.map +1 -0
- package/dist-module/resample.d.ts.map +1 -1
- package/dist-module/resample.js +12 -0
- package/dist-module/resample.js.map +1 -0
- package/dist-module/rgb.js +1 -0
- package/dist-module/rgb.js.map +1 -0
- package/dist-module/source/arraybuffer.d.ts +7 -4
- package/dist-module/source/arraybuffer.d.ts.map +1 -1
- package/dist-module/source/arraybuffer.js +15 -1
- package/dist-module/source/arraybuffer.js.map +1 -0
- package/dist-module/source/basesource.d.ts +11 -6
- package/dist-module/source/basesource.d.ts.map +1 -1
- package/dist-module/source/basesource.js +7 -4
- package/dist-module/source/basesource.js.map +1 -0
- package/dist-module/source/blockedsource.d.ts +2 -2
- package/dist-module/source/blockedsource.d.ts.map +1 -1
- package/dist-module/source/blockedsource.js +8 -5
- package/dist-module/source/blockedsource.js.map +1 -0
- package/dist-module/source/client/base.d.ts +8 -7
- package/dist-module/source/client/base.d.ts.map +1 -1
- package/dist-module/source/client/base.js +7 -5
- package/dist-module/source/client/base.js.map +1 -0
- package/dist-module/source/client/fetch.d.ts +6 -2
- package/dist-module/source/client/fetch.d.ts.map +1 -1
- package/dist-module/source/client/fetch.js +7 -2
- package/dist-module/source/client/fetch.js.map +1 -0
- package/dist-module/source/client/http.d.ts +27 -5
- package/dist-module/source/client/http.d.ts.map +1 -1
- package/dist-module/source/client/http.js +16 -2
- package/dist-module/source/client/http.js.map +1 -0
- package/dist-module/source/client/xhr.d.ts +22 -3
- package/dist-module/source/client/xhr.d.ts.map +1 -1
- package/dist-module/source/client/xhr.js +12 -2
- package/dist-module/source/client/xhr.js.map +1 -0
- package/dist-module/source/file.d.ts +8 -5
- package/dist-module/source/file.d.ts.map +1 -1
- package/dist-module/source/file.js +40 -8
- package/dist-module/source/file.js.map +1 -0
- package/dist-module/source/filereader.d.ts +12 -4
- package/dist-module/source/filereader.d.ts.map +1 -1
- package/dist-module/source/filereader.js +15 -2
- package/dist-module/source/filereader.js.map +1 -0
- package/dist-module/source/httputils.d.ts +16 -9
- package/dist-module/source/httputils.d.ts.map +1 -1
- package/dist-module/source/httputils.js +19 -12
- package/dist-module/source/httputils.js.map +1 -0
- package/dist-module/source/remote.d.ts.map +1 -1
- package/dist-module/source/remote.js +19 -7
- package/dist-module/source/remote.js.map +1 -0
- package/dist-module/utils.d.ts +36 -41
- package/dist-module/utils.d.ts.map +1 -1
- package/dist-module/utils.js +17 -12
- package/dist-module/utils.js.map +1 -0
- package/dist-module/worker/create.js +1 -1
- package/dist-module/worker/create.js.map +1 -0
- package/dist-module/worker/decoder.d.ts +2 -0
- package/dist-module/worker/decoder.d.ts.map +1 -0
- package/dist-module/worker/decoder.js +21 -0
- package/dist-module/worker/decoder.js.map +1 -0
- package/dist-node/compression/basedecoder.d.ts +30 -4
- package/dist-node/compression/basedecoder.d.ts.map +1 -1
- package/dist-node/compression/basedecoder.js +22 -1
- package/dist-node/compression/basedecoder.js.map +1 -1
- package/dist-node/compression/deflate.d.ts +2 -1
- package/dist-node/compression/deflate.d.ts.map +1 -1
- package/dist-node/compression/deflate.js +2 -0
- package/dist-node/compression/deflate.js.map +1 -1
- package/dist-node/compression/index.d.ts +14 -22
- package/dist-node/compression/index.d.ts.map +1 -1
- package/dist-node/compression/index.js +36 -25
- package/dist-node/compression/index.js.map +1 -1
- package/dist-node/compression/jpeg.d.ts +55 -16
- package/dist-node/compression/jpeg.d.ts.map +1 -1
- package/dist-node/compression/jpeg.js +187 -16
- package/dist-node/compression/jpeg.js.map +1 -1
- package/dist-node/compression/lerc.d.ts +11 -1
- package/dist-node/compression/lerc.d.ts.map +1 -1
- package/dist-node/compression/lerc.js +16 -4
- package/dist-node/compression/lerc.js.map +1 -1
- package/dist-node/compression/lzw.d.ts +2 -1
- package/dist-node/compression/lzw.d.ts.map +1 -1
- package/dist-node/compression/lzw.js +29 -1
- package/dist-node/compression/lzw.js.map +1 -1
- package/dist-node/compression/packbits.d.ts +2 -1
- package/dist-node/compression/packbits.d.ts.map +1 -1
- package/dist-node/compression/packbits.js +2 -0
- package/dist-node/compression/packbits.js.map +1 -1
- package/dist-node/compression/raw.d.ts +2 -1
- package/dist-node/compression/raw.d.ts.map +1 -1
- package/dist-node/compression/raw.js +2 -0
- package/dist-node/compression/raw.js.map +1 -1
- package/dist-node/compression/webimage.d.ts +2 -2
- package/dist-node/compression/webimage.d.ts.map +1 -1
- package/dist-node/compression/webimage.js +5 -0
- package/dist-node/compression/webimage.js.map +1 -1
- package/dist-node/compression/zstd.d.ts +2 -1
- package/dist-node/compression/zstd.d.ts.map +1 -1
- package/dist-node/compression/zstd.js +3 -1
- package/dist-node/compression/zstd.js.map +1 -1
- package/dist-node/dataslice.d.ts +78 -22
- package/dist-node/dataslice.d.ts.map +1 -1
- package/dist-node/dataslice.js +57 -1
- package/dist-node/dataslice.js.map +1 -1
- package/dist-node/dataview64.d.ts +71 -14
- package/dist-node/dataview64.d.ts.map +1 -1
- package/dist-node/dataview64.js +58 -1
- package/dist-node/dataview64.js.map +1 -1
- package/dist-node/geotiff.d.ts +61 -12
- package/dist-node/geotiff.d.ts.map +1 -1
- package/dist-node/geotiff.js +75 -15
- package/dist-node/geotiff.js.map +1 -1
- package/dist-node/geotiffimage.d.ts +41 -15
- package/dist-node/geotiffimage.d.ts.map +1 -1
- package/dist-node/geotiffimage.js +132 -52
- package/dist-node/geotiffimage.js.map +1 -1
- package/dist-node/geotiffwriter.d.ts +28 -1
- package/dist-node/geotiffwriter.d.ts.map +1 -1
- package/dist-node/geotiffwriter.js +206 -84
- package/dist-node/geotiffwriter.js.map +1 -1
- package/dist-node/globals.d.ts +910 -90
- package/dist-node/globals.d.ts.map +1 -1
- package/dist-node/globals.js +202 -228
- package/dist-node/globals.js.map +1 -1
- package/dist-node/imagefiledirectory.d.ts +72 -19
- package/dist-node/imagefiledirectory.d.ts.map +1 -1
- package/dist-node/imagefiledirectory.js +51 -26
- package/dist-node/imagefiledirectory.js.map +1 -1
- package/dist-node/logging.d.ts +36 -10
- package/dist-node/logging.d.ts.map +1 -1
- package/dist-node/logging.js +16 -2
- package/dist-node/logging.js.map +1 -1
- package/dist-node/pool.d.ts +15 -8
- package/dist-node/pool.d.ts.map +1 -1
- package/dist-node/pool.js +11 -3
- package/dist-node/pool.js.map +1 -1
- package/dist-node/predictor.d.ts +10 -1
- package/dist-node/predictor.d.ts.map +1 -1
- package/dist-node/predictor.js +19 -0
- package/dist-node/predictor.js.map +1 -1
- package/dist-node/resample.d.ts.map +1 -1
- package/dist-node/resample.js +12 -0
- package/dist-node/resample.js.map +1 -1
- package/dist-node/rgb.js +1 -0
- package/dist-node/rgb.js.map +1 -1
- package/dist-node/source/arraybuffer.d.ts +7 -4
- package/dist-node/source/arraybuffer.d.ts.map +1 -1
- package/dist-node/source/arraybuffer.js +15 -1
- package/dist-node/source/arraybuffer.js.map +1 -1
- package/dist-node/source/basesource.d.ts +11 -6
- package/dist-node/source/basesource.d.ts.map +1 -1
- package/dist-node/source/basesource.js +7 -4
- package/dist-node/source/basesource.js.map +1 -1
- package/dist-node/source/blockedsource.d.ts +2 -2
- package/dist-node/source/blockedsource.d.ts.map +1 -1
- package/dist-node/source/blockedsource.js +8 -5
- package/dist-node/source/blockedsource.js.map +1 -1
- package/dist-node/source/client/base.d.ts +8 -7
- package/dist-node/source/client/base.d.ts.map +1 -1
- package/dist-node/source/client/base.js +7 -5
- package/dist-node/source/client/base.js.map +1 -1
- package/dist-node/source/client/fetch.d.ts +5 -2
- package/dist-node/source/client/fetch.d.ts.map +1 -1
- package/dist-node/source/client/fetch.js +7 -2
- package/dist-node/source/client/fetch.js.map +1 -1
- package/dist-node/source/client/http.d.ts +22 -4
- package/dist-node/source/client/http.d.ts.map +1 -1
- package/dist-node/source/client/http.js +16 -2
- package/dist-node/source/client/http.js.map +1 -1
- package/dist-node/source/client/xhr.d.ts +23 -3
- package/dist-node/source/client/xhr.d.ts.map +1 -1
- package/dist-node/source/client/xhr.js +12 -2
- package/dist-node/source/client/xhr.js.map +1 -1
- package/dist-node/source/file.d.ts +8 -5
- package/dist-node/source/file.d.ts.map +1 -1
- package/dist-node/source/file.js +40 -8
- package/dist-node/source/file.js.map +1 -1
- package/dist-node/source/filereader.d.ts +12 -4
- package/dist-node/source/filereader.d.ts.map +1 -1
- package/dist-node/source/filereader.js +15 -2
- package/dist-node/source/filereader.js.map +1 -1
- package/dist-node/source/httputils.d.ts +16 -9
- package/dist-node/source/httputils.d.ts.map +1 -1
- package/dist-node/source/httputils.js +19 -12
- package/dist-node/source/httputils.js.map +1 -1
- package/dist-node/source/remote.d.ts.map +1 -1
- package/dist-node/source/remote.js +19 -7
- package/dist-node/source/remote.js.map +1 -1
- package/dist-node/utils.d.ts +9 -8
- package/dist-node/utils.d.ts.map +1 -1
- package/dist-node/utils.js +17 -12
- package/dist-node/utils.js.map +1 -1
- package/dist-node/worker/create.js +1 -1
- package/dist-node/worker/create.js.map +1 -1
- package/dist-node/worker/decoder.d.ts +2 -0
- package/dist-node/worker/decoder.d.ts.map +1 -0
- package/dist-node/worker/decoder.js +24 -0
- package/dist-node/worker/decoder.js.map +1 -0
- 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,
|
|
5
|
-
*
|
|
6
|
-
* @param {Map}
|
|
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<
|
|
10
|
-
actualizedFields: Map<
|
|
11
|
-
deferredFields: Map<
|
|
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<
|
|
15
|
+
deferredArrays: Map<string | number, DeferredArray>;
|
|
14
16
|
nextIFDByteOffset: number;
|
|
15
17
|
/**
|
|
16
|
-
* @
|
|
17
|
-
* @
|
|
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:
|
|
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
|
-
* @
|
|
23
|
-
* @
|
|
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 |
|
|
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
|
-
* @
|
|
30
|
-
* @
|
|
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:
|
|
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<
|
|
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":"
|
|
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,
|
|
221
|
-
*
|
|
222
|
-
* @param {Map}
|
|
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
|
-
* @
|
|
234
|
-
* @
|
|
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
|
-
* @
|
|
243
|
-
* @
|
|
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
|
-
* @
|
|
261
|
-
* @
|
|
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
|
-
|
|
272
|
-
|
|
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
|
-
|
|
289
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist-module/logging.d.ts
CHANGED
|
@@ -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?:
|
|
6
|
-
|
|
7
|
-
export function
|
|
8
|
-
|
|
9
|
-
export function
|
|
10
|
-
|
|
11
|
-
export function
|
|
12
|
-
|
|
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":"
|
|
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"}
|
package/dist-module/logging.js
CHANGED
|
@@ -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"}
|
package/dist-module/pool.d.ts
CHANGED
|
@@ -34,9 +34,12 @@ declare class Pool {
|
|
|
34
34
|
*/
|
|
35
35
|
constructor(size?: number, createWorker?: () => Worker);
|
|
36
36
|
workerWrappers: Promise<WorkerWrapper[]> | null;
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
69
|
+
/** @param {MessageEvent} e */
|
|
70
|
+
_onWorkerMessage(e: MessageEvent): void;
|
|
67
71
|
/**
|
|
68
72
|
* Submit a job to the worker
|
|
69
|
-
* @param {
|
|
70
|
-
* @param {
|
|
71
|
-
* @returns {Promise} a promise that gets resolved/rejected when a message with the same jobId is
|
|
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:
|
|
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":";
|
|
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"}
|
package/dist-module/pool.js
CHANGED
|
@@ -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 {
|
|
48
|
-
* @param {
|
|
49
|
-
* @returns {Promise} a promise that gets resolved/rejected when a message with the same jobId is
|
|
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
|
-
|
|
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":"
|
|
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"}
|
package/dist-module/predictor.js
CHANGED
|
@@ -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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"}
|