toosoon-utils 4.0.3 → 4.0.4

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/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Utility functions & classes.
4
4
 
5
+ [![NPM](https://nodei.co/npm/toosoon-utils.png)](https://nodei.co/npm/toosoon-utils/)
6
+
5
7
  ## Installation
6
8
 
7
9
  Yarn:
@@ -411,15 +413,118 @@ diagonal(width: number, height: number): number;
411
413
 
412
414
  Convert radians to a 3D point on the surface of a unit sphere.
413
415
 
414
- - `radius`: Radius of the sphere
415
- - `phi`: Polar angle from the y (up) axis [0, PI]
416
- - `theta`: Equator angle around the y (up) axis [0, 2*PI]
417
- - `[target]`: Target vector
416
+ - `radius`: Radius of the sphere.
417
+ - `phi`: Polar angle from the y (up) axis [0, PI].
418
+ - `theta`: Equator angle around the y (up) axis [0, 2*PI].
419
+ - `[target]`: Target vector.
418
420
 
419
421
  ```ts
420
422
  radToSphere(radius: number, phi: number, theta: number, target?: Vector3): Vector3;
421
423
  ```
422
424
 
425
+ #### Curves
426
+
427
+ ##### cubicBezier(t, x1, y1, cpx1, cpy1, cpx2, cpy2, x2, y2)
428
+
429
+ Interpolate a point on an elliptical arc Cubic Bézier curve.
430
+
431
+ - `t`: Normalized time value to interpolate.
432
+ - `x1`: X-axis coordinate of the start point.
433
+ - `y1`: Y-axis coordinate of the start point.
434
+ - `cpx1`: X-axis coordinate of the first control point.
435
+ - `cpy1`: Y-axis coordinate of the first control point.
436
+ - `cpx2`: X-axis coordinate of the second control point.
437
+ - `cpy2`: Y-axis coordinate of the second control point.
438
+ - `x2`: X-axis coordinate of the end point.
439
+ - `y2`: Y-axis coordinate of the end point.
440
+
441
+ ```ts
442
+ cubicBezier(
443
+ t: number,
444
+ x1: number,
445
+ y1: number,
446
+ cpx1: number,
447
+ cpy1: number,
448
+ cpx2: number,
449
+ cpy2: number,
450
+ x2: number,
451
+ y2: number
452
+ ): [number, number];
453
+ ```
454
+
455
+ ##### quadraticBesier(t, x1, y1, cpx, cpy, x2, y2)
456
+
457
+ Interpolate a point on an elliptical arc Quadratic Bézier curve.
458
+
459
+ - `t`: Normalized time value to interpolate.
460
+ - `x1`: X-axis coordinate of the start point.
461
+ - `y1`: Y-axis coordinate of the start point.
462
+ - `cpx`: X-axis coordinate of the control point.
463
+ - `cpy`: Y-axis coordinate of the control point.
464
+ - `x2`: X-axis coordinate of the end point.
465
+ - `y2`: Y-axis coordinate of the end point.
466
+
467
+ ```ts
468
+ quadraticBesier(
469
+ t: number,
470
+ x1: number,
471
+ y1: number,
472
+ cpx: number,
473
+ cpy: number,
474
+ x2: number,
475
+ y2: number
476
+ ): [number, number];
477
+ ```
478
+
479
+ ##### arc(t, x1, y1, x2, y2, rx, ry, angle, largeArc, sweep)
480
+
481
+ Interpolate a point on an elliptical arc.
482
+
483
+ - `t`: Normalized time value to interpolate.
484
+ - `x1`: X-axis coordinate of the starting point of the arc.
485
+ - `y1`: Y-axis coordinate of the starting point of the arc.
486
+ - `x2`: X-axis coordinate of the ending point of the arc.
487
+ - `y2`: Y-axis coordinate of the ending point of the arc.
488
+ - `rx`: X-radius of the ellipse.
489
+ - `ry`: Y-radius of the ellipse.
490
+ - `angle`: Rotation angle of the ellipse (in radians).
491
+ - `[largeArc=true]`: Flag indicating whether to draw the larger of the two possible arcs.
492
+ - `[clockwise=true]`: Flag indicating the direction of the arc.
493
+
494
+ ```ts
495
+ arc(
496
+ t: number,
497
+ x1: number,
498
+ y1: number,
499
+ x2: number,
500
+ y2: number,
501
+ rx: number,
502
+ ry: number,
503
+ angle: number,
504
+ largeArc?: boolean,
505
+ sweep?: boolean
506
+ ): [number, number];
507
+ ```
508
+
509
+ #### Fit
510
+
511
+ <!-- -->
512
+
513
+ ```ts
514
+ type FitInput = {
515
+ width: number;
516
+ height: number;
517
+ };
518
+
519
+ type FitOutput = {
520
+ left: number;
521
+ top: number;
522
+ width: number;
523
+ height: number;
524
+ scale: number;
525
+ };
526
+ ```
527
+
423
528
  ##### cover(target, container)
424
529
 
425
530
  Make a target fit a container (cover mode).
@@ -428,7 +533,7 @@ Make a target fit a container (cover mode).
428
533
  - `container`: Dimension of the container.
429
534
 
430
535
  ```ts
431
- cover(target: object, container: object): object;
536
+ cover(target: FitInput, container: FitInput): FitOutput;
432
537
  ```
433
538
 
434
539
  ##### contain(target, container)
@@ -439,7 +544,7 @@ Make a target fit a container (contain mode).
439
544
  - `container`: Dimension of the container.
440
545
 
441
546
  ```ts
442
- contain(target: object, container: object): object;
547
+ contain(target: FitInput, container: FitInput): FitOutput;
443
548
  ```
444
549
 
445
550
  ### Maths
@@ -507,43 +612,43 @@ Clamp a value between two bounds.
507
612
  clamp(value: number, min?: number, max?: number): number;
508
613
  ```
509
614
 
510
- ##### lerp(value, min, max)
615
+ ##### lerp(t, min, max)
511
616
 
512
617
  Linear interpolation between two values (lerping).
513
618
 
514
- - `value`: Normalized value to interpolate.
619
+ - `t`: Normalized time value to interpolate.
515
620
  - `min`: Minimum value.
516
621
  - `max`: Maximum value.
517
622
 
518
623
  ```ts
519
- lerp(value: number, min: number, max: number): number;
624
+ lerp(t: number, min: number, max: number): number;
520
625
  ```
521
626
 
522
- ##### triLerp(value, min, max, target)
627
+ ##### triLerp(t, min, max, target)
523
628
 
524
629
  Triangular interpolation between two values.
525
630
 
526
- - `value`: Normalized value to interpolate.
631
+ - `t`: Normalized time value to interpolate.
527
632
  - `min`: Minimum value.
528
633
  - `max`: Maximum value.
529
634
  - `target`: Triangle target value.
530
635
 
531
636
  ```ts
532
- triLerp(value: number, min: number, max: number, target: number): number;
637
+ triLerp(t: number, min: number, max: number, target: number): number;
533
638
  ```
534
639
 
535
- ##### expLerp(value, currentMin, currentMax, targetMin, targetMax)
640
+ ##### expLerp(t, currentMin, currentMax, targetMin, targetMax)
536
641
 
537
642
  Exponential interpolation between two values.
538
643
 
539
- - `value`: Value to interpolate.
644
+ - `t`: Normalized time value to interpolate.
540
645
  - `currentMin`: Lower bound of the value's current range.
541
646
  - `currentMax`: Upper bound of the value's current range.
542
647
  - `targetMin`: Lower bound of the value's target range.
543
648
  - `targetMax`: Upper bound of the value's target range.
544
649
 
545
650
  ```ts
546
- expLerp(value: number, currentMin: number, currentMax: number, targetMin: number, targetMax: number): number;
651
+ expLerp(t: number, currentMin: number, currentMax: number, targetMin: number, targetMax: number): number;
547
652
  ```
548
653
 
549
654
  ##### normalize(value, min, max)
@@ -1271,3 +1376,5 @@ FrameRate.update(): boolean;
1271
1376
  ## License
1272
1377
 
1273
1378
  MIT License, see [LICENSE](https://github.com/toosoon-dev/toosoon-utils/tree/master/LICENSE) for details.
1379
+
1380
+ [![NPM](https://nodei.co/npm/toosoon-utils.png)](https://nodei.co/npm/toosoon-utils/)
package/lib/geometry.d.ts CHANGED
@@ -16,10 +16,10 @@ export declare function toRadians(degrees: number): number;
16
16
  /**
17
17
  * Calculate the angle from a point to another
18
18
  *
19
- * @param {number} x1 X value of the first point
20
- * @param {number} y1 Y value of the first point
21
- * @param {number} x2 X value of the second point
22
- * @param {number} y2 Y value of the second point
19
+ * @param {number} x1 X-axis coordinate of the start point
20
+ * @param {number} y1 Y-axis coordinate of the start point
21
+ * @param {number} x2 X-axis coordinate of the end point
22
+ * @param {number} y2 Y-axis coordinate of the end point
23
23
  * @returns {number} Angle
24
24
  */
25
25
  export declare function angle(x1: number, y1: number, x2: number, y2: number): number;
@@ -34,10 +34,10 @@ export declare function closestAngle(source: number, target: number): number;
34
34
  /**
35
35
  * Calculate the distance between two points
36
36
  *
37
- * @param {number} x1 X coord of the first point
38
- * @param {number} y1 Y coord of the first point
39
- * @param {number} x2 X coord of the second point
40
- * @param {number} y2 Y coord of the second point
37
+ * @param {number} x1 X-axis coordinate of the start point
38
+ * @param {number} y1 Y-axis coordinate of the start point
39
+ * @param {number} x2 X-axis coordinate of the end point
40
+ * @param {number} y2 Y-axis coordinate of the end point
41
41
  * @returns {number} Computed distance
42
42
  */
43
43
  export declare function distance(x1: number, y1: number, x2: number, y2: number): number;
@@ -59,6 +59,50 @@ export declare function diagonal(width: number, height: number): number;
59
59
  * @returns {Vector3}
60
60
  */
61
61
  export declare function radToSphere(radius: number, phi: number, theta: number, target?: Vector3): Vector3;
62
+ /**
63
+ * Interpolate a point on an elliptical arc Cubic Bézier curve
64
+ *
65
+ * @param {number} t Normalized time value to interpolate
66
+ * @param {number} x1 X-axis coordinate of the start point
67
+ * @param {number} y1 Y-axis coordinate of the start point
68
+ * @param {number} cpx1 X-axis coordinate of the first control point
69
+ * @param {number} cpy1 Y-axis coordinate of the first control point
70
+ * @param {number} cpx2 X-axis coordinate of the second control point
71
+ * @param {number} cpy2 Y-axis coordinate of the second control point
72
+ * @param {number} x2 X-axis coordinate of the end point
73
+ * @param {number} y2 Y-axis coordinate of the end point
74
+ * @returns {[number, number]} Interpolated coordinates on the curve
75
+ */
76
+ export declare function cubicBezier(t: number, x1: number, y1: number, cpx1: number, cpy1: number, cpx2: number, cpy2: number, x2: number, y2: number): [number, number];
77
+ /**
78
+ * Interpolate a point on an elliptical arc Quadratic Bézier curve
79
+ *
80
+ * @param {number} t Normalized time value to interpolate
81
+ * @param {number} x1 X-axis coordinate of the start point
82
+ * @param {number} y1 Y-axis coordinate of the start point
83
+ * @param {number} cpx X-axis coordinate of the control point
84
+ * @param {number} cpy Y-axis coordinate of the control point
85
+ * @param {number} x2 X-axis coordinate of the end point
86
+ * @param {number} y2 Y-axis coordinate of the end point
87
+ * @returns {[number, number]} Interpolated coordinates on the curve
88
+ */
89
+ export declare function quadraticBesier(t: number, x1: number, y1: number, cpx: number, cpy: number, x2: number, y2: number): [number, number];
90
+ /**
91
+ * Interpolate a point on an elliptical arc
92
+ *
93
+ * @param {number} t Normalized time value to interpolate
94
+ * @param {number} x1 X-axis coordinate of the starting point of the arc
95
+ * @param {number} y1 Y-axis coordinate of the starting point of the arc
96
+ * @param {number} x2 X-axis coordinate of the ending point of the arc
97
+ * @param {number} y2 Y-axis coordinate of the ending point of the arc
98
+ * @param {number} rx X-radius of the ellipse
99
+ * @param {number} ry Y-radius of the ellipse
100
+ * @param {number} angle Rotation angle of the ellipse (in radians)
101
+ * @param {boolean} [largeArc=true] Flag indicating whether to draw the larger of the two possible arcs
102
+ * @param {boolean} [clockwise=true] Flag indicating the direction of the arc
103
+ * @returns {[number, number]} Interpolated coordinates on the arc
104
+ */
105
+ export declare function arc(t: number, x1: number, y1: number, x2: number, y2: number, rx: number, ry: number, angle: number, largeArc?: boolean, clockwise?: boolean): [number, number];
62
106
  export type FitInput = {
63
107
  width: number;
64
108
  height: number;
package/lib/geometry.js CHANGED
@@ -20,10 +20,10 @@ export function toRadians(degrees) {
20
20
  /**
21
21
  * Calculate the angle from a point to another
22
22
  *
23
- * @param {number} x1 X value of the first point
24
- * @param {number} y1 Y value of the first point
25
- * @param {number} x2 X value of the second point
26
- * @param {number} y2 Y value of the second point
23
+ * @param {number} x1 X-axis coordinate of the start point
24
+ * @param {number} y1 Y-axis coordinate of the start point
25
+ * @param {number} x2 X-axis coordinate of the end point
26
+ * @param {number} y2 Y-axis coordinate of the end point
27
27
  * @returns {number} Angle
28
28
  */
29
29
  export function angle(x1, y1, x2, y2) {
@@ -43,10 +43,10 @@ export function closestAngle(source, target) {
43
43
  /**
44
44
  * Calculate the distance between two points
45
45
  *
46
- * @param {number} x1 X coord of the first point
47
- * @param {number} y1 Y coord of the first point
48
- * @param {number} x2 X coord of the second point
49
- * @param {number} y2 Y coord of the second point
46
+ * @param {number} x1 X-axis coordinate of the start point
47
+ * @param {number} y1 Y-axis coordinate of the start point
48
+ * @param {number} x2 X-axis coordinate of the end point
49
+ * @param {number} y2 Y-axis coordinate of the end point
50
50
  * @returns {number} Computed distance
51
51
  */
52
52
  export function distance(x1, y1, x2, y2) {
@@ -79,6 +79,103 @@ export function radToSphere(radius, phi, theta, target = { x: 0, y: 0, z: 0 }) {
79
79
  target.z = radius * Math.sin(phi) * Math.cos(theta);
80
80
  return target;
81
81
  }
82
+ // *********************
83
+ // Curves
84
+ // *********************
85
+ /**
86
+ * Interpolate a point on an elliptical arc Cubic Bézier curve
87
+ *
88
+ * @param {number} t Normalized time value to interpolate
89
+ * @param {number} x1 X-axis coordinate of the start point
90
+ * @param {number} y1 Y-axis coordinate of the start point
91
+ * @param {number} cpx1 X-axis coordinate of the first control point
92
+ * @param {number} cpy1 Y-axis coordinate of the first control point
93
+ * @param {number} cpx2 X-axis coordinate of the second control point
94
+ * @param {number} cpy2 Y-axis coordinate of the second control point
95
+ * @param {number} x2 X-axis coordinate of the end point
96
+ * @param {number} y2 Y-axis coordinate of the end point
97
+ * @returns {[number, number]} Interpolated coordinates on the curve
98
+ */
99
+ export function cubicBezier(t, x1, y1, cpx1, cpy1, cpx2, cpy2, x2, y2) {
100
+ const t2 = t * t;
101
+ const t3 = t2 * t;
102
+ const T = 1 - t;
103
+ const T2 = T * T;
104
+ const T3 = T2 * T;
105
+ const x = T3 * x1 + 3 * T2 * t * cpx1 + 3 * T * t2 * cpx2 + t3 * x2;
106
+ const y = T3 * y1 + 3 * T2 * t * cpy1 + 3 * T * t2 * cpy2 + t3 * y2;
107
+ return [x, y];
108
+ }
109
+ /**
110
+ * Interpolate a point on an elliptical arc Quadratic Bézier curve
111
+ *
112
+ * @param {number} t Normalized time value to interpolate
113
+ * @param {number} x1 X-axis coordinate of the start point
114
+ * @param {number} y1 Y-axis coordinate of the start point
115
+ * @param {number} cpx X-axis coordinate of the control point
116
+ * @param {number} cpy Y-axis coordinate of the control point
117
+ * @param {number} x2 X-axis coordinate of the end point
118
+ * @param {number} y2 Y-axis coordinate of the end point
119
+ * @returns {[number, number]} Interpolated coordinates on the curve
120
+ */
121
+ export function quadraticBesier(t, x1, y1, cpx, cpy, x2, y2) {
122
+ const t2 = t * t;
123
+ const T = 1 - t;
124
+ const T2 = T * T;
125
+ const x = T2 * x1 + 2 * T * t * cpx + t2 * x2;
126
+ const y = T2 * y1 + 2 * T * t * cpy + t2 * y2;
127
+ return [x, y];
128
+ }
129
+ /**
130
+ * Interpolate a point on an elliptical arc
131
+ *
132
+ * @param {number} t Normalized time value to interpolate
133
+ * @param {number} x1 X-axis coordinate of the starting point of the arc
134
+ * @param {number} y1 Y-axis coordinate of the starting point of the arc
135
+ * @param {number} x2 X-axis coordinate of the ending point of the arc
136
+ * @param {number} y2 Y-axis coordinate of the ending point of the arc
137
+ * @param {number} rx X-radius of the ellipse
138
+ * @param {number} ry Y-radius of the ellipse
139
+ * @param {number} angle Rotation angle of the ellipse (in radians)
140
+ * @param {boolean} [largeArc=true] Flag indicating whether to draw the larger of the two possible arcs
141
+ * @param {boolean} [clockwise=true] Flag indicating the direction of the arc
142
+ * @returns {[number, number]} Interpolated coordinates on the arc
143
+ */
144
+ export function arc(t, x1, y1, x2, y2, rx, ry, angle, largeArc = true, clockwise = true) {
145
+ const centerX = (x1 - x2) / 2;
146
+ const centerY = (y1 - y2) / 2;
147
+ const cosAngle = Math.cos(angle);
148
+ const sinAngle = Math.sin(angle);
149
+ const x1p = cosAngle * centerX + sinAngle * centerY;
150
+ const y1p = -sinAngle * centerX + cosAngle * centerY;
151
+ rx = Math.abs(rx);
152
+ ry = Math.abs(ry);
153
+ const lambda = x1p ** 2 / rx ** 2 + y1p ** 2 / ry ** 2;
154
+ if (lambda > 1) {
155
+ rx *= Math.sqrt(lambda);
156
+ ry *= Math.sqrt(lambda);
157
+ }
158
+ const sign = largeArc !== clockwise ? 1 : -1;
159
+ const factor = sign *
160
+ Math.sqrt(Math.max(0, (rx ** 2 * ry ** 2 - rx ** 2 * y1p ** 2 - ry ** 2 * x1p ** 2) / (rx ** 2 * y1p ** 2 + ry ** 2 * x1p ** 2)));
161
+ const cxp = (factor * rx * y1p) / ry;
162
+ const cyp = (-factor * ry * x1p) / rx;
163
+ const cx = cosAngle * cxp - sinAngle * cyp + (x1 + x2) / 2;
164
+ const cy = sinAngle * cxp + cosAngle * cyp + (y1 + y2) / 2;
165
+ const startAngle = Math.atan2((y1p - cyp) / ry, (x1p - cxp) / rx);
166
+ const endAngle = Math.atan2((-y1p - cyp) / ry, (-x1p - cxp) / rx);
167
+ let deltaAngle = endAngle - startAngle;
168
+ if (clockwise === false && deltaAngle > 0) {
169
+ deltaAngle -= 2 * PI;
170
+ }
171
+ else if (clockwise === true && deltaAngle < 0) {
172
+ deltaAngle += 2 * PI;
173
+ }
174
+ const theta = startAngle + t * deltaAngle;
175
+ const x = cx + rx * Math.cos(theta) * cosAngle - ry * Math.sin(theta) * sinAngle;
176
+ const y = cy + rx * Math.cos(theta) * sinAngle + ry * Math.sin(theta) * cosAngle;
177
+ return [x, y];
178
+ }
82
179
  /**
83
180
  * Make a target fit a container
84
181
  *
package/lib/maths.d.ts CHANGED
@@ -46,33 +46,33 @@ export declare function clamp(value: number, min?: number, max?: number): number
46
46
  /**
47
47
  * Linear interpolation between two values (lerping)
48
48
  *
49
- * @param {number} value Normalized value to interpolate
50
- * @param {number} min Minimum value
51
- * @param {number} max Maximum value
49
+ * @param {number} t Normalized time value to interpolate
50
+ * @param {number} min Minimum value
51
+ * @param {number} max Maximum value
52
52
  * @returns {number} Lerped value
53
53
  */
54
- export declare function lerp(value: number, min: number, max: number): number;
54
+ export declare function lerp(t: number, min: number, max: number): number;
55
55
  /**
56
56
  * Triangular interpolation between two values
57
57
  *
58
- * @param {number} value Normalized value to interpolate
58
+ * @param {number} t Normalized time value to interpolate
59
59
  * @param {number} min Minimum value
60
60
  * @param {number} max Maximum value
61
61
  * @param {number} target Triangle target value
62
62
  * @returns {number} Interpolated value
63
63
  */
64
- export declare function triLerp(value: number, min: number, max: number, target: number): number;
64
+ export declare function triLerp(t: number, min: number, max: number, target: number): number;
65
65
  /**
66
66
  * Exponential interpolation between two values
67
67
  *
68
- * @param {number} value Value to interpolate
68
+ * @param {number} t Normalized time value to interpolate
69
69
  * @param {number} currentMin Lower bound of the value's current range
70
70
  * @param {number} currentMax Upper bound of the value's current range
71
71
  * @param {number} targetMin Lower bound of the value's target range
72
72
  * @param {number} targetMax Upper bound of the value's target range
73
73
  * @returns {number} Interpolated value
74
74
  */
75
- export declare function expLerp(value: number, currentMin: number, currentMax: number, targetMin: number, targetMax: number): number;
75
+ export declare function expLerp(t: number, currentMin: number, currentMax: number, targetMin: number, targetMax: number): number;
76
76
  /**
77
77
  * Normalize a value between two bounds
78
78
  *
package/lib/maths.js CHANGED
@@ -62,40 +62,40 @@ export function clamp(value, min = 0, max = 1) {
62
62
  /**
63
63
  * Linear interpolation between two values (lerping)
64
64
  *
65
- * @param {number} value Normalized value to interpolate
66
- * @param {number} min Minimum value
67
- * @param {number} max Maximum value
65
+ * @param {number} t Normalized time value to interpolate
66
+ * @param {number} min Minimum value
67
+ * @param {number} max Maximum value
68
68
  * @returns {number} Lerped value
69
69
  */
70
- export function lerp(value, min, max) {
71
- return min + (max - min) * value;
70
+ export function lerp(t, min, max) {
71
+ return min + (max - min) * t;
72
72
  }
73
73
  /**
74
74
  * Triangular interpolation between two values
75
75
  *
76
- * @param {number} value Normalized value to interpolate
76
+ * @param {number} t Normalized time value to interpolate
77
77
  * @param {number} min Minimum value
78
78
  * @param {number} max Maximum value
79
79
  * @param {number} target Triangle target value
80
80
  * @returns {number} Interpolated value
81
81
  */
82
- export function triLerp(value, min, max, target) {
82
+ export function triLerp(t, min, max, target) {
83
83
  const x = Math.pow(1 + Math.abs(target - max) / Math.abs(target - min), -1);
84
- return value <= x ? min - (min - target) * (value / x) : target - (target - max) * ((value - x) / (1 - x));
84
+ return t <= x ? min - (min - target) * (t / x) : target - (target - max) * ((t - x) / (1 - x));
85
85
  }
86
86
  /**
87
87
  * Exponential interpolation between two values
88
88
  *
89
- * @param {number} value Value to interpolate
89
+ * @param {number} t Normalized time value to interpolate
90
90
  * @param {number} currentMin Lower bound of the value's current range
91
91
  * @param {number} currentMax Upper bound of the value's current range
92
92
  * @param {number} targetMin Lower bound of the value's target range
93
93
  * @param {number} targetMax Upper bound of the value's target range
94
94
  * @returns {number} Interpolated value
95
95
  */
96
- export function expLerp(value, currentMin, currentMax, targetMin, targetMax) {
96
+ export function expLerp(t, currentMin, currentMax, targetMin, targetMax) {
97
97
  return (targetMin *
98
- Math.pow(targetMax / targetMin, (clamp(value, currentMin, currentMax) - currentMin) / (currentMax - currentMin)));
98
+ Math.pow(targetMax / targetMin, (clamp(t, currentMin, currentMax) - currentMin) / (currentMax - currentMin)));
99
99
  }
100
100
  /**
101
101
  * Normalize a value between two bounds
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.object.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/constants.ts","../src/types.ts","../src/geometry.ts","../src/maths.ts","../src/colors.ts","../src/dom.ts","../src/files.ts","../src/functions.ts","../src/prng.ts","../src/query.ts","../src/random.ts","../src/strings.ts","../src/classes/_pool.ts","../src/classes/color-scale.ts","../src/classes/frame-rate.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","886e50ef125efb7878f744e86908884c0133e7a6d9d80013f421b0cd8fb2af94",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"45cf2eb6cd6d7189ff80c87564aaa4fea53eb4c3da65d5e641127373de571cd9","signature":"0b4eec0a8599d6713095e0af18ab7e6204b675cd9fe8b2d02d04d66746e586e1"},{"version":"4081f0b74378ad72b7d0437cc085790616e863a2237409408b4ebfefb1dcb565","signature":"b10a0e63e1d8780944a62d94f79acf7b71b07bccd70934be176a31bb44328e16"},{"version":"fa1ce8e107edcf5402efb7d84813129eb9ae73a96b23bf11598a5eef79a3d3f9","signature":"85cbbc943748ffbd0c7170ba038c9c651fdce4dfbb127755b42e59f5a8e9edf2"},{"version":"5f0fcfcbcc870dcdeb52d296b5bd1901a9cd04a1616cd7f1bcf8e47bf3a8cc47","signature":"a0ff24ef84faa00948def16d69f7a1604e4f52088597b022145265391b5561ab"},{"version":"72cb034a46d7ab7bc377e5492915bd65baceac0fa3f960861c52e5a166818f7d","signature":"f050bc3aefd3841cd01f8ae29fa09bf78246975c5983da82a5d34a35bc342e84"},{"version":"2319a6f113ef4cc739b0144f40434149fc6b681af1c7a0868c347c167cf21285","signature":"309de51e4d0b348939ba9d776c0ba208b4d4b8347de072a8af7ea43d6339233a"},{"version":"d52ff004bb7cd1c00d0a179f4b0893ddf84cdafc6830b2ceafc814804dfff9a5","signature":"4d71e33886aa72fef5fe425d76a3557f6553ee0b08863733656d58b91b8a6e77"},{"version":"c7b93e1b93c8a738763ad4faa9c78302ccd8a06641037582bd935b8eb1aacce3","signature":"d2951601eea48e682032e8c5bd5e7a70c64abe03a57a0573abdea62100e38f82"},{"version":"abf157af4c9f3385a2f62d2fd751d67e868bd66bde489ca17d8bea83bfe0e9e5","signature":"3244739232ed0f77eb4aa4cd9af4feddcf5c3eabdf4f6c3388a5a75569935adb"},{"version":"10264fe1de3f0382802714f56b647344e758d682320b9605b0cd133a5322b7eb","signature":"027a0b75ecc4aca51f293dab58d070cd0d844e64c1557fcefa3581617f0b9733"},{"version":"3f4f97806466e0c4f906c8acbdd8f272362a2f6ccd18bbfdbb0886b4f44a9015","signature":"fb0ac8ea5e50c65d0a51af06faa24b82ce90fdbd2ef6ce6db5d773433e4c1b1a"},{"version":"fb82dc4ee7474b17ee18f8f486c72dc08d4a4a58de1fa5bd848f605dc35aea56","signature":"4dfc999d370f6f4e1172db031360eb34235ed377f9556010e0abba18df13a4be"},{"version":"7bc4d01db2f1ddfa2e7df8296e45b5f4403acb4acc46b8fd9a558308c58ede73","signature":"ed5b0fb47fcfa158461fd0d3dad57a8c0ddc976112798b8cfbfcf68e43550a35"},{"version":"1595db0c3abc543ff883ee0aa1b929aa8e86c03a5f19c5448a54f179064cc239","signature":"261ef4a665f5a6e9e28dfee9c2937d46b3b4958aad127d1d21b22b38a5a21449"},{"version":"1bb614fee833c30ffdc7ccac0743f50bc58ad8da274759973b1f8ee223a5f482","signature":"658f275e39f25ec9655c143d4604e7aca92cbd4725466976160f1b1d82e22096"},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"7fd7fcbf021a5845bdd9397d4649fcf2fe17152d2098140fc723099a215d19ad","affectsGlobalScope":true},"df3389f71a71a38bc931aaf1ef97a65fada98f0a27f19dd12f8b8de2b0f4e461","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"a1d2988ad9d2aef7b9915a22b5e52c165c83a878f2851c35621409046bbe3c05","affectsGlobalScope":true},"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"674168aa3db414ea0a19b2a31d901b2d49705c7a495e43ffdc96928543010f8c","affectsGlobalScope":true},"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","afb1701fd4be413a8a5a88df6befdd4510c30a31372c07a4138facf61594c66d","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"c07146dbbbd8b347241b5df250a51e48f2d7bef19b1e187b1a3f20c849988ff1","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true},{"version":"0666f4c99b8688c7be5956df8fecf5d1779d3b22f8f2a88258ae7072c7b6026f","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","7424817d5eb498771e6d1808d726ec38f75d2eaf3fa359edd5c0c540c52725c1","9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024",{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"94c086dff8dbc5998749326bc69b520e8e4273fb5b7b58b50e0210e0885dfcde","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"ebe5facd12fd7745cda5f4bc3319f91fb29dc1f96e57e9c6f8b260a7cc5b67ee","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","37dc027f781c75f0f546e329cfac7cf92a6b289f42458f47a9adc25e516b6839",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"root":[[70,84]],"options":{"allowJs":true,"checkJs":true,"declaration":true,"module":99,"outDir":"./","skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[85],[120],[121,126,154],[122,133,134,141,151,162],[122,123,133,141],[124,163],[125,126,134,142],[126,151,159],[127,129,133,141],[120,128],[129,130],[133],[131,133],[120,133],[133,134,135,151,162],[133,134,135,148,151,154],[118,121,167],[129,133,136,141,151,162],[133,134,136,137,141,151,159,162],[136,138,151,159,162],[85,86,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169],[133,139],[140,162,167],[129,133,141,151],[142],[143],[120,144],[145,161,167],[146],[147],[133,148,149],[148,150,163,165],[121,133,151,152,153,154],[121,151,153],[151,152],[154],[155],[120,151],[133,157,158],[157,158],[126,141,151,159],[160],[141,161],[121,136,147,162],[126,163],[151,164],[140,165],[166],[121,126,133,135,144,151,162,165,167],[151,168],[95,99,162],[95,151,162],[90],[92,95,159,162],[141,159],[170],[90,170],[92,95,141,162],[87,88,91,94,121,133,151,162],[87,93],[91,95,121,154,162,170],[121,170],[111,121,170],[89,90,170],[95],[89,90,91,92,93,94,95,96,97,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117],[95,102,103],[93,95,103,104],[94],[87,90,95],[95,99,103,104],[99],[93,95,98,162],[87,92,93,95,99,102],[121,151],[90,95,111,121,167,170],[71,73,74],[77],[70,71,72,73],[71],[70,71],[71,72],[70]],"referencedMap":[[85,1],[86,1],[120,2],[121,3],[122,4],[123,5],[124,6],[125,7],[126,8],[127,9],[128,10],[129,11],[130,11],[132,12],[131,13],[133,14],[134,15],[135,16],[119,17],[136,18],[137,19],[138,20],[170,21],[139,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,31],[150,32],[151,33],[153,34],[152,35],[154,36],[155,37],[156,38],[157,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[102,51],[109,52],[101,51],[116,53],[93,54],[92,55],[115,56],[110,57],[113,58],[95,59],[94,60],[90,61],[89,62],[112,63],[91,64],[96,65],[100,65],[118,66],[117,65],[104,67],[105,68],[107,69],[103,70],[106,71],[111,56],[98,72],[99,73],[108,74],[88,75],[114,76],[83,77],[84,78],[74,79],[77,80],[72,81],[80,82],[71,83]],"exportedModulesMap":[[85,1],[86,1],[120,2],[121,3],[122,4],[123,5],[124,6],[125,7],[126,8],[127,9],[128,10],[129,11],[130,11],[132,12],[131,13],[133,14],[134,15],[135,16],[119,17],[136,18],[137,19],[138,20],[170,21],[139,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,31],[150,32],[151,33],[153,34],[152,35],[154,36],[155,37],[156,38],[157,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[102,51],[109,52],[101,51],[116,53],[93,54],[92,55],[115,56],[110,57],[113,58],[95,59],[94,60],[90,61],[89,62],[112,63],[91,64],[96,65],[100,65],[118,66],[117,65],[104,67],[105,68],[107,69],[103,70],[106,71],[111,56],[98,72],[99,73],[108,74],[88,75],[114,76],[83,80],[74,80],[77,80],[72,80],[80,80],[71,83]],"semanticDiagnosticsPerFile":[85,86,120,121,122,123,124,125,126,127,128,129,130,132,131,133,134,135,119,169,136,137,138,170,139,140,141,142,143,144,145,146,147,148,149,150,151,153,152,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,68,69,12,13,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,11,66,64,63,67,65,102,109,101,116,93,92,115,110,113,95,94,90,89,112,91,96,97,100,87,118,117,104,105,107,103,106,111,98,99,108,88,114,82,83,84,74,70,75,76,77,72,73,78,79,80,81,71]},"version":"5.4.2"}
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.object.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/constants.ts","../src/types.ts","../src/geometry.ts","../src/maths.ts","../src/colors.ts","../src/dom.ts","../src/files.ts","../src/functions.ts","../src/prng.ts","../src/query.ts","../src/random.ts","../src/strings.ts","../src/classes/_pool.ts","../src/classes/color-scale.ts","../src/classes/frame-rate.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","886e50ef125efb7878f744e86908884c0133e7a6d9d80013f421b0cd8fb2af94",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"45cf2eb6cd6d7189ff80c87564aaa4fea53eb4c3da65d5e641127373de571cd9","signature":"0b4eec0a8599d6713095e0af18ab7e6204b675cd9fe8b2d02d04d66746e586e1"},{"version":"4081f0b74378ad72b7d0437cc085790616e863a2237409408b4ebfefb1dcb565","signature":"b10a0e63e1d8780944a62d94f79acf7b71b07bccd70934be176a31bb44328e16"},{"version":"6b72071c318f9d58e578adb9b1fc7e8efbcd97ac06d7a5ebe664aaeb7203ea89","signature":"8ca64610bb38e31a24b92d1cbaa1fed6150bc3ea77a43b1bbda8478a356eaf8b"},{"version":"df8f01a1ba4f3369c8b15d38fb6a9f0fd839e34ef76904deab2aaf996740aac8","signature":"b91d086d99300009fd42a09c07971ccbdc42d8ad2f92e6991fe16dc6a59a20f5"},{"version":"72cb034a46d7ab7bc377e5492915bd65baceac0fa3f960861c52e5a166818f7d","signature":"f050bc3aefd3841cd01f8ae29fa09bf78246975c5983da82a5d34a35bc342e84"},{"version":"2319a6f113ef4cc739b0144f40434149fc6b681af1c7a0868c347c167cf21285","signature":"309de51e4d0b348939ba9d776c0ba208b4d4b8347de072a8af7ea43d6339233a"},{"version":"d52ff004bb7cd1c00d0a179f4b0893ddf84cdafc6830b2ceafc814804dfff9a5","signature":"4d71e33886aa72fef5fe425d76a3557f6553ee0b08863733656d58b91b8a6e77"},{"version":"c7b93e1b93c8a738763ad4faa9c78302ccd8a06641037582bd935b8eb1aacce3","signature":"d2951601eea48e682032e8c5bd5e7a70c64abe03a57a0573abdea62100e38f82"},{"version":"abf157af4c9f3385a2f62d2fd751d67e868bd66bde489ca17d8bea83bfe0e9e5","signature":"3244739232ed0f77eb4aa4cd9af4feddcf5c3eabdf4f6c3388a5a75569935adb"},{"version":"10264fe1de3f0382802714f56b647344e758d682320b9605b0cd133a5322b7eb","signature":"027a0b75ecc4aca51f293dab58d070cd0d844e64c1557fcefa3581617f0b9733"},{"version":"3f4f97806466e0c4f906c8acbdd8f272362a2f6ccd18bbfdbb0886b4f44a9015","signature":"fb0ac8ea5e50c65d0a51af06faa24b82ce90fdbd2ef6ce6db5d773433e4c1b1a"},{"version":"fb82dc4ee7474b17ee18f8f486c72dc08d4a4a58de1fa5bd848f605dc35aea56","signature":"4dfc999d370f6f4e1172db031360eb34235ed377f9556010e0abba18df13a4be"},{"version":"7bc4d01db2f1ddfa2e7df8296e45b5f4403acb4acc46b8fd9a558308c58ede73","signature":"ed5b0fb47fcfa158461fd0d3dad57a8c0ddc976112798b8cfbfcf68e43550a35"},{"version":"1595db0c3abc543ff883ee0aa1b929aa8e86c03a5f19c5448a54f179064cc239","signature":"261ef4a665f5a6e9e28dfee9c2937d46b3b4958aad127d1d21b22b38a5a21449"},{"version":"1bb614fee833c30ffdc7ccac0743f50bc58ad8da274759973b1f8ee223a5f482","signature":"658f275e39f25ec9655c143d4604e7aca92cbd4725466976160f1b1d82e22096"},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"7fd7fcbf021a5845bdd9397d4649fcf2fe17152d2098140fc723099a215d19ad","affectsGlobalScope":true},"df3389f71a71a38bc931aaf1ef97a65fada98f0a27f19dd12f8b8de2b0f4e461","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"a1d2988ad9d2aef7b9915a22b5e52c165c83a878f2851c35621409046bbe3c05","affectsGlobalScope":true},"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"674168aa3db414ea0a19b2a31d901b2d49705c7a495e43ffdc96928543010f8c","affectsGlobalScope":true},"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","afb1701fd4be413a8a5a88df6befdd4510c30a31372c07a4138facf61594c66d","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"c07146dbbbd8b347241b5df250a51e48f2d7bef19b1e187b1a3f20c849988ff1","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true},{"version":"0666f4c99b8688c7be5956df8fecf5d1779d3b22f8f2a88258ae7072c7b6026f","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","7424817d5eb498771e6d1808d726ec38f75d2eaf3fa359edd5c0c540c52725c1","9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024",{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"94c086dff8dbc5998749326bc69b520e8e4273fb5b7b58b50e0210e0885dfcde","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"ebe5facd12fd7745cda5f4bc3319f91fb29dc1f96e57e9c6f8b260a7cc5b67ee","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","37dc027f781c75f0f546e329cfac7cf92a6b289f42458f47a9adc25e516b6839",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"root":[[70,84]],"options":{"allowJs":true,"checkJs":true,"declaration":true,"module":99,"outDir":"./","skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[85],[120],[121,126,154],[122,133,134,141,151,162],[122,123,133,141],[124,163],[125,126,134,142],[126,151,159],[127,129,133,141],[120,128],[129,130],[133],[131,133],[120,133],[133,134,135,151,162],[133,134,135,148,151,154],[118,121,167],[129,133,136,141,151,162],[133,134,136,137,141,151,159,162],[136,138,151,159,162],[85,86,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169],[133,139],[140,162,167],[129,133,141,151],[142],[143],[120,144],[145,161,167],[146],[147],[133,148,149],[148,150,163,165],[121,133,151,152,153,154],[121,151,153],[151,152],[154],[155],[120,151],[133,157,158],[157,158],[126,141,151,159],[160],[141,161],[121,136,147,162],[126,163],[151,164],[140,165],[166],[121,126,133,135,144,151,162,165,167],[151,168],[95,99,162],[95,151,162],[90],[92,95,159,162],[141,159],[170],[90,170],[92,95,141,162],[87,88,91,94,121,133,151,162],[87,93],[91,95,121,154,162,170],[121,170],[111,121,170],[89,90,170],[95],[89,90,91,92,93,94,95,96,97,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117],[95,102,103],[93,95,103,104],[94],[87,90,95],[95,99,103,104],[99],[93,95,98,162],[87,92,93,95,99,102],[121,151],[90,95,111,121,167,170],[71,73,74],[77],[70,71,72,73],[71],[70,71],[71,72],[70]],"referencedMap":[[85,1],[86,1],[120,2],[121,3],[122,4],[123,5],[124,6],[125,7],[126,8],[127,9],[128,10],[129,11],[130,11],[132,12],[131,13],[133,14],[134,15],[135,16],[119,17],[136,18],[137,19],[138,20],[170,21],[139,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,31],[150,32],[151,33],[153,34],[152,35],[154,36],[155,37],[156,38],[157,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[102,51],[109,52],[101,51],[116,53],[93,54],[92,55],[115,56],[110,57],[113,58],[95,59],[94,60],[90,61],[89,62],[112,63],[91,64],[96,65],[100,65],[118,66],[117,65],[104,67],[105,68],[107,69],[103,70],[106,71],[111,56],[98,72],[99,73],[108,74],[88,75],[114,76],[83,77],[84,78],[74,79],[77,80],[72,81],[80,82],[71,83]],"exportedModulesMap":[[85,1],[86,1],[120,2],[121,3],[122,4],[123,5],[124,6],[125,7],[126,8],[127,9],[128,10],[129,11],[130,11],[132,12],[131,13],[133,14],[134,15],[135,16],[119,17],[136,18],[137,19],[138,20],[170,21],[139,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,31],[150,32],[151,33],[153,34],[152,35],[154,36],[155,37],[156,38],[157,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[102,51],[109,52],[101,51],[116,53],[93,54],[92,55],[115,56],[110,57],[113,58],[95,59],[94,60],[90,61],[89,62],[112,63],[91,64],[96,65],[100,65],[118,66],[117,65],[104,67],[105,68],[107,69],[103,70],[106,71],[111,56],[98,72],[99,73],[108,74],[88,75],[114,76],[83,80],[74,80],[77,80],[72,80],[80,80],[71,83]],"semanticDiagnosticsPerFile":[85,86,120,121,122,123,124,125,126,127,128,129,130,132,131,133,134,135,119,169,136,137,138,170,139,140,141,142,143,144,145,146,147,148,149,150,151,153,152,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,68,69,12,13,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,11,66,64,63,67,65,102,109,101,116,93,92,115,110,113,95,94,90,89,112,91,96,97,100,87,118,117,104,105,107,103,106,111,98,99,108,88,114,82,83,84,74,70,75,76,77,72,73,78,79,80,81,71]},"version":"5.4.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toosoon-utils",
3
- "version": "4.0.3",
3
+ "version": "4.0.4",
4
4
  "description": "Utility functions & classes",
5
5
  "type": "module",
6
6
  "engines": {