@developmentseed/raster-reproject 0.1.0-beta.3 → 0.1.0-beta.6
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/package.json +1 -1
- package/dist/src/affine.d.ts +0 -18
- package/dist/src/affine.d.ts.map +0 -1
- package/dist/src/affine.js +0 -42
- package/dist/src/affine.js.map +0 -1
- package/dist/src/delatin.d.ts +0 -96
- package/dist/src/delatin.d.ts.map +0 -1
- package/dist/src/delatin.js +0 -558
- package/dist/src/delatin.js.map +0 -1
- package/dist/src/index.d.ts +0 -5
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -3
- package/dist/src/index.js.map +0 -1
- package/dist/tests/example.test.d.ts +0 -2
- package/dist/tests/example.test.d.ts.map +0 -1
- package/dist/tests/example.test.js +0 -110
- package/dist/tests/example.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/package.json
CHANGED
package/dist/src/affine.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export type GeoTransform = [number, number, number, number, number, number];
|
|
2
|
-
/**
|
|
3
|
-
* Find the inverse of this GeoTransform.
|
|
4
|
-
*
|
|
5
|
-
* Ported from rasterio/affine:
|
|
6
|
-
* https://github.com/rasterio/affine/blob/a7a916fc7012f8afeb6489246ada61a76ccb8bc7/src/affine.py#L671-L692
|
|
7
|
-
* under the BSD-3-Clause License.
|
|
8
|
-
*
|
|
9
|
-
* @param {GeoTransform} gt Geotransform.
|
|
10
|
-
*
|
|
11
|
-
* @return {GeoTransform} Inverse of the geotransform.
|
|
12
|
-
*/
|
|
13
|
-
export declare function invertGeoTransform(gt: GeoTransform): GeoTransform;
|
|
14
|
-
/**
|
|
15
|
-
* Apply a GeoTransform to a coordinate.
|
|
16
|
-
*/
|
|
17
|
-
export declare function applyAffine(x: number, y: number, gt: [number, number, number, number, number, number]): [number, number];
|
|
18
|
-
//# sourceMappingURL=affine.d.ts.map
|
package/dist/src/affine.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"affine.d.ts","sourceRoot":"","sources":["../../src/affine.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,YAAY,CAgBjE;AAWD;;GAEG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACnD,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlB"}
|
package/dist/src/affine.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Find the inverse of this GeoTransform.
|
|
3
|
-
*
|
|
4
|
-
* Ported from rasterio/affine:
|
|
5
|
-
* https://github.com/rasterio/affine/blob/a7a916fc7012f8afeb6489246ada61a76ccb8bc7/src/affine.py#L671-L692
|
|
6
|
-
* under the BSD-3-Clause License.
|
|
7
|
-
*
|
|
8
|
-
* @param {GeoTransform} gt Geotransform.
|
|
9
|
-
*
|
|
10
|
-
* @return {GeoTransform} Inverse of the geotransform.
|
|
11
|
-
*/
|
|
12
|
-
export function invertGeoTransform(gt) {
|
|
13
|
-
if (isDegenerate(gt)) {
|
|
14
|
-
throw new Error("Cannot invert degenerate transform");
|
|
15
|
-
}
|
|
16
|
-
const idet = 1.0 / determinant(gt);
|
|
17
|
-
const [sa, sb, sc, sd, se, sf] = gt;
|
|
18
|
-
const ra = se * idet;
|
|
19
|
-
const rb = -sb * idet;
|
|
20
|
-
const rd = -sd * idet;
|
|
21
|
-
const re = sa * idet;
|
|
22
|
-
// prettier-ignore
|
|
23
|
-
return [
|
|
24
|
-
ra, rb, -sc * ra - sf * rb,
|
|
25
|
-
rd, re, -sc * rd - sf * re,
|
|
26
|
-
];
|
|
27
|
-
}
|
|
28
|
-
function isDegenerate(gt) {
|
|
29
|
-
return determinant(gt) === 0;
|
|
30
|
-
}
|
|
31
|
-
function determinant(gt) {
|
|
32
|
-
const [a, b, _c, d, e, _f] = gt;
|
|
33
|
-
return a * e - b * d;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Apply a GeoTransform to a coordinate.
|
|
37
|
-
*/
|
|
38
|
-
export function applyAffine(x, y, gt) {
|
|
39
|
-
const [a, b, c, d, e, f] = gt;
|
|
40
|
-
return [a * x + b * y + c, d * x + e * y + f];
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=affine.js.map
|
package/dist/src/affine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"affine.js","sourceRoot":"","sources":["../../src/affine.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAgB;IACjD,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,kBAAkB;IAClB,OAAO;QACH,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QAC1B,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAgB;IACpC,OAAO,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,EAAgB;IACnC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,CAAS,EACT,CAAS,EACT,EAAoD;IAEpD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/src/delatin.d.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Define [**uv coordinates**](https://en.wikipedia.org/wiki/UV_mapping) as a float-valued image-local coordinate space where the top left is `(0, 0)` and the bottom right is `(1, 1)`.
|
|
3
|
-
*
|
|
4
|
-
* Define [**Barycentric coordinates**](https://en.wikipedia.org/wiki/Barycentric_coordinate_system) as float-valued triangle-local coordinates, represented as a 3-tuple of floats, where the tuple must add up to 1. The coordinate represents "how close to each vertex" a point in the interior of a triangle is. I.e. `(0, 0, 1)`, `(0, 1, 0)`, and `(1, 0, 0)` are all valid barycentric coordinates that define one of the three vertices. `(1/3, 1/3, 1/3)` represents the centroid of a triangle. `(1/2, 1/2, 0)` represents a point that is halfway between vertices `a` and `b` and has "none" of vertex `c`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* ## Changes
|
|
8
|
-
*
|
|
9
|
-
* - Delatin coordinates are in terms of pixel space whereas here we use uv space.
|
|
10
|
-
*
|
|
11
|
-
* Originally copied from https://github.com/mapbox/delatin under the ISC
|
|
12
|
-
* license, then subject to further modifications.
|
|
13
|
-
*/
|
|
14
|
-
export interface ReprojectionFns {
|
|
15
|
-
/**
|
|
16
|
-
* Convert from UV coordinates to input CRS coordinates.
|
|
17
|
-
*
|
|
18
|
-
* This is the affine geotransform from the input image.
|
|
19
|
-
*/
|
|
20
|
-
pixelToInputCRS(x: number, y: number): [number, number];
|
|
21
|
-
/**
|
|
22
|
-
* Convert from input CRS coordinates back to UV coordinates.
|
|
23
|
-
*
|
|
24
|
-
* Inverse of the affine geotransform from the input image.
|
|
25
|
-
*/
|
|
26
|
-
inputCRSToPixel(x: number, y: number): [number, number];
|
|
27
|
-
/**
|
|
28
|
-
* Apply the forward projection from input CRS to output CRS.
|
|
29
|
-
*/
|
|
30
|
-
forwardReproject(x: number, y: number): [number, number];
|
|
31
|
-
/**
|
|
32
|
-
* Apply the inverse projection from output CRS back to input CRS.
|
|
33
|
-
*/
|
|
34
|
-
inverseReproject(x: number, y: number): [number, number];
|
|
35
|
-
}
|
|
36
|
-
export declare class RasterReprojector {
|
|
37
|
-
reprojectors: ReprojectionFns;
|
|
38
|
-
width: number;
|
|
39
|
-
height: number;
|
|
40
|
-
/**
|
|
41
|
-
* UV vertex coordinates (x, y), i.e.
|
|
42
|
-
* [x0, y0, x1, y1, ...]
|
|
43
|
-
*
|
|
44
|
-
* These coordinates are floats that range from [0, 1] in both X and Y.
|
|
45
|
-
*/
|
|
46
|
-
uvs: number[];
|
|
47
|
-
/**
|
|
48
|
-
* XY Positions in output CRS, computed via exact forward reprojection.
|
|
49
|
-
*/
|
|
50
|
-
exactOutputPositions: number[];
|
|
51
|
-
/**
|
|
52
|
-
* triangle vertex indices
|
|
53
|
-
*/
|
|
54
|
-
triangles: number[];
|
|
55
|
-
private _halfedges;
|
|
56
|
-
/**
|
|
57
|
-
* The UV texture coordinates of candidates found from
|
|
58
|
-
* `findReprojectionCandidate`.
|
|
59
|
-
*
|
|
60
|
-
* Maybe in the future we'll want to store the barycentric coordinates instead
|
|
61
|
-
* of just the uv coordinates?
|
|
62
|
-
*/
|
|
63
|
-
private _candidatesUV;
|
|
64
|
-
private _queueIndices;
|
|
65
|
-
private _queue;
|
|
66
|
-
private _errors;
|
|
67
|
-
private _pending;
|
|
68
|
-
private _pendingLen;
|
|
69
|
-
constructor(reprojectors: ReprojectionFns, width: number, height?: number);
|
|
70
|
-
run(maxError?: number): void;
|
|
71
|
-
refine(): void;
|
|
72
|
-
getMaxError(): number;
|
|
73
|
-
private _flush;
|
|
74
|
-
/**
|
|
75
|
-
* Conversion of upstream's `_findCandidate` for reprojection error handling.
|
|
76
|
-
*
|
|
77
|
-
* @param {number} t The index (into `this.triangles`) of the pending triangle to process.
|
|
78
|
-
*
|
|
79
|
-
* @return {void} Doesn't return; instead modifies internal state.
|
|
80
|
-
*/
|
|
81
|
-
private _findReprojectionCandidate;
|
|
82
|
-
private _step;
|
|
83
|
-
private _addPoint;
|
|
84
|
-
_addTriangle(a: number, b: number, c: number, ab: number, bc: number, ca: number, e?: number): number;
|
|
85
|
-
private _legalize;
|
|
86
|
-
private _handleCollinear;
|
|
87
|
-
private _queuePush;
|
|
88
|
-
private _queuePop;
|
|
89
|
-
private _queuePopBack;
|
|
90
|
-
private _queueRemove;
|
|
91
|
-
private _queueLess;
|
|
92
|
-
private _queueSwap;
|
|
93
|
-
private _queueUp;
|
|
94
|
-
private _queueDown;
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=delatin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delatin.d.ts","sourceRoot":"","sources":["../../src/delatin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExD;;;;OAIG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExD;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzD;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1D;AAED,qBAAa,iBAAiB;IAC5B,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,GAAG,EAAE,MAAM,EAAE,CAAC;IAEd;;OAEG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAE/B;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,OAAO,CAAC,UAAU,CAAW;IAE7B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,aAAa,CAAW;IAEhC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAG1B,YAAY,EAAE,eAAe,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAc;IAoCxB,GAAG,CAAC,QAAQ,GAAE,MAAU,GAAG,IAAI;IAO/B,MAAM,IAAI,IAAI;IAMd,WAAW,IAAI,MAAM;IAKrB,OAAO,CAAC,MAAM;IA4Gd;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IA6HlC,OAAO,CAAC,KAAK;IA6Cb,OAAO,CAAC,SAAS;IAqBjB,YAAY,CACV,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,CAAC,GAAE,MAA8B;IAqCnC,OAAO,CAAC,SAAS;IAiEjB,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,UAAU;CAoBnB"}
|
package/dist/src/delatin.js
DELETED
|
@@ -1,558 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Define [**uv coordinates**](https://en.wikipedia.org/wiki/UV_mapping) as a float-valued image-local coordinate space where the top left is `(0, 0)` and the bottom right is `(1, 1)`.
|
|
3
|
-
*
|
|
4
|
-
* Define [**Barycentric coordinates**](https://en.wikipedia.org/wiki/Barycentric_coordinate_system) as float-valued triangle-local coordinates, represented as a 3-tuple of floats, where the tuple must add up to 1. The coordinate represents "how close to each vertex" a point in the interior of a triangle is. I.e. `(0, 0, 1)`, `(0, 1, 0)`, and `(1, 0, 0)` are all valid barycentric coordinates that define one of the three vertices. `(1/3, 1/3, 1/3)` represents the centroid of a triangle. `(1/2, 1/2, 0)` represents a point that is halfway between vertices `a` and `b` and has "none" of vertex `c`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* ## Changes
|
|
8
|
-
*
|
|
9
|
-
* - Delatin coordinates are in terms of pixel space whereas here we use uv space.
|
|
10
|
-
*
|
|
11
|
-
* Originally copied from https://github.com/mapbox/delatin under the ISC
|
|
12
|
-
* license, then subject to further modifications.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Barycentric sample points in uv space for where to sample reprojection
|
|
16
|
-
* errors.
|
|
17
|
-
*/
|
|
18
|
-
// TODO: Increase sampling density if uv area is large
|
|
19
|
-
// Note: these sample points should never be an existing vertex (that is, no
|
|
20
|
-
// vertex of a sample point should ever be `1`, such as `(0,0,1)`, because that
|
|
21
|
-
// would try to sample exactly at an existing triangle vertex).
|
|
22
|
-
const SAMPLE_POINTS = [
|
|
23
|
-
[1 / 3, 1 / 3, 1 / 3], // centroid
|
|
24
|
-
[0.5, 0.5, 0], // edge 0–1
|
|
25
|
-
[0.5, 0, 0.5], // edge 0–2
|
|
26
|
-
[0, 0.5, 0.5], // edge 1–2
|
|
27
|
-
];
|
|
28
|
-
export class RasterReprojector {
|
|
29
|
-
reprojectors;
|
|
30
|
-
width;
|
|
31
|
-
height;
|
|
32
|
-
/**
|
|
33
|
-
* UV vertex coordinates (x, y), i.e.
|
|
34
|
-
* [x0, y0, x1, y1, ...]
|
|
35
|
-
*
|
|
36
|
-
* These coordinates are floats that range from [0, 1] in both X and Y.
|
|
37
|
-
*/
|
|
38
|
-
uvs;
|
|
39
|
-
/**
|
|
40
|
-
* XY Positions in output CRS, computed via exact forward reprojection.
|
|
41
|
-
*/
|
|
42
|
-
exactOutputPositions;
|
|
43
|
-
/**
|
|
44
|
-
* triangle vertex indices
|
|
45
|
-
*/
|
|
46
|
-
triangles;
|
|
47
|
-
_halfedges;
|
|
48
|
-
/**
|
|
49
|
-
* The UV texture coordinates of candidates found from
|
|
50
|
-
* `findReprojectionCandidate`.
|
|
51
|
-
*
|
|
52
|
-
* Maybe in the future we'll want to store the barycentric coordinates instead
|
|
53
|
-
* of just the uv coordinates?
|
|
54
|
-
*/
|
|
55
|
-
_candidatesUV;
|
|
56
|
-
_queueIndices;
|
|
57
|
-
_queue;
|
|
58
|
-
_errors;
|
|
59
|
-
_pending;
|
|
60
|
-
_pendingLen;
|
|
61
|
-
constructor(reprojectors, width, height = width) {
|
|
62
|
-
this.reprojectors = reprojectors;
|
|
63
|
-
this.width = width;
|
|
64
|
-
this.height = height;
|
|
65
|
-
this.uvs = []; // vertex coordinates (x, y)
|
|
66
|
-
this.exactOutputPositions = [];
|
|
67
|
-
this.triangles = []; // mesh triangle indices
|
|
68
|
-
// additional triangle data
|
|
69
|
-
this._halfedges = [];
|
|
70
|
-
this._candidatesUV = [];
|
|
71
|
-
this._queueIndices = [];
|
|
72
|
-
this._queue = []; // queue of added triangles
|
|
73
|
-
this._errors = [];
|
|
74
|
-
this._pending = []; // triangles pending addition to queue
|
|
75
|
-
this._pendingLen = 0;
|
|
76
|
-
// The two initial triangles cover the entire input texture in UV space, so
|
|
77
|
-
// they range from [0, 0] to [1, 1] in u and v.
|
|
78
|
-
const u1 = 1;
|
|
79
|
-
const v1 = 1;
|
|
80
|
-
const p0 = this._addPoint(0, 0);
|
|
81
|
-
const p1 = this._addPoint(u1, 0);
|
|
82
|
-
const p2 = this._addPoint(0, v1);
|
|
83
|
-
const p3 = this._addPoint(u1, v1);
|
|
84
|
-
// add initial two triangles
|
|
85
|
-
const t0 = this._addTriangle(p3, p0, p2, -1, -1, -1);
|
|
86
|
-
this._addTriangle(p0, p3, p1, t0, -1, -1);
|
|
87
|
-
this._flush();
|
|
88
|
-
}
|
|
89
|
-
// refine the mesh until its maximum error gets below the given one
|
|
90
|
-
run(maxError = 1) {
|
|
91
|
-
while (this.getMaxError() > maxError) {
|
|
92
|
-
this.refine();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// refine the mesh with a single point
|
|
96
|
-
refine() {
|
|
97
|
-
this._step();
|
|
98
|
-
this._flush();
|
|
99
|
-
}
|
|
100
|
-
// max error of the current mesh
|
|
101
|
-
getMaxError() {
|
|
102
|
-
return this._errors[0];
|
|
103
|
-
}
|
|
104
|
-
// rasterize and queue all triangles that got added or updated in _step
|
|
105
|
-
_flush() {
|
|
106
|
-
for (let i = 0; i < this._pendingLen; i++) {
|
|
107
|
-
const t = this._pending[i];
|
|
108
|
-
this._findReprojectionCandidate(t);
|
|
109
|
-
}
|
|
110
|
-
this._pendingLen = 0;
|
|
111
|
-
}
|
|
112
|
-
// Original, upstream implementation of FindCandidate:
|
|
113
|
-
// // rasterize a triangle, find its max error, and queue it for processing
|
|
114
|
-
// private _findCandidate(
|
|
115
|
-
// p0x: number,
|
|
116
|
-
// p0y: number,
|
|
117
|
-
// p1x: number,
|
|
118
|
-
// p1y: number,
|
|
119
|
-
// p2x: number,
|
|
120
|
-
// p2y: number,
|
|
121
|
-
// t: number,
|
|
122
|
-
// ) {
|
|
123
|
-
// // triangle bounding box
|
|
124
|
-
// const minX = Math.min(p0x, p1x, p2x);
|
|
125
|
-
// const minY = Math.min(p0y, p1y, p2y);
|
|
126
|
-
// const maxX = Math.max(p0x, p1x, p2x);
|
|
127
|
-
// const maxY = Math.max(p0y, p1y, p2y);
|
|
128
|
-
// // forward differencing variables
|
|
129
|
-
// let w00 = orient(p1x, p1y, p2x, p2y, minX, minY);
|
|
130
|
-
// let w01 = orient(p2x, p2y, p0x, p0y, minX, minY);
|
|
131
|
-
// let w02 = orient(p0x, p0y, p1x, p1y, minX, minY);
|
|
132
|
-
// const a01 = p1y - p0y;
|
|
133
|
-
// const b01 = p0x - p1x;
|
|
134
|
-
// const a12 = p2y - p1y;
|
|
135
|
-
// const b12 = p1x - p2x;
|
|
136
|
-
// const a20 = p0y - p2y;
|
|
137
|
-
// const b20 = p2x - p0x;
|
|
138
|
-
// // pre-multiplied z values at vertices
|
|
139
|
-
// const a = orient(p0x, p0y, p1x, p1y, p2x, p2y);
|
|
140
|
-
// const z0 = this.heightAt(p0x, p0y) / a;
|
|
141
|
-
// const z1 = this.heightAt(p1x, p1y) / a;
|
|
142
|
-
// const z2 = this.heightAt(p2x, p2y) / a;
|
|
143
|
-
// // iterate over pixels in bounding box
|
|
144
|
-
// let maxError = 0;
|
|
145
|
-
// let mx = 0;
|
|
146
|
-
// let my = 0;
|
|
147
|
-
// for (let y = minY; y <= maxY; y++) {
|
|
148
|
-
// // compute starting offset
|
|
149
|
-
// let dx = 0;
|
|
150
|
-
// if (w00 < 0 && a12 !== 0) {
|
|
151
|
-
// dx = Math.max(dx, Math.floor(-w00 / a12));
|
|
152
|
-
// }
|
|
153
|
-
// if (w01 < 0 && a20 !== 0) {
|
|
154
|
-
// dx = Math.max(dx, Math.floor(-w01 / a20));
|
|
155
|
-
// }
|
|
156
|
-
// if (w02 < 0 && a01 !== 0) {
|
|
157
|
-
// dx = Math.max(dx, Math.floor(-w02 / a01));
|
|
158
|
-
// }
|
|
159
|
-
// let w0 = w00 + a12 * dx;
|
|
160
|
-
// let w1 = w01 + a20 * dx;
|
|
161
|
-
// let w2 = w02 + a01 * dx;
|
|
162
|
-
// let wasInside = false;
|
|
163
|
-
// for (let x = minX + dx; x <= maxX; x++) {
|
|
164
|
-
// // check if inside triangle
|
|
165
|
-
// if (w0 >= 0 && w1 >= 0 && w2 >= 0) {
|
|
166
|
-
// wasInside = true;
|
|
167
|
-
// // compute z using barycentric coordinates
|
|
168
|
-
// const z = z0 * w0 + z1 * w1 + z2 * w2;
|
|
169
|
-
// const dz = Math.abs(z - this.heightAt(x, y));
|
|
170
|
-
// if (dz > maxError) {
|
|
171
|
-
// maxError = dz;
|
|
172
|
-
// mx = x;
|
|
173
|
-
// my = y;
|
|
174
|
-
// }
|
|
175
|
-
// } else if (wasInside) {
|
|
176
|
-
// break;
|
|
177
|
-
// }
|
|
178
|
-
// w0 += a12;
|
|
179
|
-
// w1 += a20;
|
|
180
|
-
// w2 += a01;
|
|
181
|
-
// }
|
|
182
|
-
// w00 += b12;
|
|
183
|
-
// w01 += b20;
|
|
184
|
-
// w02 += b01;
|
|
185
|
-
// }
|
|
186
|
-
// if (
|
|
187
|
-
// (mx === p0x && my === p0y) ||
|
|
188
|
-
// (mx === p1x && my === p1y) ||
|
|
189
|
-
// (mx === p2x && my === p2y)
|
|
190
|
-
// ) {
|
|
191
|
-
// maxError = 0;
|
|
192
|
-
// }
|
|
193
|
-
// // update triangle metadata
|
|
194
|
-
// this._candidatesUV[2 * t] = mx;
|
|
195
|
-
// this._candidatesUV[2 * t + 1] = my;
|
|
196
|
-
// // add triangle to priority queue
|
|
197
|
-
// this._queuePush(t, maxError);
|
|
198
|
-
// }
|
|
199
|
-
/**
|
|
200
|
-
* Conversion of upstream's `_findCandidate` for reprojection error handling.
|
|
201
|
-
*
|
|
202
|
-
* @param {number} t The index (into `this.triangles`) of the pending triangle to process.
|
|
203
|
-
*
|
|
204
|
-
* @return {void} Doesn't return; instead modifies internal state.
|
|
205
|
-
*/
|
|
206
|
-
_findReprojectionCandidate(t) {
|
|
207
|
-
// Find the three vertices of this triangle
|
|
208
|
-
const a = 2 * this.triangles[t * 3 + 0];
|
|
209
|
-
const b = 2 * this.triangles[t * 3 + 1];
|
|
210
|
-
const c = 2 * this.triangles[t * 3 + 2];
|
|
211
|
-
// Get the UV coordinates of each vertex
|
|
212
|
-
const p0u = this.uvs[a];
|
|
213
|
-
const p0v = this.uvs[a + 1];
|
|
214
|
-
const p1u = this.uvs[b];
|
|
215
|
-
const p1v = this.uvs[b + 1];
|
|
216
|
-
const p2u = this.uvs[c];
|
|
217
|
-
const p2v = this.uvs[c + 1];
|
|
218
|
-
// Get the **known** output CRS positions of each vertex
|
|
219
|
-
const out0x = this.exactOutputPositions[a];
|
|
220
|
-
const out0y = this.exactOutputPositions[a + 1];
|
|
221
|
-
const out1x = this.exactOutputPositions[b];
|
|
222
|
-
const out1y = this.exactOutputPositions[b + 1];
|
|
223
|
-
const out2x = this.exactOutputPositions[c];
|
|
224
|
-
const out2y = this.exactOutputPositions[c + 1];
|
|
225
|
-
// A running tally of the maximum pixel error of each of our candidate
|
|
226
|
-
// points
|
|
227
|
-
let maxError = 0;
|
|
228
|
-
// The point in uv coordinates that produced the max error
|
|
229
|
-
// Note that upstream also initializes the point of max error to [0, 0]
|
|
230
|
-
let maxErrorU = 0;
|
|
231
|
-
let maxErrorV = 0;
|
|
232
|
-
// Recall that the sample point is in barycentric coordinates
|
|
233
|
-
for (const samplePoint of SAMPLE_POINTS) {
|
|
234
|
-
// Get the UV coordinates of the sample point
|
|
235
|
-
const uvSampleU = barycentricMix(p0u, p1u, p2u, samplePoint[0], samplePoint[1], samplePoint[2]);
|
|
236
|
-
const uvSampleV = barycentricMix(p0v, p1v, p2v, samplePoint[0], samplePoint[1], samplePoint[2]);
|
|
237
|
-
// Get the output CRS coordinates of the sample point by bilinear
|
|
238
|
-
// interpolation
|
|
239
|
-
const outSampleX = barycentricMix(out0x, out1x, out2x, samplePoint[0], samplePoint[1], samplePoint[2]);
|
|
240
|
-
const outSampleY = barycentricMix(out0y, out1y, out2y, samplePoint[0], samplePoint[1], samplePoint[2]);
|
|
241
|
-
// Convert uv to pixel space
|
|
242
|
-
const pixelExactX = uvSampleU * (this.width - 1);
|
|
243
|
-
const pixelExactY = uvSampleV * (this.height - 1);
|
|
244
|
-
// Reproject these linearly-interpolated coordinates **from target CRS
|
|
245
|
-
// to input CRS**. This gives us the **exact position in input space**
|
|
246
|
-
// of the linearly interpolated sample point in output space.
|
|
247
|
-
const inputCRSSampled = this.reprojectors.inverseReproject(outSampleX, outSampleY);
|
|
248
|
-
// Find the pixel coordinates of the sampled point by using the inverse
|
|
249
|
-
// geotransform.
|
|
250
|
-
const pixelSampled = this.reprojectors.inputCRSToPixel(inputCRSSampled[0], inputCRSSampled[1]);
|
|
251
|
-
// 4. error in pixel space
|
|
252
|
-
const dx = pixelExactX - pixelSampled[0];
|
|
253
|
-
const dy = pixelExactY - pixelSampled[1];
|
|
254
|
-
const err = Math.hypot(dx, dy);
|
|
255
|
-
if (err > maxError) {
|
|
256
|
-
maxError = err;
|
|
257
|
-
maxErrorU = uvSampleU;
|
|
258
|
-
maxErrorV = uvSampleV;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
//////
|
|
262
|
-
// Now we can resume with code from upstream's `_findCandidate` that
|
|
263
|
-
// modifies the internal state of what triangles to subdivide.
|
|
264
|
-
// Check that the max error point is not one of the existing triangle
|
|
265
|
-
// vertices
|
|
266
|
-
// TODO: perhaps we should use float precision epsilon here?
|
|
267
|
-
if ((maxErrorU === p0u && maxErrorV === p0v) ||
|
|
268
|
-
(maxErrorU === p1u && maxErrorV === p1v) ||
|
|
269
|
-
(maxErrorU === p2u && maxErrorV === p2v)) {
|
|
270
|
-
maxError = 0;
|
|
271
|
-
}
|
|
272
|
-
// update triangle metadata
|
|
273
|
-
this._candidatesUV[2 * t] = maxErrorU;
|
|
274
|
-
this._candidatesUV[2 * t + 1] = maxErrorV;
|
|
275
|
-
// add triangle to priority queue
|
|
276
|
-
this._queuePush(t, maxError);
|
|
277
|
-
}
|
|
278
|
-
// process the next triangle in the queue, splitting it with a new point
|
|
279
|
-
_step() {
|
|
280
|
-
// pop triangle with highest error from priority queue
|
|
281
|
-
const t = this._queuePop();
|
|
282
|
-
const e0 = t * 3 + 0;
|
|
283
|
-
const e1 = t * 3 + 1;
|
|
284
|
-
const e2 = t * 3 + 2;
|
|
285
|
-
const p0 = this.triangles[e0];
|
|
286
|
-
const p1 = this.triangles[e1];
|
|
287
|
-
const p2 = this.triangles[e2];
|
|
288
|
-
const au = this.uvs[2 * p0];
|
|
289
|
-
const av = this.uvs[2 * p0 + 1];
|
|
290
|
-
const bu = this.uvs[2 * p1];
|
|
291
|
-
const bv = this.uvs[2 * p1 + 1];
|
|
292
|
-
const cu = this.uvs[2 * p2];
|
|
293
|
-
const cv = this.uvs[2 * p2 + 1];
|
|
294
|
-
const pu = this._candidatesUV[2 * t];
|
|
295
|
-
const pv = this._candidatesUV[2 * t + 1];
|
|
296
|
-
const pn = this._addPoint(pu, pv);
|
|
297
|
-
if (orient(au, av, bu, bv, pu, pv) === 0) {
|
|
298
|
-
this._handleCollinear(pn, e0);
|
|
299
|
-
}
|
|
300
|
-
else if (orient(bu, bv, cu, cv, pu, pv) === 0) {
|
|
301
|
-
this._handleCollinear(pn, e1);
|
|
302
|
-
}
|
|
303
|
-
else if (orient(cu, cv, au, av, pu, pv) === 0) {
|
|
304
|
-
this._handleCollinear(pn, e2);
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
const h0 = this._halfedges[e0];
|
|
308
|
-
const h1 = this._halfedges[e1];
|
|
309
|
-
const h2 = this._halfedges[e2];
|
|
310
|
-
const t0 = this._addTriangle(p0, p1, pn, h0, -1, -1, e0);
|
|
311
|
-
const t1 = this._addTriangle(p1, p2, pn, h1, -1, t0 + 1);
|
|
312
|
-
const t2 = this._addTriangle(p2, p0, pn, h2, t0 + 2, t1 + 1);
|
|
313
|
-
this._legalize(t0);
|
|
314
|
-
this._legalize(t1);
|
|
315
|
-
this._legalize(t2);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
// add coordinates for a new vertex
|
|
319
|
-
_addPoint(u, v) {
|
|
320
|
-
const i = this.uvs.length >> 1;
|
|
321
|
-
this.uvs.push(u, v);
|
|
322
|
-
// compute and store exact output position via reprojection
|
|
323
|
-
const pixelX = u * (this.width - 1);
|
|
324
|
-
const pixelY = v * (this.height - 1);
|
|
325
|
-
const inputPosition = this.reprojectors.pixelToInputCRS(pixelX, pixelY);
|
|
326
|
-
const exactOutputPosition = this.reprojectors.forwardReproject(inputPosition[0], inputPosition[1]);
|
|
327
|
-
this.exactOutputPositions.push(exactOutputPosition[0], exactOutputPosition[1]);
|
|
328
|
-
return i;
|
|
329
|
-
}
|
|
330
|
-
// add or update a triangle in the mesh
|
|
331
|
-
_addTriangle(a, b, c, ab, bc, ca, e = this.triangles.length) {
|
|
332
|
-
const t = e / 3; // new triangle index
|
|
333
|
-
// add triangle vertices
|
|
334
|
-
this.triangles[e + 0] = a;
|
|
335
|
-
this.triangles[e + 1] = b;
|
|
336
|
-
this.triangles[e + 2] = c;
|
|
337
|
-
// add triangle halfedges
|
|
338
|
-
this._halfedges[e + 0] = ab;
|
|
339
|
-
this._halfedges[e + 1] = bc;
|
|
340
|
-
this._halfedges[e + 2] = ca;
|
|
341
|
-
// link neighboring halfedges
|
|
342
|
-
if (ab >= 0) {
|
|
343
|
-
this._halfedges[ab] = e + 0;
|
|
344
|
-
}
|
|
345
|
-
if (bc >= 0) {
|
|
346
|
-
this._halfedges[bc] = e + 1;
|
|
347
|
-
}
|
|
348
|
-
if (ca >= 0) {
|
|
349
|
-
this._halfedges[ca] = e + 2;
|
|
350
|
-
}
|
|
351
|
-
// init triangle metadata
|
|
352
|
-
this._candidatesUV[2 * t + 0] = 0;
|
|
353
|
-
this._candidatesUV[2 * t + 1] = 0;
|
|
354
|
-
this._queueIndices[t] = -1;
|
|
355
|
-
// add triangle to pending queue for later rasterization
|
|
356
|
-
this._pending[this._pendingLen++] = t;
|
|
357
|
-
// return first halfedge index
|
|
358
|
-
return e;
|
|
359
|
-
}
|
|
360
|
-
_legalize(a) {
|
|
361
|
-
// if the pair of triangles doesn't satisfy the Delaunay condition
|
|
362
|
-
// (p1 is inside the circumcircle of [p0, pl, pr]), flip them,
|
|
363
|
-
// then do the same check/flip recursively for the new pair of triangles
|
|
364
|
-
//
|
|
365
|
-
// pl pl
|
|
366
|
-
// /||\ / \
|
|
367
|
-
// al/ || \bl al/ \a
|
|
368
|
-
// / || \ / \
|
|
369
|
-
// / a||b \ flip /___ar___\
|
|
370
|
-
// p0\ || /p1 => p0\---bl---/p1
|
|
371
|
-
// \ || / \ /
|
|
372
|
-
// ar\ || /br b\ /br
|
|
373
|
-
// \||/ \ /
|
|
374
|
-
// pr pr
|
|
375
|
-
const b = this._halfedges[a];
|
|
376
|
-
if (b < 0) {
|
|
377
|
-
return;
|
|
378
|
-
}
|
|
379
|
-
const a0 = a - (a % 3);
|
|
380
|
-
const b0 = b - (b % 3);
|
|
381
|
-
const al = a0 + ((a + 1) % 3);
|
|
382
|
-
const ar = a0 + ((a + 2) % 3);
|
|
383
|
-
const bl = b0 + ((b + 2) % 3);
|
|
384
|
-
const br = b0 + ((b + 1) % 3);
|
|
385
|
-
const p0 = this.triangles[ar];
|
|
386
|
-
const pr = this.triangles[a];
|
|
387
|
-
const pl = this.triangles[al];
|
|
388
|
-
const p1 = this.triangles[bl];
|
|
389
|
-
const uvs = this.uvs;
|
|
390
|
-
if (!inCircle(uvs[2 * p0], uvs[2 * p0 + 1], uvs[2 * pr], uvs[2 * pr + 1], uvs[2 * pl], uvs[2 * pl + 1], uvs[2 * p1], uvs[2 * p1 + 1])) {
|
|
391
|
-
return;
|
|
392
|
-
}
|
|
393
|
-
const hal = this._halfedges[al];
|
|
394
|
-
const har = this._halfedges[ar];
|
|
395
|
-
const hbl = this._halfedges[bl];
|
|
396
|
-
const hbr = this._halfedges[br];
|
|
397
|
-
this._queueRemove(a0 / 3);
|
|
398
|
-
this._queueRemove(b0 / 3);
|
|
399
|
-
const t0 = this._addTriangle(p0, p1, pl, -1, hbl, hal, a0);
|
|
400
|
-
const t1 = this._addTriangle(p1, p0, pr, t0, har, hbr, b0);
|
|
401
|
-
this._legalize(t0 + 1);
|
|
402
|
-
this._legalize(t1 + 2);
|
|
403
|
-
}
|
|
404
|
-
// handle a case where new vertex is on the edge of a triangle
|
|
405
|
-
_handleCollinear(pn, a) {
|
|
406
|
-
const a0 = a - (a % 3);
|
|
407
|
-
const al = a0 + ((a + 1) % 3);
|
|
408
|
-
const ar = a0 + ((a + 2) % 3);
|
|
409
|
-
const p0 = this.triangles[ar];
|
|
410
|
-
const pr = this.triangles[a];
|
|
411
|
-
const pl = this.triangles[al];
|
|
412
|
-
const hal = this._halfedges[al];
|
|
413
|
-
const har = this._halfedges[ar];
|
|
414
|
-
const b = this._halfedges[a];
|
|
415
|
-
if (b < 0) {
|
|
416
|
-
const t0 = this._addTriangle(pn, p0, pr, -1, har, -1, a0);
|
|
417
|
-
const t1 = this._addTriangle(p0, pn, pl, t0, -1, hal);
|
|
418
|
-
this._legalize(t0 + 1);
|
|
419
|
-
this._legalize(t1 + 2);
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
422
|
-
const b0 = b - (b % 3);
|
|
423
|
-
const bl = b0 + ((b + 2) % 3);
|
|
424
|
-
const br = b0 + ((b + 1) % 3);
|
|
425
|
-
const p1 = this.triangles[bl];
|
|
426
|
-
const hbl = this._halfedges[bl];
|
|
427
|
-
const hbr = this._halfedges[br];
|
|
428
|
-
this._queueRemove(b0 / 3);
|
|
429
|
-
const t0 = this._addTriangle(p0, pr, pn, har, -1, -1, a0);
|
|
430
|
-
const t1 = this._addTriangle(pr, p1, pn, hbr, -1, t0 + 1, b0);
|
|
431
|
-
const t2 = this._addTriangle(p1, pl, pn, hbl, -1, t1 + 1);
|
|
432
|
-
const t3 = this._addTriangle(pl, p0, pn, hal, t0 + 2, t2 + 1);
|
|
433
|
-
this._legalize(t0);
|
|
434
|
-
this._legalize(t1);
|
|
435
|
-
this._legalize(t2);
|
|
436
|
-
this._legalize(t3);
|
|
437
|
-
}
|
|
438
|
-
// priority queue methods
|
|
439
|
-
_queuePush(t, error) {
|
|
440
|
-
const i = this._queue.length;
|
|
441
|
-
this._queueIndices[t] = i;
|
|
442
|
-
this._queue.push(t);
|
|
443
|
-
this._errors.push(error);
|
|
444
|
-
this._queueUp(i);
|
|
445
|
-
}
|
|
446
|
-
_queuePop() {
|
|
447
|
-
const n = this._queue.length - 1;
|
|
448
|
-
this._queueSwap(0, n);
|
|
449
|
-
this._queueDown(0, n);
|
|
450
|
-
return this._queuePopBack();
|
|
451
|
-
}
|
|
452
|
-
_queuePopBack() {
|
|
453
|
-
const t = this._queue.pop();
|
|
454
|
-
this._errors.pop();
|
|
455
|
-
this._queueIndices[t] = -1;
|
|
456
|
-
return t;
|
|
457
|
-
}
|
|
458
|
-
_queueRemove(t) {
|
|
459
|
-
const i = this._queueIndices[t];
|
|
460
|
-
if (i < 0) {
|
|
461
|
-
const it = this._pending.indexOf(t);
|
|
462
|
-
if (it !== -1) {
|
|
463
|
-
this._pending[it] = this._pending[--this._pendingLen];
|
|
464
|
-
}
|
|
465
|
-
else {
|
|
466
|
-
throw new Error("Broken triangulation (something went wrong).");
|
|
467
|
-
}
|
|
468
|
-
return;
|
|
469
|
-
}
|
|
470
|
-
const n = this._queue.length - 1;
|
|
471
|
-
if (n !== i) {
|
|
472
|
-
this._queueSwap(i, n);
|
|
473
|
-
if (!this._queueDown(i, n)) {
|
|
474
|
-
this._queueUp(i);
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
this._queuePopBack();
|
|
478
|
-
}
|
|
479
|
-
_queueLess(i, j) {
|
|
480
|
-
return this._errors[i] > this._errors[j];
|
|
481
|
-
}
|
|
482
|
-
_queueSwap(i, j) {
|
|
483
|
-
const pi = this._queue[i];
|
|
484
|
-
const pj = this._queue[j];
|
|
485
|
-
this._queue[i] = pj;
|
|
486
|
-
this._queue[j] = pi;
|
|
487
|
-
this._queueIndices[pi] = j;
|
|
488
|
-
this._queueIndices[pj] = i;
|
|
489
|
-
const e = this._errors[i];
|
|
490
|
-
this._errors[i] = this._errors[j];
|
|
491
|
-
this._errors[j] = e;
|
|
492
|
-
}
|
|
493
|
-
_queueUp(j0) {
|
|
494
|
-
let j = j0;
|
|
495
|
-
while (true) {
|
|
496
|
-
const i = (j - 1) >> 1;
|
|
497
|
-
if (i === j || !this._queueLess(j, i)) {
|
|
498
|
-
break;
|
|
499
|
-
}
|
|
500
|
-
this._queueSwap(i, j);
|
|
501
|
-
j = i;
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
_queueDown(i0, n) {
|
|
505
|
-
let i = i0;
|
|
506
|
-
while (true) {
|
|
507
|
-
const j1 = 2 * i + 1;
|
|
508
|
-
if (j1 >= n || j1 < 0) {
|
|
509
|
-
break;
|
|
510
|
-
}
|
|
511
|
-
const j2 = j1 + 1;
|
|
512
|
-
let j = j1;
|
|
513
|
-
if (j2 < n && this._queueLess(j2, j1)) {
|
|
514
|
-
j = j2;
|
|
515
|
-
}
|
|
516
|
-
if (!this._queueLess(j, i)) {
|
|
517
|
-
break;
|
|
518
|
-
}
|
|
519
|
-
this._queueSwap(i, j);
|
|
520
|
-
i = j;
|
|
521
|
-
}
|
|
522
|
-
return i > i0;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
function orient(ax, ay, bx, by, cx, cy) {
|
|
526
|
-
return (bx - cx) * (ay - cy) - (by - cy) * (ax - cx);
|
|
527
|
-
}
|
|
528
|
-
function inCircle(ax, ay, bx, by, cx, cy, px, py) {
|
|
529
|
-
const dx = ax - px;
|
|
530
|
-
const dy = ay - py;
|
|
531
|
-
const ex = bx - px;
|
|
532
|
-
const ey = by - py;
|
|
533
|
-
const fx = cx - px;
|
|
534
|
-
const fy = cy - py;
|
|
535
|
-
const ap = dx * dx + dy * dy;
|
|
536
|
-
const bp = ex * ex + ey * ey;
|
|
537
|
-
const cp = fx * fx + fy * fy;
|
|
538
|
-
return (dx * (ey * cp - bp * fy) -
|
|
539
|
-
dy * (ex * cp - bp * fx) +
|
|
540
|
-
ap * (ex * fy - ey * fx) <
|
|
541
|
-
0);
|
|
542
|
-
}
|
|
543
|
-
/**
|
|
544
|
-
* Interpolate the value at a given barycentric coordinate within a triangle.
|
|
545
|
-
*
|
|
546
|
-
* I've seen the name "mix" used before in graphics programming to refer to
|
|
547
|
-
* barycentric linear interpolation.
|
|
548
|
-
*
|
|
549
|
-
* Note: the caller must call this method twice: once for u and once again for
|
|
550
|
-
* v. We do this because we want to avoid allocating an array for the return
|
|
551
|
-
* value.
|
|
552
|
-
*/
|
|
553
|
-
function barycentricMix(a, b, c,
|
|
554
|
-
// Barycentric coordinates
|
|
555
|
-
t0, t1, t2) {
|
|
556
|
-
return t0 * a + t1 * b + t2 * c;
|
|
557
|
-
}
|
|
558
|
-
//# sourceMappingURL=delatin.js.map
|
package/dist/src/delatin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delatin.js","sourceRoot":"","sources":["../../src/delatin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,sDAAsD;AACtD,4EAA4E;AAC5E,+EAA+E;AAC/E,+DAA+D;AAC/D,MAAM,aAAa,GAA+B;IAChD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW;IAClC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW;IAC1B,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW;IAC1B,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,WAAW;CAC3B,CAAC;AA4BF,MAAM,OAAO,iBAAiB;IAC5B,YAAY,CAAkB;IAC9B,KAAK,CAAS;IACd,MAAM,CAAS;IAEf;;;;;OAKG;IACH,GAAG,CAAW;IAEd;;OAEG;IACH,oBAAoB,CAAW;IAE/B;;OAEG;IACH,SAAS,CAAW;IAEZ,UAAU,CAAW;IAE7B;;;;;;OAMG;IACK,aAAa,CAAW;IACxB,aAAa,CAAW;IAExB,MAAM,CAAW;IACjB,OAAO,CAAW;IAClB,QAAQ,CAAW;IACnB,WAAW,CAAS;IAE5B,YACE,YAA6B,EAC7B,KAAa,EACb,SAAiB,KAAK;QAEtB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,4BAA4B;QAC3C,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAE7C,2BAA2B;QAC3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,2BAA2B;QAC7C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,sCAAsC;QAC1D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAErB,2EAA2E;QAC3E,+CAA+C;QAC/C,MAAM,EAAE,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAElC,4BAA4B;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,mEAAmE;IACnE,GAAG,CAAC,WAAmB,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM;QACJ,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,gCAAgC;IAChC,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;IAC1B,CAAC;IAED,uEAAuE;IAC/D,MAAM;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC5B,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,sDAAsD;IACtD,2EAA2E;IAC3E,0BAA0B;IAC1B,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,MAAM;IACN,6BAA6B;IAC7B,0CAA0C;IAC1C,0CAA0C;IAC1C,0CAA0C;IAC1C,0CAA0C;IAE1C,sCAAsC;IACtC,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAE3B,2CAA2C;IAC3C,oDAAoD;IACpD,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;IAE5C,2CAA2C;IAC3C,sBAAsB;IACtB,gBAAgB;IAChB,gBAAgB;IAChB,yCAAyC;IACzC,iCAAiC;IACjC,kBAAkB;IAClB,kCAAkC;IAClC,mDAAmD;IACnD,QAAQ;IACR,kCAAkC;IAClC,mDAAmD;IACnD,QAAQ;IACR,kCAAkC;IAClC,mDAAmD;IACnD,QAAQ;IAER,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAE/B,6BAA6B;IAE7B,gDAAgD;IAChD,oCAAoC;IACpC,6CAA6C;IAC7C,4BAA4B;IAE5B,qDAAqD;IACrD,iDAAiD;IACjD,wDAAwD;IACxD,+BAA+B;IAC/B,2BAA2B;IAC3B,oBAAoB;IACpB,oBAAoB;IACpB,YAAY;IACZ,gCAAgC;IAChC,iBAAiB;IACjB,UAAU;IAEV,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,QAAQ;IAER,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,MAAM;IAEN,SAAS;IACT,oCAAoC;IACpC,oCAAoC;IACpC,iCAAiC;IACjC,QAAQ;IACR,oBAAoB;IACpB,MAAM;IAEN,gCAAgC;IAChC,oCAAoC;IACpC,wCAAwC;IAExC,sCAAsC;IACtC,kCAAkC;IAClC,IAAI;IAEJ;;;;;;OAMG;IACK,0BAA0B,CAAC,CAAS;QAC1C,2CAA2C;QAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;QAEzC,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAE7B,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAEhD,sEAAsE;QACtE,SAAS;QACT,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,0DAA0D;QAC1D,uEAAuE;QACvE,IAAI,SAAS,GAAW,CAAC,CAAC;QAC1B,IAAI,SAAS,GAAW,CAAC,CAAC;QAE1B,6DAA6D;QAC7D,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACxC,6CAA6C;YAC7C,MAAM,SAAS,GAAG,cAAc,CAC9B,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;YACF,MAAM,SAAS,GAAG,cAAc,CAC9B,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;YAEF,iEAAiE;YACjE,gBAAgB;YAChB,MAAM,UAAU,GAAG,cAAc,CAC/B,KAAK,EACL,KAAK,EACL,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;YACF,MAAM,UAAU,GAAG,cAAc,CAC/B,KAAK,EACL,KAAK,EACL,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;YAEF,4BAA4B;YAC5B,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAElD,sEAAsE;YACtE,sEAAsE;YACtE,6DAA6D;YAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACxD,UAAU,EACV,UAAU,CACX,CAAC;YAEF,uEAAuE;YACvE,gBAAgB;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CACpD,eAAe,CAAC,CAAC,CAAC,EAClB,eAAe,CAAC,CAAC,CAAC,CACnB,CAAC;YAEF,0BAA0B;YAC1B,MAAM,EAAE,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE/B,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;gBACnB,QAAQ,GAAG,GAAG,CAAC;gBACf,SAAS,GAAG,SAAS,CAAC;gBACtB,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;QACH,CAAC;QAED,MAAM;QACN,oEAAoE;QACpE,8DAA8D;QAE9D,qEAAqE;QACrE,WAAW;QACX,4DAA4D;QAC5D,IACE,CAAC,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC;YACxC,CAAC,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC;YACxC,CAAC,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC,EACxC,CAAC;YACD,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAE1C,iCAAiC;QACjC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,wEAAwE;IAChE,KAAK;QACX,sDAAsD;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE3B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAE/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;QAE1C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;YAChC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;YAChC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;YAEhC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,mCAAmC;IAC3B,SAAS,CAAC,CAAS,EAAE,CAAS;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpB,2DAA2D;QAC3D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC5D,aAAa,CAAC,CAAC,CAAC,EAChB,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAC5B,mBAAmB,CAAC,CAAC,CAAE,EACvB,mBAAmB,CAAC,CAAC,CAAE,CACxB,CAAC;QAEF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,uCAAuC;IACvC,YAAY,CACV,CAAS,EACT,CAAS,EACT,CAAS,EACT,EAAU,EACV,EAAU,EACV,EAAU,EACV,IAAY,IAAI,CAAC,SAAS,CAAC,MAAM;QAEjC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;QAEtC,wBAAwB;QACxB,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAE1B,yBAAyB;QACzB,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3B,wDAAwD;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;QAEtC,8BAA8B;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,SAAS,CAAC,CAAS;QACzB,kEAAkE;QAClE,8DAA8D;QAC9D,wEAAwE;QACxE,EAAE;QACF,qCAAqC;QACrC,sCAAsC;QACtC,wCAAwC;QACxC,wCAAwC;QACxC,yCAAyC;QACzC,2CAA2C;QAC3C,wCAAwC;QACxC,yCAAyC;QACzC,sCAAsC;QACtC,qCAAqC;QAErC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAE9B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAErB,IACE,CAAC,QAAQ,CACP,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,EACZ,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,EAChB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,EACZ,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,EAChB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,EACZ,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,EAChB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAE,EACZ,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,CACjB,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QAEjC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE1B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,8DAA8D;IACtD,gBAAgB,CAAC,EAAU,EAAE,CAAS;QAC5C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QAEjC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAE9B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;QAEjC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE1B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,yBAAyB;IAEjB,UAAU,CAAC,CAAS,EAAE,KAAa;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC,aAAa,EAAG,CAAC;IAC/B,CAAC;IAEO,aAAa;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAG,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,YAAY,CAAC,CAAS;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,CAAE,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,UAAU,CAAC,CAAS,EAAE,CAAS;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;IAC7C,CAAC;IAEO,UAAU,CAAC,CAAS,EAAE,CAAS;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAEO,QAAQ,CAAC,EAAU;QACzB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtC,MAAM;YACR,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC,GAAG,CAAC,CAAC;QACR,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,EAAU,EAAE,CAAS;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM;YACR,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;gBACtC,CAAC,GAAG,EAAE,CAAC;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC,GAAG,CAAC,CAAC;QACR,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;CACF;AAED,SAAS,MAAM,CACb,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAEV,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CACf,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAEV,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAE7B,OAAO,CACL,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACtB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC1B,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CACrB,CAAS,EACT,CAAS,EACT,CAAS;AACT,0BAA0B;AAC1B,EAAU,EACV,EAAU,EACV,EAAU;IAEV,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/src/index.d.ts
DELETED
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/src/index.js
DELETED
package/dist/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.test.d.ts","sourceRoot":"","sources":["../../tests/example.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "vitest";
|
|
2
|
-
import { join, dirname, resolve } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { RasterReprojector, applyAffine, invertGeoTransform, } from "@developmentseed/raster-reproject";
|
|
5
|
-
import { readFileSync, writeFileSync } from "fs";
|
|
6
|
-
import proj4 from "proj4";
|
|
7
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
-
const __dirname = dirname(__filename);
|
|
9
|
-
const FIXTURES_DIR = resolve(join(__dirname, "..", "..", "..", "fixtures"));
|
|
10
|
-
function fromGeoTransform(geotransform) {
|
|
11
|
-
const inverseGeotransform = invertGeoTransform(geotransform);
|
|
12
|
-
return {
|
|
13
|
-
pixelToInputCRS: (x, y) => applyAffine(x, y, geotransform),
|
|
14
|
-
inputCRSToPixel: (x, y) => applyAffine(x, y, inverseGeotransform),
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function parseFixture(fixturePath) {
|
|
18
|
-
const { width, height, geotransform, reorderTransform, projjson, wkt2, } = JSON.parse(readFileSync(fixturePath, "utf-8"));
|
|
19
|
-
let affineGeotransform = [
|
|
20
|
-
0, 0, 0, 0, 0, 0,
|
|
21
|
-
];
|
|
22
|
-
if (reorderTransform === undefined || reorderTransform === true) {
|
|
23
|
-
// Convert GDAL geotransform to affine package geotransform
|
|
24
|
-
affineGeotransform = [
|
|
25
|
-
geotransform[1], // a: pixel width
|
|
26
|
-
geotransform[2], // b: row rotation
|
|
27
|
-
geotransform[0], // c: x origin
|
|
28
|
-
geotransform[4], // d: column rotation
|
|
29
|
-
geotransform[5], // e: pixel height (usually negative)
|
|
30
|
-
geotransform[3], // f: y origin
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
affineGeotransform = geotransform;
|
|
35
|
-
}
|
|
36
|
-
const { inputCRSToPixel, pixelToInputCRS } = fromGeoTransform(affineGeotransform);
|
|
37
|
-
const converter = proj4(projjson || wkt2, "EPSG:4326");
|
|
38
|
-
const reprojectionFns = {
|
|
39
|
-
pixelToInputCRS,
|
|
40
|
-
inputCRSToPixel,
|
|
41
|
-
forwardReproject: (x, y) => converter.forward([x, y], false),
|
|
42
|
-
inverseReproject: (x, y) => converter.inverse([x, y], false),
|
|
43
|
-
};
|
|
44
|
-
return new RasterReprojector(reprojectionFns, width, height);
|
|
45
|
-
}
|
|
46
|
-
function serializeMesh(reprojector) {
|
|
47
|
-
const mesh = {
|
|
48
|
-
indices: reprojector.triangles,
|
|
49
|
-
positions: reprojector.exactOutputPositions,
|
|
50
|
-
texCoords: reprojector.uvs,
|
|
51
|
-
};
|
|
52
|
-
return JSON.stringify(mesh);
|
|
53
|
-
}
|
|
54
|
-
describe("NAIP", () => {
|
|
55
|
-
it("should generate reprojection mesh", () => {
|
|
56
|
-
const baseFname = "m_4007307_sw_18_060_20220803";
|
|
57
|
-
const fixturePath = join(FIXTURES_DIR, `${baseFname}.json`);
|
|
58
|
-
const reprojector = parseFixture(fixturePath);
|
|
59
|
-
reprojector.run(0.125);
|
|
60
|
-
const meshJSON = serializeMesh(reprojector);
|
|
61
|
-
const outputPath = join(FIXTURES_DIR, `${baseFname}.mesh.json`);
|
|
62
|
-
writeFileSync(outputPath, meshJSON);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe("nz-imagery", () => {
|
|
66
|
-
it("should generate reprojection mesh", () => {
|
|
67
|
-
const baseFname = "linz_250-25_GeoTifv1-05";
|
|
68
|
-
const fixturePath = join(FIXTURES_DIR, `${baseFname}.json`);
|
|
69
|
-
console.time(`Create reprojector for ${baseFname}`);
|
|
70
|
-
const reprojector = parseFixture(fixturePath);
|
|
71
|
-
console.timeEnd(`Create reprojector for ${baseFname}`);
|
|
72
|
-
console.time(`Run reprojector for ${baseFname}`);
|
|
73
|
-
reprojector.run(0.125);
|
|
74
|
-
console.timeEnd(`Run reprojector for ${baseFname}`);
|
|
75
|
-
const meshJSON = serializeMesh(reprojector);
|
|
76
|
-
const outputPath = join(FIXTURES_DIR, `${baseFname}.mesh.json`);
|
|
77
|
-
writeFileSync(outputPath, meshJSON);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
describe("nlcd", () => {
|
|
81
|
-
it("should generate reprojection mesh", () => {
|
|
82
|
-
const baseFname = "Annual_NLCD_LndCov_2023_CU_C1V0";
|
|
83
|
-
const fixturePath = join(FIXTURES_DIR, `${baseFname}.json`);
|
|
84
|
-
console.time(`Create reprojector for ${baseFname}`);
|
|
85
|
-
const reprojector = parseFixture(fixturePath);
|
|
86
|
-
console.timeEnd(`Create reprojector for ${baseFname}`);
|
|
87
|
-
console.time(`Run reprojector for ${baseFname}`);
|
|
88
|
-
reprojector.run(2);
|
|
89
|
-
console.timeEnd(`Run reprojector for ${baseFname}`);
|
|
90
|
-
const meshJSON = serializeMesh(reprojector);
|
|
91
|
-
const outputPath = join(FIXTURES_DIR, `${baseFname}.mesh.json`);
|
|
92
|
-
writeFileSync(outputPath, meshJSON);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
describe("modis", () => {
|
|
96
|
-
it("should generate reprojection mesh", () => {
|
|
97
|
-
const baseFname = "MYD09A1.A2025169.h10v05.061.2025178160305";
|
|
98
|
-
const fixturePath = join(FIXTURES_DIR, `${baseFname}.json`);
|
|
99
|
-
console.time(`Create reprojector for ${baseFname}`);
|
|
100
|
-
const reprojector = parseFixture(fixturePath);
|
|
101
|
-
console.timeEnd(`Create reprojector for ${baseFname}`);
|
|
102
|
-
console.time(`Run reprojector for ${baseFname}`);
|
|
103
|
-
reprojector.run(0.125);
|
|
104
|
-
console.timeEnd(`Run reprojector for ${baseFname}`);
|
|
105
|
-
const meshJSON = serializeMesh(reprojector);
|
|
106
|
-
const outputPath = join(FIXTURES_DIR, `${baseFname}.mesh.json`);
|
|
107
|
-
writeFileSync(outputPath, meshJSON);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
//# sourceMappingURL=example.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.test.js","sourceRoot":"","sources":["../../tests/example.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/affine.ts","../src/delatin.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.0.15/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.15/node_modules/@vitest/runner/dist/tasks.d-xu8vapgy.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.15/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.15/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.15/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vite@7.2.7_@types+node@22.19.2/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@7.2.7_@types+node@22.19.2/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../../node_modules/.pnpm/vite@7.2.7_@types+node@22.19.2/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@7.2.7_@types+node@22.19.2/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@7.2.7_@types+node@22.19.2/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.0.15/node_modules/@vitest/snapshot/dist/environment.d-dhdq1csl.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.0.15/node_modules/@vitest/snapshot/dist/rawsnapshot.d-lfsmjfud.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.0.15/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/config.d.czijkicf.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/rpc.d.rh3apgef.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/worker.d.b4a26qg6.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/browser.d.dbzuq_na.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.0.15/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.0.3/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.0.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.0.15/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.15/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/global.d.b15mdlcr.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/suite.d.bjwk38hb.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.15_@types+node@22.19.2_jsdom@27.3.0_postcss@8.5.6_/node_modules/vitest/dist/index.d.ts","./affine.d.ts","./delatin.d.ts","./index.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/projections.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/defs.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/proj.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/core.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/point.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/common/topoint.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/nadgrid.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/transform.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/lib/index.d.ts","../../../node_modules/.pnpm/proj4@2.20.2/node_modules/proj4/dist/index.d.ts","../tests/example.test.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.19.2/node_modules/@types/node/index.d.ts"],"fileIdsList":[[125,173,190,191],[90,91,125,173,190,191],[125,170,171,173,190,191],[125,172,173,190,191],[173,190,191],[125,173,178,190,191,208],[125,173,174,179,184,190,191,193,205,216],[125,173,174,175,184,190,191,193],[120,121,122,125,173,190,191],[125,173,176,190,191,217],[125,173,177,178,185,190,191,194],[125,173,178,190,191,205,213],[125,173,179,181,184,190,191,193],[125,172,173,180,190,191],[125,173,181,182,190,191],[125,173,183,184,190,191],[125,172,173,184,190,191],[125,173,184,185,186,190,191,205,216],[125,173,184,185,186,190,191,200,205,208],[125,166,173,181,184,187,190,191,193,205,216],[125,173,184,185,187,188,190,191,193,205,213,216],[125,173,187,189,190,191,205,213,216],[123,124,125,126,127,128,129,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[125,173,184,190,191],[125,173,190,191,192,216],[125,173,181,184,190,191,193,205],[125,173,190,191,194],[125,173,190,191,195],[125,172,173,190,191,196],[125,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222],[125,173,190,191,198],[125,173,190,191,199],[125,173,184,190,191,200,201],[125,173,190,191,200,202,217,219],[125,173,185,190,191],[125,173,184,190,191,205,206,208],[125,173,190,191,207,208],[125,173,190,191,205,206],[125,173,190,191,208],[125,173,190,191,209],[125,170,173,190,191,205,210],[125,173,184,190,191,211,212],[125,173,190,191,211,212],[125,173,178,190,191,193,205,213],[125,173,190,191,214],[125,173,190,191,193,215],[125,173,187,190,191,199,216],[125,173,178,190,191,217],[125,173,190,191,205,218],[125,173,190,191,192,219],[125,173,190,191,220],[125,166,173,190,191],[125,166,173,184,186,190,191,196,205,208,216,218,219,221],[125,173,190,191,205,222],[63,67,70,72,87,88,89,92,97,125,173,190,191],[67,68,70,71,125,173,190,191],[67,125,173,190,191],[67,68,70,125,173,190,191],[67,68,125,173,190,191],[62,78,79,125,173,190,191],[62,78,125,173,190,191],[62,69,125,173,190,191],[62,125,173,190,191],[64,125,173,190,191],[62,63,64,65,66,125,173,190,191],[100,101,125,173,190,191],[100,101,102,103,125,173,190,191],[100,102,125,173,190,191],[100,125,173,190,191],[117,125,173,190,191],[112,125,173,190,191],[111,125,173,190,191],[111,112,125,173,190,191],[110,111,112,113,114,115,116,125,173,190,191],[109,110,112,125,173,190,191],[110,112,125,173,190,191],[125,138,142,173,190,191,216],[125,138,173,190,191,205,216],[125,133,173,190,191],[125,135,138,173,190,191,213,216],[125,173,190,191,193,213],[125,173,190,191,223],[125,133,173,190,191,223],[125,135,138,173,190,191,193,216],[125,130,131,134,137,173,184,190,191,205,216],[125,138,145,173,190,191],[125,130,136,173,190,191],[125,138,159,160,173,190,191],[125,134,138,173,190,191,208,216,223],[125,159,173,190,191,223],[125,132,133,173,190,191,223],[125,138,173,190,191],[125,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,162,163,164,165,173,190,191],[125,138,153,173,190,191],[125,138,145,146,173,190,191],[125,136,138,146,147,173,190,191],[125,137,173,190,191],[125,130,133,138,173,190,191],[125,138,142,146,147,173,190,191],[125,142,173,190,191],[125,136,138,141,173,190,191,216],[125,130,135,138,145,173,190,191],[125,173,190,191,205],[125,133,138,159,173,190,191,221,223],[73,125,173,190,191],[73,74,75,76,125,173,190,191],[75,125,173,190,191],[72,94,95,97,125,173,190,191],[72,85,97,125,173,190,191],[62,70,72,80,97,125,173,190,191],[77,125,173,190,191],[62,72,80,84,93,96,97,125,173,190,191],[72,77,80,83,97,125,173,190,191],[72,94,95,96,97,125,173,190,191],[72,77,81,82,84,97,125,173,190,191],[62,67,70,72,77,80,81,82,83,84,85,86,87,93,94,95,96,97,98,99,104,125,173,190,191],[106,107,125,173,190,191],[59,60,125,173,190,191],[105,108,112,118,125,173,185,190,191,195,216]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"cfa00c6f7dc11711f42f5734c965ce430d44f23a655d1a83165cacc9a31e04a4","signature":"e1c9829d83778ce01234b5363f7c583827389eb08dd1a9bf0a4720aacc4c3b01"},{"version":"43b76e481debae79f21fb1382dc5c45dd149303242efd8255382409d1848184a","signature":"a67dcaf88516d9bbb8eadc9b770a06fd05736e36b7746254041e871af80f1b8f"},"60cc800536d1e28c5ff2a4930fdfdcfb661543ff2b64125525ee5dc9fa15abab",{"version":"acfb723d81eda39156251aed414c553294870bf53062429ebfcfba8a68cb4753","impliedFormat":99},{"version":"09124307d0bc873aba353b80027899599e794c2cf44dfe6315d73111d40e29f4","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"57e9e1b0911874c62d743af24b5d56032759846533641d550b12a45ff404bf07","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"d024767b27121cd5a2cb2f7cb93718803e4ed1c86ebd1ee3bd8de008f0ecbf96","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"d6300bb90d031832e5a62d7cad4cf00add5cce9f5d4f0ac514722f41b1af6f92","impliedFormat":99},{"version":"244c16ce21d66faeaca8296e9f4cf5dd79f2c64d9248d7ff06b7c5377684c7ac","impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"c35b8117804c639c53c87f2c23e0c786df61d552e513bd5179f5b88e29964838","impliedFormat":99},{"version":"2c2aee81ffcfc4043d5cbe3f4e9cfc355702696daa0c1e048f28ebe238439888","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"67acaedb46832d66c15f1b09fb7b6a0b7f41bdbf8eaa586ec70459b3e8896eb9","impliedFormat":99},{"version":"36cddcef8f1a4a573c9993c9d3cf3e0f86f948276c287c235b04cfac661c2f9f","impliedFormat":99},{"version":"4d9a1d2160e70b68e5a8038b1cbb8070417e8f8117a7f486ca533330a1bf58a2","impliedFormat":99},{"version":"31fd7c12f6e27154efb52a916b872509a771880f3b20f2dfd045785c13aa813f","impliedFormat":99},{"version":"b481de4ab5379bd481ca12fc0b255cdc47341629a22c240a89cdb4e209522be2","impliedFormat":99},{"version":"76af14c3cce62da183aaf30375e3a4613109d16c7f16d30702f16d625a95e62c","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"4e258d11c899cb9ff36b4b5c53df59cf4a5ccae9a9931529686e77431e0a3518","affectsGlobalScope":true,"impliedFormat":99},{"version":"21dff8020ae0329f8620a144429971a0fd21f4b307e453955181381441904ac8","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"a534e61c2f06a147d97aebad720db97dffd8066b7142212e46bcbcdcb640b81a","impliedFormat":99},{"version":"ddf569d04470a4d629090d43a16735185001f3fcf0ae036ead99f2ceab62be48","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"37159bf2f7c374599d2bae28d629929003869720bcd6df3ae850bbbca72f23a4","impliedFormat":99},"e1c9829d83778ce01234b5363f7c583827389eb08dd1a9bf0a4720aacc4c3b01","a67dcaf88516d9bbb8eadc9b770a06fd05736e36b7746254041e871af80f1b8f","60cc800536d1e28c5ff2a4930fdfdcfb661543ff2b64125525ee5dc9fa15abab",{"version":"1f0d9a0d781761ad4b44c152b798cb4298dd30c46230d64c1236fb99bf09ed17","impliedFormat":1},{"version":"7630db1395a4a84af7ccd2daddfb9f8a08e3465a68fb349c9e263724ed1dcdc5","impliedFormat":1},{"version":"7dca3135b21d584c49eb10926a90b64376fe4258cc55359826710c1194c0e133","impliedFormat":1},{"version":"7ff2749e187cf60121a21404d078b899a0c0c3642e41df3ad81bde7fd5acd9c2","impliedFormat":1},{"version":"5b9fc41636b167b6939f4359992ed14c237b8bdaee5fafa9a8de5b054f4f3907","impliedFormat":1},{"version":"28ed66404de9d88e755300d0299656c8f2bb6d4442f152877e1d2a3739353a99","impliedFormat":1},{"version":"4f59b76dba3619636ab9cf9756cbf424a5fbd23100fbd82648627c4fc046ce9b","impliedFormat":1},{"version":"5a88f1430b70aa69af418c27a31c4ee17fc23cc4e486742247040d74f260ce47","impliedFormat":1},{"version":"3beb7f15fa32b201fc81bc067b223cdf6e221f4820dc0acfde4333e902cabf8f","impliedFormat":1},{"version":"a5384c277edeeb51b0368f73e95b4232962a6722d4cdb94c8e9c560f77b35e2a","impliedFormat":1},"0f0e00dc7453bd72e3e0d9df1120599e3931f28717b75461b14047f21781faeb",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"bb45cd435da536500f1d9692a9b49d0c570b763ccbf00473248b777f5c1f353b","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"21145ce1c54e05ef9e52092b98a4ebfb326b92f52e76e47211c50cfcd2a2b4ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"5ebe6f4cc3b803cbfc962bae0d954f9c80e5078ca41eb3f1de41d92e7193ef37","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[[59,61],119],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"checkJs":false,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[89,1],[92,2],[90,1],[170,3],[171,3],[172,4],[125,5],[173,6],[174,7],[175,8],[120,1],[123,9],[121,1],[122,1],[176,10],[177,11],[178,12],[179,13],[180,14],[181,15],[182,15],[183,16],[184,17],[185,18],[186,19],[126,1],[124,1],[187,20],[188,21],[189,22],[223,23],[190,24],[191,1],[192,25],[193,26],[194,27],[195,28],[196,29],[197,30],[198,31],[199,32],[200,33],[201,33],[202,34],[203,1],[204,35],[205,36],[207,37],[206,38],[208,39],[209,40],[210,41],[211,42],[212,43],[213,44],[214,45],[215,46],[216,47],[217,48],[218,49],[219,50],[220,51],[127,1],[128,1],[129,1],[167,52],[168,1],[169,1],[221,53],[222,54],[93,55],[62,1],[72,56],[68,57],[71,58],[94,59],[78,1],[80,60],[79,61],[87,1],[70,62],[63,63],[65,64],[67,65],[66,1],[69,63],[64,1],[91,1],[102,66],[104,67],[103,68],[101,69],[100,1],[118,70],[114,71],[112,72],[110,73],[117,74],[115,1],[113,71],[111,75],[109,72],[116,76],[95,1],[88,1],[57,1],[58,1],[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[21,1],[22,1],[4,1],[23,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[56,1],[55,1],[1,1],[145,77],[155,78],[144,77],[165,79],[136,80],[135,81],[164,82],[158,83],[163,84],[138,85],[152,86],[137,87],[161,88],[133,89],[132,82],[162,90],[134,91],[139,92],[140,1],[143,92],[130,1],[166,93],[156,94],[147,95],[148,96],[150,97],[146,98],[149,99],[159,82],[141,100],[142,101],[151,102],[131,103],[154,94],[153,92],[157,1],[160,104],[74,105],[77,106],[75,105],[73,1],[76,107],[96,108],[86,109],[81,110],[82,57],[99,111],[97,112],[84,113],[98,114],[83,1],[85,115],[105,116],[106,1],[107,1],[108,117],[59,1],[60,1],[61,118],[119,119]],"affectedFilesPendingEmit":[[119,48]],"emitSignatures":[[119,"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"]],"latestChangedDtsFile":"./tests/example.test.d.ts","version":"5.9.3"}
|