@oliversalzburg/js-utils 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/package.json +5 -5
  2. package/lib/async/async.d.ts +0 -44
  3. package/lib/async/async.js +0 -76
  4. package/lib/async/async.js.map +0 -1
  5. package/lib/async/async.test.d.ts +0 -1
  6. package/lib/async/async.test.js +0 -26
  7. package/lib/async/async.test.js.map +0 -1
  8. package/lib/core.d.ts +0 -43
  9. package/lib/core.js +0 -2
  10. package/lib/core.js.map +0 -1
  11. package/lib/data/array.d.ts +0 -45
  12. package/lib/data/array.js +0 -70
  13. package/lib/data/array.js.map +0 -1
  14. package/lib/data/nil.d.ts +0 -92
  15. package/lib/data/nil.js +0 -131
  16. package/lib/data/nil.js.map +0 -1
  17. package/lib/data/random.d.ts +0 -111
  18. package/lib/data/random.js +0 -377
  19. package/lib/data/random.js.map +0 -1
  20. package/lib/data/string.d.ts +0 -30
  21. package/lib/data/string.js +0 -52
  22. package/lib/data/string.js.map +0 -1
  23. package/lib/data/tree.d.ts +0 -28
  24. package/lib/data/tree.js +0 -45
  25. package/lib/data/tree.js.map +0 -1
  26. package/lib/device/shake.d.ts +0 -79
  27. package/lib/device/shake.js +0 -135
  28. package/lib/device/shake.js.map +0 -1
  29. package/lib/dom/core.d.ts +0 -21
  30. package/lib/dom/core.js +0 -41
  31. package/lib/dom/core.js.map +0 -1
  32. package/lib/errors/AbstractError.d.ts +0 -29
  33. package/lib/errors/AbstractError.js +0 -59
  34. package/lib/errors/AbstractError.js.map +0 -1
  35. package/lib/errors/InternalError.d.ts +0 -19
  36. package/lib/errors/InternalError.js +0 -38
  37. package/lib/errors/InternalError.js.map +0 -1
  38. package/lib/errors/InvalidArgumentError.d.ts +0 -13
  39. package/lib/errors/InvalidArgumentError.js +0 -22
  40. package/lib/errors/InvalidArgumentError.js.map +0 -1
  41. package/lib/errors/InvalidOperationError.d.ts +0 -13
  42. package/lib/errors/InvalidOperationError.js +0 -22
  43. package/lib/errors/InvalidOperationError.js.map +0 -1
  44. package/lib/errors/NotImplementedError.d.ts +0 -12
  45. package/lib/errors/NotImplementedError.js +0 -21
  46. package/lib/errors/NotImplementedError.js.map +0 -1
  47. package/lib/errors/PermissionViolationError.d.ts +0 -13
  48. package/lib/errors/PermissionViolationError.js +0 -22
  49. package/lib/errors/PermissionViolationError.js.map +0 -1
  50. package/lib/errors/ResourceConflictError.d.ts +0 -12
  51. package/lib/errors/ResourceConflictError.js +0 -21
  52. package/lib/errors/ResourceConflictError.js.map +0 -1
  53. package/lib/errors/UnknownError.d.ts +0 -16
  54. package/lib/errors/UnknownError.js +0 -25
  55. package/lib/errors/UnknownError.js.map +0 -1
  56. package/lib/errors/console.d.ts +0 -7
  57. package/lib/errors/console.js +0 -13
  58. package/lib/errors/console.js.map +0 -1
  59. package/lib/errors/error-serializer.d.ts +0 -45
  60. package/lib/errors/error-serializer.js +0 -71
  61. package/lib/errors/error-serializer.js.map +0 -1
  62. package/lib/errors/error-serializer.test.d.ts +0 -1
  63. package/lib/errors/error-serializer.test.js +0 -109
  64. package/lib/errors/error-serializer.test.js.map +0 -1
  65. package/lib/errors/stream.d.ts +0 -7
  66. package/lib/errors/stream.js +0 -15
  67. package/lib/errors/stream.js.map +0 -1
  68. package/lib/errors/tools.d.ts +0 -10
  69. package/lib/errors/tools.js +0 -13
  70. package/lib/errors/tools.js.map +0 -1
  71. package/lib/events/event.d.ts +0 -9
  72. package/lib/events/event.js +0 -10
  73. package/lib/events/event.js.map +0 -1
  74. package/lib/format/bytes.d.ts +0 -118
  75. package/lib/format/bytes.js +0 -99
  76. package/lib/format/bytes.js.map +0 -1
  77. package/lib/format/bytes.test.d.ts +0 -1
  78. package/lib/format/bytes.test.js +0 -138
  79. package/lib/format/bytes.test.js.map +0 -1
  80. package/lib/format/count.d.ts +0 -14
  81. package/lib/format/count.js +0 -50
  82. package/lib/format/count.js.map +0 -1
  83. package/lib/format/count.test.d.ts +0 -1
  84. package/lib/format/count.test.js +0 -42
  85. package/lib/format/count.test.js.map +0 -1
  86. package/lib/format/milliseconds.d.ts +0 -100
  87. package/lib/format/milliseconds.js +0 -192
  88. package/lib/format/milliseconds.js.map +0 -1
  89. package/lib/format/milliseconds.test.d.ts +0 -1
  90. package/lib/format/milliseconds.test.js +0 -343
  91. package/lib/format/milliseconds.test.js.map +0 -1
  92. package/lib/format/string.d.ts +0 -24
  93. package/lib/format/string.js +0 -30
  94. package/lib/format/string.js.map +0 -1
  95. package/lib/format/string.test.d.ts +0 -1
  96. package/lib/format/string.test.js +0 -17
  97. package/lib/format/string.test.js.map +0 -1
  98. package/lib/graphics/canvas-sandbox-mp.d.ts +0 -258
  99. package/lib/graphics/canvas-sandbox-mp.js +0 -279
  100. package/lib/graphics/canvas-sandbox-mp.js.map +0 -1
  101. package/lib/graphics/canvas-sandbox.d.ts +0 -255
  102. package/lib/graphics/canvas-sandbox.js +0 -361
  103. package/lib/graphics/canvas-sandbox.js.map +0 -1
  104. package/lib/graphics/canvas.d.ts +0 -57
  105. package/lib/graphics/canvas.js +0 -37
  106. package/lib/graphics/canvas.js.map +0 -1
  107. package/lib/graphics/canvas2d-headless.d.ts +0 -85
  108. package/lib/graphics/canvas2d-headless.js +0 -193
  109. package/lib/graphics/canvas2d-headless.js.map +0 -1
  110. package/lib/graphics/canvas2d.d.ts +0 -162
  111. package/lib/graphics/canvas2d.js +0 -328
  112. package/lib/graphics/canvas2d.js.map +0 -1
  113. package/lib/graphics/canvas3d.d.ts +0 -41
  114. package/lib/graphics/canvas3d.js +0 -67
  115. package/lib/graphics/canvas3d.js.map +0 -1
  116. package/lib/graphics/color.d.ts +0 -22
  117. package/lib/graphics/color.js +0 -42
  118. package/lib/graphics/color.js.map +0 -1
  119. package/lib/graphics/core.d.ts +0 -89
  120. package/lib/graphics/core.js +0 -146
  121. package/lib/graphics/core.js.map +0 -1
  122. package/lib/graphics/palette-sampler.d.ts +0 -7
  123. package/lib/graphics/palette-sampler.js +0 -21
  124. package/lib/graphics/palette-sampler.js.map +0 -1
  125. package/lib/graphics/palette.d.ts +0 -120
  126. package/lib/graphics/palette.js +0 -494
  127. package/lib/graphics/palette.js.map +0 -1
  128. package/lib/graphics/palette.test.d.ts +0 -1
  129. package/lib/graphics/palette.test.js +0 -43
  130. package/lib/graphics/palette.test.js.map +0 -1
  131. package/lib/graphics/render-loop.d.ts +0 -80
  132. package/lib/graphics/render-loop.js +0 -120
  133. package/lib/graphics/render-loop.js.map +0 -1
  134. package/lib/graphics/shader.d.ts +0 -56
  135. package/lib/graphics/shader.js +0 -80
  136. package/lib/graphics/shader.js.map +0 -1
  137. package/lib/log/log.d.ts +0 -11
  138. package/lib/log/log.js +0 -2
  139. package/lib/log/log.js.map +0 -1
  140. package/lib/log/report.d.ts +0 -57
  141. package/lib/log/report.js +0 -88
  142. package/lib/log/report.js.map +0 -1
  143. package/lib/math/core.d.ts +0 -85
  144. package/lib/math/core.js +0 -125
  145. package/lib/math/core.js.map +0 -1
  146. package/lib/math/easing.d.ts +0 -204
  147. package/lib/math/easing.js +0 -332
  148. package/lib/math/easing.js.map +0 -1
  149. package/lib/math/euler.d.ts +0 -18
  150. package/lib/math/euler.js +0 -22
  151. package/lib/math/euler.js.map +0 -1
  152. package/lib/math/matrix3.d.ts +0 -217
  153. package/lib/math/matrix3.js +0 -508
  154. package/lib/math/matrix3.js.map +0 -1
  155. package/lib/math/quaternion.d.ts +0 -119
  156. package/lib/math/quaternion.js +0 -270
  157. package/lib/math/quaternion.js.map +0 -1
  158. package/lib/math/transformation.d.ts +0 -26
  159. package/lib/math/transformation.js +0 -31
  160. package/lib/math/transformation.js.map +0 -1
  161. package/lib/math/vector2.d.ts +0 -202
  162. package/lib/math/vector2.js +0 -310
  163. package/lib/math/vector2.js.map +0 -1
  164. package/lib/math/vector3.d.ts +0 -293
  165. package/lib/math/vector3.js +0 -492
  166. package/lib/math/vector3.js.map +0 -1
  167. package/lib/math/vector4.d.ts +0 -182
  168. package/lib/math/vector4.js +0 -302
  169. package/lib/math/vector4.js.map +0 -1
  170. package/lib/measurement/performance.d.ts +0 -13
  171. package/lib/measurement/performance.js +0 -19
  172. package/lib/measurement/performance.js.map +0 -1
@@ -1,111 +0,0 @@
1
- /**
2
- * Helps with generating random numbers.
3
- */
4
- export declare class Random {
5
- /**
6
- * The value this PRNG was seeded with.
7
- */
8
- private _seed;
9
- /**
10
- * Retrieve the seed of the PRNG.
11
- * @returns The seed of the PRNG.
12
- */
13
- get seed(): number;
14
- /**
15
- * The permutation table for simplex noise.
16
- */
17
- private _perm;
18
- /**
19
- * The gradient map for simplex noise.
20
- */
21
- private _gradP;
22
- /**
23
- * Skewing and unskewing factors for 2, 3, and 4 dimensions.
24
- */
25
- private _F2;
26
- /**
27
- * Skewing and unskewing factors for 2, 3, and 4 dimensions.
28
- */
29
- private _G2;
30
- /**
31
- * Creates a pseudo-random value generator. The seed must be an integer.
32
- *
33
- * Uses an optimized version of the Park-Miller PRNG.
34
- * http://www.firstpr.com.au/dsp/rand31/
35
- * @param seed - The seed for the random number generator.
36
- */
37
- constructor(seed?: number);
38
- /**
39
- * Returns a pseudo-random value between 1 and 2^32 - 2.
40
- * @returns A pseudo-random value between 1 and 2^32 - 2.
41
- */
42
- next(): number;
43
- /**
44
- * Returns a random value in a given range.
45
- * @param min - The lower bound.
46
- * @param max - The upper bound.
47
- * @returns A random value between the lower and upper bound.
48
- */
49
- nextRange(min: number, max: number): number;
50
- /**
51
- * Returns either `true` or `false`.
52
- * @returns Either `true` or `false`.
53
- */
54
- nextBoolean(): boolean;
55
- /**
56
- * Returns a pseudo-random floating point number in range [0, 1).
57
- * @returns a pseudo-random floating point number in range [0, 1).
58
- */
59
- nextFloat(): number;
60
- /**
61
- * Creates a new Random instance, with a seed that is based of the seed
62
- * of this Random instance.
63
- * @returns A new random number generator.
64
- */
65
- nextRandom(): Random;
66
- static ALLOWED_CHARACTERS: string;
67
- /**
68
- * Returns a random ASCII string.
69
- * @param length - The length of the string.
70
- * @returns A random ASCII string.
71
- */
72
- nextString(length: number, characters?: string): string;
73
- /**
74
- * Returns a 2D simplex noise value for a given input coordinate.
75
- * @param x - The X input coordinate.
76
- * @param y - The Y input coordinate.
77
- * @returns The noise value for the input coordinates.
78
- */
79
- simplex2(x: number, y: number): number;
80
- /**
81
- * Returns a 3D simplex noise value for a given input coordinate.
82
- * @param x - The X input coordinate.
83
- * @param y - The Y input coordinate.
84
- * @param z - The Z input coordinate.
85
- * @returns The noise value for the input coordinates.
86
- */
87
- simplex3(x: number, y: number, z: number): number;
88
- }
89
- /**
90
- * Returns a random value in a given range.
91
- *
92
- * Uses the JS-internal `Math.random()`. Use {@linkcode Random} for a PRNG with more features.
93
- *
94
- * Note that this method returns floating point numbers, regardless of your inputs potentially
95
- * being integers. If you require integers, ensure to truncate the resulting random value.
96
- * @param min - The lower bound.
97
- * @param max - The upper bound.
98
- * @returns A random value between the lower and upper bound.
99
- */
100
- export declare const randomRange: (min: number, max: number) => number;
101
- /**
102
- * Generates a numberic seed, to be used as an input for a PRNG,
103
- * from a string.
104
- * @param input - The string to use as a seed.
105
- * @returns A numeric seed value for a PRNG.
106
- */
107
- export declare const seedFromString: (input: string) => number;
108
- /**
109
- * A global PRNG instance that is ready-to-use.
110
- */
111
- export declare const random: Random;
@@ -1,377 +0,0 @@
1
- import { Vector3 } from "../math/vector3.js";
2
- /**
3
- * Helps with generating random numbers.
4
- */
5
- export class Random {
6
- /**
7
- * The value this PRNG was seeded with.
8
- */
9
- _seed;
10
- /**
11
- * Retrieve the seed of the PRNG.
12
- * @returns The seed of the PRNG.
13
- */
14
- get seed() {
15
- return this._seed;
16
- }
17
- /**
18
- * The permutation table for simplex noise.
19
- */
20
- _perm;
21
- /**
22
- * The gradient map for simplex noise.
23
- */
24
- _gradP;
25
- /**
26
- * Skewing and unskewing factors for 2, 3, and 4 dimensions.
27
- */
28
- _F2;
29
- /**
30
- * Skewing and unskewing factors for 2, 3, and 4 dimensions.
31
- */
32
- _G2;
33
- /**
34
- * Creates a pseudo-random value generator. The seed must be an integer.
35
- *
36
- * Uses an optimized version of the Park-Miller PRNG.
37
- * http://www.firstpr.com.au/dsp/rand31/
38
- * @param seed - The seed for the random number generator.
39
- */
40
- constructor(seed = 0) {
41
- this._seed = Math.trunc(seed) % 2147483647;
42
- if (this._seed <= 0) {
43
- this._seed += 2147483646;
44
- }
45
- const grad3 = [
46
- new Vector3(1, 1, 0),
47
- new Vector3(-1, 1, 0),
48
- new Vector3(1, -1, 0),
49
- new Vector3(-1, -1, 0),
50
- new Vector3(1, 0, 1),
51
- new Vector3(-1, 0, 1),
52
- new Vector3(1, 0, -1),
53
- new Vector3(-1, 0, -1),
54
- new Vector3(0, 1, 1),
55
- new Vector3(0, -1, 1),
56
- new Vector3(0, 1, -1),
57
- new Vector3(0, -1, -1),
58
- ];
59
- const p = [
60
- 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69,
61
- 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219,
62
- 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175,
63
- 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230,
64
- 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209,
65
- 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198,
66
- 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212,
67
- 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44,
68
- 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79,
69
- 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12,
70
- 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157,
71
- 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29,
72
- 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180,
73
- ];
74
- this._perm = new Array(512);
75
- this._gradP = new Array(512);
76
- for (let i = 0; i < 256; i++) {
77
- let v;
78
- if (i & 1) {
79
- v = p[i] ^ (this._seed & 255);
80
- }
81
- else {
82
- v = p[i] ^ ((this._seed >> 8) & 255);
83
- }
84
- this._perm[i] = this._perm[i + 256] = v;
85
- this._gradP[i] = this._gradP[i + 256] = grad3[v % 12];
86
- }
87
- this._F2 = 0.5 * (Math.sqrt(3) - 1);
88
- this._G2 = (3 - Math.sqrt(3)) / 6;
89
- }
90
- /**
91
- * Returns a pseudo-random value between 1 and 2^32 - 2.
92
- * @returns A pseudo-random value between 1 and 2^32 - 2.
93
- */
94
- next() {
95
- return (this._seed = (this._seed * 16807) % 2147483647);
96
- }
97
- /**
98
- * Returns a random value in a given range.
99
- * @param min - The lower bound.
100
- * @param max - The upper bound.
101
- * @returns A random value between the lower and upper bound.
102
- */
103
- nextRange(min, max) {
104
- return this.nextFloat() * (max - min) + min;
105
- }
106
- /**
107
- * Returns either `true` or `false`.
108
- * @returns Either `true` or `false`.
109
- */
110
- nextBoolean() {
111
- return this.next() < 2147483646 / 2;
112
- }
113
- /**
114
- * Returns a pseudo-random floating point number in range [0, 1).
115
- * @returns a pseudo-random floating point number in range [0, 1).
116
- */
117
- nextFloat() {
118
- // We know that result of next() will be 1 to 2147483646 (inclusive).
119
- return (this.next() - 1) / 2147483646;
120
- }
121
- /**
122
- * Creates a new Random instance, with a seed that is based of the seed
123
- * of this Random instance.
124
- * @returns A new random number generator.
125
- */
126
- nextRandom() {
127
- return new Random(this.seed + 1);
128
- }
129
- static ALLOWED_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
130
- /**
131
- * Returns a random ASCII string.
132
- * @param length - The length of the string.
133
- * @returns A random ASCII string.
134
- */
135
- nextString(length, characters = Random.ALLOWED_CHARACTERS) {
136
- let result = "";
137
- while (result.length < length) {
138
- const characterIndex = Math.floor(this.nextFloat() * characters.length);
139
- result += characters.substring(characterIndex, characterIndex + 1);
140
- }
141
- return result;
142
- }
143
- /**
144
- * Returns a 2D simplex noise value for a given input coordinate.
145
- * @param x - The X input coordinate.
146
- * @param y - The Y input coordinate.
147
- * @returns The noise value for the input coordinates.
148
- */
149
- simplex2(x, y) {
150
- let n0, n1, n2; // Noise contributions from the three corners
151
- // Skew the input space to determine which simplex cell we're in
152
- const s = (x + y) * this._F2; // Hairy factor for 2D
153
- let i = Math.floor(x + s);
154
- let j = Math.floor(y + s);
155
- const t = (i + j) * this._G2;
156
- const x0 = x - i + t; // The x,y distances from the cell origin, unskewed.
157
- const y0 = y - j + t;
158
- // For the 2D case, the simplex shape is an equilateral triangle.
159
- // Determine which simplex we are in.
160
- let i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords
161
- if (x0 > y0) {
162
- // lower triangle, XY order: (0,0)->(1,0)->(1,1)
163
- i1 = 1;
164
- j1 = 0;
165
- }
166
- else {
167
- // upper triangle, YX order: (0,0)->(0,1)->(1,1)
168
- i1 = 0;
169
- j1 = 1;
170
- }
171
- // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and
172
- // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where
173
- // c = (3-sqrt(3))/6
174
- const x1 = x0 - i1 + this._G2; // Offsets for middle corner in (x,y) unskewed coords
175
- const y1 = y0 - j1 + this._G2;
176
- const x2 = x0 - 1 + 2 * this._G2; // Offsets for last corner in (x,y) unskewed coords
177
- const y2 = y0 - 1 + 2 * this._G2;
178
- // Work out the hashed gradient indices of the three simplex corners
179
- i &= 255;
180
- j &= 255;
181
- const gi0 = this._gradP[i + this._perm[j]];
182
- const gi1 = this._gradP[i + i1 + this._perm[j + j1]];
183
- const gi2 = this._gradP[i + 1 + this._perm[j + 1]];
184
- // Calculate the contribution from the three corners
185
- let t0 = 0.5 - x0 * x0 - y0 * y0;
186
- if (t0 < 0) {
187
- n0 = 0;
188
- }
189
- else {
190
- t0 *= t0;
191
- n0 = t0 * t0 * gi0.dotXYZ(x0, y0, 0); // (x,y) of grad3 used for 2D gradient
192
- }
193
- let t1 = 0.5 - x1 * x1 - y1 * y1;
194
- if (t1 < 0) {
195
- n1 = 0;
196
- }
197
- else {
198
- t1 *= t1;
199
- n1 = t1 * t1 * gi1.dotXYZ(x1, y1, 0);
200
- }
201
- let t2 = 0.5 - x2 * x2 - y2 * y2;
202
- if (t2 < 0) {
203
- n2 = 0;
204
- }
205
- else {
206
- t2 *= t2;
207
- n2 = t2 * t2 * gi2.dotXYZ(x2, y2, 0);
208
- }
209
- // Add contributions from each corner to get the final noise value.
210
- // The result is scaled to return values in the interval [-1,1].
211
- return 70 * (n0 + n1 + n2);
212
- }
213
- /**
214
- * Returns a 3D simplex noise value for a given input coordinate.
215
- * @param x - The X input coordinate.
216
- * @param y - The Y input coordinate.
217
- * @param z - The Z input coordinate.
218
- * @returns The noise value for the input coordinates.
219
- */
220
- simplex3(x, y, z) {
221
- const F3 = 1 / 3;
222
- const G3 = 1 / 6;
223
- let n0, n1, n2, n3; // Noise contributions from the four corners
224
- // Skew the input space to determine which simplex cell we're in
225
- const s = (x + y + z) * F3; // Hairy factor for 2D
226
- let i = Math.floor(x + s);
227
- let j = Math.floor(y + s);
228
- let k = Math.floor(z + s);
229
- const t = (i + j + k) * G3;
230
- const x0 = x - i + t; // The x,y distances from the cell origin, unskewed.
231
- const y0 = y - j + t;
232
- const z0 = z - k + t;
233
- // For the 3D case, the simplex shape is a slightly irregular tetrahedron.
234
- // Determine which simplex we are in.
235
- let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords
236
- let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords
237
- if (x0 >= y0) {
238
- if (y0 >= z0) {
239
- i1 = 1;
240
- j1 = 0;
241
- k1 = 0;
242
- i2 = 1;
243
- j2 = 1;
244
- k2 = 0;
245
- }
246
- else if (x0 >= z0) {
247
- i1 = 1;
248
- j1 = 0;
249
- k1 = 0;
250
- i2 = 1;
251
- j2 = 0;
252
- k2 = 1;
253
- }
254
- else {
255
- i1 = 0;
256
- j1 = 0;
257
- k1 = 1;
258
- i2 = 1;
259
- j2 = 0;
260
- k2 = 1;
261
- }
262
- }
263
- else {
264
- if (y0 < z0) {
265
- i1 = 0;
266
- j1 = 0;
267
- k1 = 1;
268
- i2 = 0;
269
- j2 = 1;
270
- k2 = 1;
271
- }
272
- else if (x0 < z0) {
273
- i1 = 0;
274
- j1 = 1;
275
- k1 = 0;
276
- i2 = 0;
277
- j2 = 1;
278
- k2 = 1;
279
- }
280
- else {
281
- i1 = 0;
282
- j1 = 1;
283
- k1 = 0;
284
- i2 = 1;
285
- j2 = 1;
286
- k2 = 0;
287
- }
288
- }
289
- // A step of (1,0,0) in (i,j,k) means a step of (1-c,-c,-c) in (x,y,z),
290
- // a step of (0,1,0) in (i,j,k) means a step of (-c,1-c,-c) in (x,y,z), and
291
- // a step of (0,0,1) in (i,j,k) means a step of (-c,-c,1-c) in (x,y,z), where
292
- // c = 1/6.
293
- const x1 = x0 - i1 + G3; // Offsets for second corner
294
- const y1 = y0 - j1 + G3;
295
- const z1 = z0 - k1 + G3;
296
- const x2 = x0 - i2 + 2 * G3; // Offsets for third corner
297
- const y2 = y0 - j2 + 2 * G3;
298
- const z2 = z0 - k2 + 2 * G3;
299
- const x3 = x0 - 1 + 3 * G3; // Offsets for fourth corner
300
- const y3 = y0 - 1 + 3 * G3;
301
- const z3 = z0 - 1 + 3 * G3;
302
- // Work out the hashed gradient indices of the four simplex corners
303
- i &= 255;
304
- j &= 255;
305
- k &= 255;
306
- const gi0 = this._gradP[i + this._perm[j + this._perm[k]]];
307
- const gi1 = this._gradP[i + i1 + this._perm[j + j1 + this._perm[k + k1]]];
308
- const gi2 = this._gradP[i + i2 + this._perm[j + j2 + this._perm[k + k2]]];
309
- const gi3 = this._gradP[i + 1 + this._perm[j + 1 + this._perm[k + 1]]];
310
- // Calculate the contribution from the four corners
311
- let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0;
312
- if (t0 < 0) {
313
- n0 = 0;
314
- }
315
- else {
316
- t0 *= t0;
317
- n0 = t0 * t0 * gi0.dotXYZ(x0, y0, z0); // (x,y) of grad3 used for 2D gradient
318
- }
319
- let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1;
320
- if (t1 < 0) {
321
- n1 = 0;
322
- }
323
- else {
324
- t1 *= t1;
325
- n1 = t1 * t1 * gi1.dotXYZ(x1, y1, z1);
326
- }
327
- let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2;
328
- if (t2 < 0) {
329
- n2 = 0;
330
- }
331
- else {
332
- t2 *= t2;
333
- n2 = t2 * t2 * gi2.dotXYZ(x2, y2, z2);
334
- }
335
- let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3;
336
- if (t3 < 0) {
337
- n3 = 0;
338
- }
339
- else {
340
- t3 *= t3;
341
- n3 = t3 * t3 * gi3.dotXYZ(x3, y3, z3);
342
- }
343
- // Add contributions from each corner to get the final noise value.
344
- // The result is scaled to return values in the interval [-1,1].
345
- return 32 * (n0 + n1 + n2 + n3);
346
- }
347
- }
348
- /**
349
- * Returns a random value in a given range.
350
- *
351
- * Uses the JS-internal `Math.random()`. Use {@linkcode Random} for a PRNG with more features.
352
- *
353
- * Note that this method returns floating point numbers, regardless of your inputs potentially
354
- * being integers. If you require integers, ensure to truncate the resulting random value.
355
- * @param min - The lower bound.
356
- * @param max - The upper bound.
357
- * @returns A random value between the lower and upper bound.
358
- */
359
- export const randomRange = (min, max) => {
360
- return Math.random() * (max - min) + min;
361
- };
362
- /**
363
- * Generates a numberic seed, to be used as an input for a PRNG,
364
- * from a string.
365
- * @param input - The string to use as a seed.
366
- * @returns A numeric seed value for a PRNG.
367
- */
368
- export const seedFromString = (input) => {
369
- return input
370
- .split("")
371
- .reduce((seed, char) => (seed = seed + ((char.charCodeAt(0) * 17989) % 2147483647)), 0);
372
- };
373
- /**
374
- * A global PRNG instance that is ready-to-use.
375
- */
376
- export const random = new Random();
377
- //# sourceMappingURL=random.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../source/data/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,MAAM;IACjB;;OAEG;IACK,KAAK,CAAS;IAEtB;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,KAAK,CAAgB;IAE7B;;OAEG;IACK,MAAM,CAAiB;IAE/B;;OAEG;IACK,GAAG,CAAS;IAEpB;;OAEG;IACK,GAAG,CAAS;IAEpB;;;;;;OAMG;IACH,YAAY,IAAI,GAAG,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEF,MAAM,CAAC,GAAG;YACR,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;YAC3F,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;YAC7F,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;YAC7F,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YAC3F,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;YAC1F,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACzF,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;YACzF,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;YAC7F,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACzF,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1F,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YAC7F,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAA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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Indent every line of the passed text.
3
- * @param subject - The text to indent.
4
- * @param depth - How often to apply the indenting.
5
- * @param prefix - The string to use as the indent.
6
- * @returns The indented text.
7
- */
8
- export declare const indent: (subject: string, depth?: number, prefix?: string) => string;
9
- /**
10
- * A fast and simple 53-bit string hash function with decent collision resistance.
11
- * Largely inspired by MurmurHash2/3, but with a focus on speed/simplicity.
12
- * License: Public domain. Attribution appreciated.
13
- * cyrb53 (c) 2018 bryc (github.com/bryc)
14
- * @param subject - The string to hash.
15
- * @param seed - An optional seed value.
16
- * @returns A hash of the string.
17
- */
18
- export declare const hashCyrb53: (subject: string, seed?: number) => string;
19
- /**
20
- * Encodes the provided string in Base64.
21
- * @param subject - The string to encode.
22
- * @returns The subject string encoded in Base64.
23
- */
24
- export declare const base64Encode: (subject: string) => string;
25
- /**
26
- * Decodes the provided Base64 encoded string.
27
- * @param subject - The string to decode.
28
- * @returns The decoded subject string.
29
- */
30
- export declare const base64Decode: (subject: string) => string;
@@ -1,52 +0,0 @@
1
- import { mustExist } from "./nil.js";
2
- /**
3
- * Indent every line of the passed text.
4
- * @param subject - The text to indent.
5
- * @param depth - How often to apply the indenting.
6
- * @param prefix - The string to use as the indent.
7
- * @returns The indented text.
8
- */
9
- export const indent = (subject, depth = 0, prefix = " ") => subject.replaceAll(/^/gm, prefix.repeat(depth));
10
- /**
11
- * A fast and simple 53-bit string hash function with decent collision resistance.
12
- * Largely inspired by MurmurHash2/3, but with a focus on speed/simplicity.
13
- * License: Public domain. Attribution appreciated.
14
- * cyrb53 (c) 2018 bryc (github.com/bryc)
15
- * @param subject - The string to hash.
16
- * @param seed - An optional seed value.
17
- * @returns A hash of the string.
18
- */
19
- export const hashCyrb53 = (subject, seed = 0) => {
20
- let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
21
- for (let i = 0, ch; i < subject.length; i++) {
22
- ch = subject.charCodeAt(i);
23
- h1 = Math.imul(h1 ^ ch, 2654435761);
24
- h2 = Math.imul(h2 ^ ch, 1597334677);
25
- }
26
- h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);
27
- h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);
28
- h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);
29
- h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);
30
- return (h2 >>> 0).toString(16).padStart(8, "0") + (h1 >>> 0).toString(16).padStart(8, "0");
31
- };
32
- /**
33
- * Encodes the provided string in Base64.
34
- * @param subject - The string to encode.
35
- * @returns The subject string encoded in Base64.
36
- */
37
- export const base64Encode = (subject) => {
38
- const bytes = new TextEncoder().encode(subject);
39
- const binString = String.fromCodePoint(...bytes);
40
- return btoa(binString);
41
- };
42
- /**
43
- * Decodes the provided Base64 encoded string.
44
- * @param subject - The string to decode.
45
- * @returns The decoded subject string.
46
- */
47
- export const base64Decode = (subject) => {
48
- const binString = atob(subject);
49
- const bytes = Uint8Array.from(binString, m => mustExist(m.codePointAt(0)));
50
- return new TextDecoder().decode(bytes);
51
- };
52
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../source/data/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAU,EAAE,CAC5E,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC,EAAU,EAAE;IAC9D,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,EACxB,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACpC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7C,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9C,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7C,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Base class to quickly provide parent-child relationships.
3
- * @typeParam TNode - Your sub-class.
4
- */
5
- export declare abstract class TreeNode<TNode> {
6
- #private;
7
- /**
8
- * The parent.
9
- * @returns The parent.
10
- */
11
- get parent(): TNode | undefined;
12
- /**
13
- * The children.
14
- * @returns The children.
15
- */
16
- get children(): Set<TNode>;
17
- /**
18
- * Construct tree node.
19
- * @param parent - The parent.
20
- */
21
- constructor(parent?: TNode);
22
- /**
23
- * Register a new child on the tree.
24
- * @param child - A new child.
25
- * @returns The child.
26
- */
27
- child(child: TNode): TNode;
28
- }
package/lib/data/tree.js DELETED
@@ -1,45 +0,0 @@
1
- /**
2
- * Base class to quickly provide parent-child relationships.
3
- * @typeParam TNode - Your sub-class.
4
- */
5
- export class TreeNode {
6
- /**
7
- * The parent.
8
- */
9
- #parent;
10
- /**
11
- * Our children.
12
- */
13
- #children = new Set();
14
- /**
15
- * The parent.
16
- * @returns The parent.
17
- */
18
- get parent() {
19
- return this.#parent;
20
- }
21
- /**
22
- * The children.
23
- * @returns The children.
24
- */
25
- get children() {
26
- return this.#children;
27
- }
28
- /**
29
- * Construct tree node.
30
- * @param parent - The parent.
31
- */
32
- constructor(parent) {
33
- this.#parent = parent;
34
- }
35
- /**
36
- * Register a new child on the tree.
37
- * @param child - A new child.
38
- * @returns The child.
39
- */
40
- child(child) {
41
- this.children.add(child);
42
- return child;
43
- }
44
- }
45
- //# sourceMappingURL=tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../source/data/tree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAgB,QAAQ;IAC5B;;OAEG;IACH,OAAO,CAAoB;IAC3B;;OAEG;IACH,SAAS,GAAG,IAAI,GAAG,EAAS,CAAC;IAE7B;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAY;QAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}