inray 0.0.7 → 0.0.8

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 (219) hide show
  1. package/LICENSE.md +32 -29
  2. package/README.md +467 -55
  3. package/dist/random/_pcg32.d.ts +61 -0
  4. package/dist/random/_pcg32.d.ts.map +1 -0
  5. package/dist/random/_pcg32.js +122 -0
  6. package/dist/random/_pcg32.js.map +1 -0
  7. package/dist/random/_platform.d.ts +12 -0
  8. package/dist/random/_platform.d.ts.map +1 -0
  9. package/dist/random/_platform.js +13 -0
  10. package/dist/random/_platform.js.map +1 -0
  11. package/dist/random/_seed_bytes_from_uint64.d.ts +15 -0
  12. package/dist/random/_seed_bytes_from_uint64.d.ts.map +1 -0
  13. package/dist/random/_seed_bytes_from_uint64.js +23 -0
  14. package/dist/random/_seed_bytes_from_uint64.js.map +1 -0
  15. package/dist/random/_test_utils.d.ts +15 -0
  16. package/dist/random/_test_utils.d.ts.map +1 -0
  17. package/dist/random/_test_utils.js +92 -0
  18. package/dist/random/_test_utils.js.map +1 -0
  19. package/dist/random/_types.d.ts +50 -0
  20. package/dist/random/_types.d.ts.map +1 -0
  21. package/dist/random/_types.js +10 -0
  22. package/dist/random/_types.js.map +1 -0
  23. package/dist/random/between.d.ts +33 -0
  24. package/dist/random/between.d.ts.map +1 -0
  25. package/dist/random/between.js +44 -0
  26. package/dist/random/between.js.map +1 -0
  27. package/dist/random/get_random_values_seeded.d.ts +31 -0
  28. package/dist/random/get_random_values_seeded.d.ts.map +1 -0
  29. package/dist/random/get_random_values_seeded.js +34 -0
  30. package/dist/random/get_random_values_seeded.js.map +1 -0
  31. package/dist/random/integer_between.d.ts +33 -0
  32. package/dist/random/integer_between.d.ts.map +1 -0
  33. package/dist/random/integer_between.js +34 -0
  34. package/dist/random/integer_between.js.map +1 -0
  35. package/dist/random/internal/_testing.d.ts +15 -0
  36. package/dist/random/internal/_testing.d.ts.map +1 -0
  37. package/dist/random/internal/_testing.js +27 -0
  38. package/dist/random/internal/_testing.js.map +1 -0
  39. package/dist/random/mod.d.ts +45 -0
  40. package/dist/random/mod.d.ts.map +1 -0
  41. package/dist/random/mod.js +46 -0
  42. package/dist/random/mod.js.map +1 -0
  43. package/dist/random/next_float_64.d.ts +38 -0
  44. package/dist/random/next_float_64.d.ts.map +1 -0
  45. package/dist/random/next_float_64.js +47 -0
  46. package/dist/random/next_float_64.js.map +1 -0
  47. package/dist/random/sample.d.ts +58 -0
  48. package/dist/random/sample.d.ts.map +1 -0
  49. package/dist/random/sample.js +69 -0
  50. package/dist/random/sample.js.map +1 -0
  51. package/dist/random/seeded.d.ts +34 -0
  52. package/dist/random/seeded.d.ts.map +1 -0
  53. package/dist/random/seeded.js +37 -0
  54. package/dist/random/seeded.js.map +1 -0
  55. package/dist/random/shuffle.d.ts +35 -0
  56. package/dist/random/shuffle.d.ts.map +1 -0
  57. package/dist/random/shuffle.js +48 -0
  58. package/dist/random/shuffle.js.map +1 -0
  59. package/dist/semver/_constants.d.ts +20 -0
  60. package/dist/semver/_constants.d.ts.map +1 -0
  61. package/dist/semver/_constants.js +28 -0
  62. package/dist/semver/_constants.js.map +1 -0
  63. package/dist/semver/_shared.d.ts +52 -0
  64. package/dist/semver/_shared.d.ts.map +1 -0
  65. package/dist/semver/_shared.js +168 -0
  66. package/dist/semver/_shared.js.map +1 -0
  67. package/dist/semver/_test_comparator_set.d.ts +11 -0
  68. package/dist/semver/_test_comparator_set.d.ts.map +1 -0
  69. package/dist/semver/_test_comparator_set.js +62 -0
  70. package/dist/semver/_test_comparator_set.js.map +1 -0
  71. package/dist/semver/can_parse.d.ts +24 -0
  72. package/dist/semver/can_parse.d.ts.map +1 -0
  73. package/dist/semver/can_parse.js +34 -0
  74. package/dist/semver/can_parse.js.map +1 -0
  75. package/dist/semver/compare.d.ts +35 -0
  76. package/dist/semver/compare.d.ts.map +1 -0
  77. package/dist/semver/compare.js +43 -0
  78. package/dist/semver/compare.js.map +1 -0
  79. package/dist/semver/difference.d.ts +34 -0
  80. package/dist/semver/difference.d.ts.map +1 -0
  81. package/dist/semver/difference.js +48 -0
  82. package/dist/semver/difference.js.map +1 -0
  83. package/dist/semver/equals.d.ts +31 -0
  84. package/dist/semver/equals.d.ts.map +1 -0
  85. package/dist/semver/equals.js +34 -0
  86. package/dist/semver/equals.js.map +1 -0
  87. package/dist/semver/format.d.ts +29 -0
  88. package/dist/semver/format.d.ts.map +1 -0
  89. package/dist/semver/format.js +40 -0
  90. package/dist/semver/format.js.map +1 -0
  91. package/dist/semver/format_range.d.ts +25 -0
  92. package/dist/semver/format_range.d.ts.map +1 -0
  93. package/dist/semver/format_range.js +33 -0
  94. package/dist/semver/format_range.js.map +1 -0
  95. package/dist/semver/greater_or_equal.d.ts +32 -0
  96. package/dist/semver/greater_or_equal.d.ts.map +1 -0
  97. package/dist/semver/greater_or_equal.js +34 -0
  98. package/dist/semver/greater_or_equal.js.map +1 -0
  99. package/dist/semver/greater_than.d.ts +32 -0
  100. package/dist/semver/greater_than.d.ts.map +1 -0
  101. package/dist/semver/greater_than.js +34 -0
  102. package/dist/semver/greater_than.js.map +1 -0
  103. package/dist/semver/greater_than_range.d.ts +30 -0
  104. package/dist/semver/greater_than_range.d.ts.map +1 -0
  105. package/dist/semver/greater_than_range.js +64 -0
  106. package/dist/semver/greater_than_range.js.map +1 -0
  107. package/dist/semver/increment.d.ts +61 -0
  108. package/dist/semver/increment.d.ts.map +1 -0
  109. package/dist/semver/increment.js +186 -0
  110. package/dist/semver/increment.js.map +1 -0
  111. package/dist/semver/is_range.d.ts +30 -0
  112. package/dist/semver/is_range.d.ts.map +1 -0
  113. package/dist/semver/is_range.js +42 -0
  114. package/dist/semver/is_range.js.map +1 -0
  115. package/dist/semver/is_semver.d.ts +41 -0
  116. package/dist/semver/is_semver.d.ts.map +1 -0
  117. package/dist/semver/is_semver.js +60 -0
  118. package/dist/semver/is_semver.js.map +1 -0
  119. package/dist/semver/less_or_equal.d.ts +32 -0
  120. package/dist/semver/less_or_equal.d.ts.map +1 -0
  121. package/dist/semver/less_or_equal.js +34 -0
  122. package/dist/semver/less_or_equal.js.map +1 -0
  123. package/dist/semver/less_than.d.ts +32 -0
  124. package/dist/semver/less_than.d.ts.map +1 -0
  125. package/dist/semver/less_than.js +34 -0
  126. package/dist/semver/less_than.js.map +1 -0
  127. package/dist/semver/less_than_range.d.ts +30 -0
  128. package/dist/semver/less_than_range.d.ts.map +1 -0
  129. package/dist/semver/less_than_range.js +64 -0
  130. package/dist/semver/less_than_range.js.map +1 -0
  131. package/dist/semver/max_satisfying.d.ts +29 -0
  132. package/dist/semver/max_satisfying.d.ts.map +1 -0
  133. package/dist/semver/max_satisfying.js +38 -0
  134. package/dist/semver/max_satisfying.js.map +1 -0
  135. package/dist/semver/min_satisfying.d.ts +29 -0
  136. package/dist/semver/min_satisfying.d.ts.map +1 -0
  137. package/dist/semver/min_satisfying.js +38 -0
  138. package/dist/semver/min_satisfying.js.map +1 -0
  139. package/dist/semver/mod.d.ts +305 -0
  140. package/dist/semver/mod.d.ts.map +1 -0
  141. package/dist/semver/mod.js +306 -0
  142. package/dist/semver/mod.js.map +1 -0
  143. package/dist/semver/not_equals.d.ts +31 -0
  144. package/dist/semver/not_equals.d.ts.map +1 -0
  145. package/dist/semver/not_equals.js +33 -0
  146. package/dist/semver/not_equals.js.map +1 -0
  147. package/dist/semver/parse.d.ts +32 -0
  148. package/dist/semver/parse.d.ts.map +1 -0
  149. package/dist/semver/parse.js +50 -0
  150. package/dist/semver/parse.js.map +1 -0
  151. package/dist/semver/parse_range.d.ts +34 -0
  152. package/dist/semver/parse_range.d.ts.map +1 -0
  153. package/dist/semver/parse_range.js +352 -0
  154. package/dist/semver/parse_range.js.map +1 -0
  155. package/dist/semver/range_intersects.d.ts +32 -0
  156. package/dist/semver/range_intersects.d.ts.map +1 -0
  157. package/dist/semver/range_intersects.js +89 -0
  158. package/dist/semver/range_intersects.js.map +1 -0
  159. package/dist/semver/satisfies.d.ts +31 -0
  160. package/dist/semver/satisfies.d.ts.map +1 -0
  161. package/dist/semver/satisfies.js +33 -0
  162. package/dist/semver/satisfies.js.map +1 -0
  163. package/dist/semver/try_parse.d.ts +28 -0
  164. package/dist/semver/try_parse.d.ts.map +1 -0
  165. package/dist/semver/try_parse.js +35 -0
  166. package/dist/semver/try_parse.js.map +1 -0
  167. package/dist/semver/try_parse_range.d.ts +31 -0
  168. package/dist/semver/try_parse_range.d.ts.map +1 -0
  169. package/dist/semver/try_parse_range.js +40 -0
  170. package/dist/semver/try_parse_range.js.map +1 -0
  171. package/dist/semver/types.d.ts +66 -0
  172. package/dist/semver/types.d.ts.map +1 -0
  173. package/dist/semver/types.js +10 -0
  174. package/dist/semver/types.js.map +1 -0
  175. package/dist/text/_util.d.ts +11 -0
  176. package/dist/text/_util.d.ts.map +1 -0
  177. package/dist/text/_util.js +21 -0
  178. package/dist/text/_util.js.map +1 -0
  179. package/dist/text/closest_string.d.ts +49 -0
  180. package/dist/text/closest_string.d.ts.map +1 -0
  181. package/dist/text/closest_string.js +51 -0
  182. package/dist/text/closest_string.js.map +1 -0
  183. package/dist/text/compare_similarity.d.ts +54 -0
  184. package/dist/text/compare_similarity.d.ts.map +1 -0
  185. package/dist/text/compare_similarity.js +45 -0
  186. package/dist/text/compare_similarity.js.map +1 -0
  187. package/dist/text/levenshtein_distance.d.ts +30 -0
  188. package/dist/text/levenshtein_distance.d.ts.map +1 -0
  189. package/dist/text/levenshtein_distance.js +134 -0
  190. package/dist/text/levenshtein_distance.js.map +1 -0
  191. package/dist/text/mod.d.ts +34 -0
  192. package/dist/text/mod.d.ts.map +1 -0
  193. package/dist/text/mod.js +35 -0
  194. package/dist/text/mod.js.map +1 -0
  195. package/dist/text/to_camel_case.d.ts +23 -0
  196. package/dist/text/to_camel_case.d.ts.map +1 -0
  197. package/dist/text/to_camel_case.js +29 -0
  198. package/dist/text/to_camel_case.js.map +1 -0
  199. package/dist/text/to_kebab_case.d.ts +23 -0
  200. package/dist/text/to_kebab_case.d.ts.map +1 -0
  201. package/dist/text/to_kebab_case.js +28 -0
  202. package/dist/text/to_kebab_case.js.map +1 -0
  203. package/dist/text/to_pascal_case.d.ts +23 -0
  204. package/dist/text/to_pascal_case.d.ts.map +1 -0
  205. package/dist/text/to_pascal_case.js +28 -0
  206. package/dist/text/to_pascal_case.js.map +1 -0
  207. package/dist/text/to_snake_case.d.ts +23 -0
  208. package/dist/text/to_snake_case.d.ts.map +1 -0
  209. package/dist/text/to_snake_case.js +28 -0
  210. package/dist/text/to_snake_case.js.map +1 -0
  211. package/dist/text/truncate.d.ts +81 -0
  212. package/dist/text/truncate.d.ts.map +1 -0
  213. package/dist/text/truncate.js +116 -0
  214. package/dist/text/truncate.js.map +1 -0
  215. package/dist/text/word_similarity_sort.d.ts +46 -0
  216. package/dist/text/word_similarity_sort.d.ts.map +1 -0
  217. package/dist/text/word_similarity_sort.js +47 -0
  218. package/dist/text/word_similarity_sort.js.map +1 -0
  219. package/package.json +16 -1
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ * - Based on Rust `rand` crate (https://github.com/rust-random/rand). Apache-2.0 + MIT license.
5
+ *
6
+ * Modified and integrated in "Inray":
7
+ * - Evgeniy Bushin
8
+ */
9
+ /***/
10
+ import type { IntegerTypedArray } from './_types.ts';
11
+ declare abstract class Prng32 {
12
+ /** Generates a pseudo-random 32-bit unsigned integer. */
13
+ abstract nextUint32(): number;
14
+ /**
15
+ * Mutates the provided typed array with pseudo-random values.
16
+ * @returns The same typed array, now populated with random values.
17
+ */
18
+ getRandomValues<T extends IntegerTypedArray>(arr: T): T;
19
+ }
20
+ /**
21
+ * Internal PCG32 implementation, used by both the public seeded random
22
+ * function and the seed generation algorithm.
23
+ *
24
+ * Modified from https://github.com/rust-random/rand/blob/f7bbcca/rand_pcg/src/pcg64.rs#L140-L153
25
+ */
26
+ export declare class Pcg32 extends Prng32 {
27
+ #private;
28
+ /** Multiplier for the PCG32 algorithm. */
29
+ static readonly MULTIPLIER = 6364136223846793005n;
30
+ static readonly ROTATE = 59n;
31
+ static readonly XSHIFT = 18n;
32
+ static readonly SPARE = 27n;
33
+ get state(): bigint;
34
+ protected set state(val: bigint);
35
+ get increment(): bigint;
36
+ protected set increment(val: bigint);
37
+ /**
38
+ * Creates a new `Pcg32` instance with entropy generated from the seed.
39
+ * @param seed A 64-bit unsigned integer used to seed the generator.
40
+ */
41
+ constructor(seed: bigint);
42
+ /**
43
+ * Creates a new `Pcg32` instance with the given `state` and `increment` values.
44
+ * @param state The current state of the generator.
45
+ * @param increment The increment value used in the generator.
46
+ *
47
+ * > [!NOTE]
48
+ * > It is typically better to use the constructor that takes a single `seed` value.
49
+ * > However, this constructor can be useful for resuming from a saved state.
50
+ */
51
+ constructor({ state, increment }: {
52
+ state: bigint;
53
+ increment: bigint;
54
+ });
55
+ /** @returns The next pseudo-random 32-bit integer. */
56
+ nextUint32(): number;
57
+ /** Mutates `pcg` by advancing `pcg.state`. */
58
+ step(): this;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=_pcg32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_pcg32.d.ts","sourceRoot":"","sources":["../../src/random/_pcg32.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,KAAK;AAIL,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,uBAAe,MAAM;IACnB,yDAAyD;IACzD,QAAQ,CAAC,UAAU,IAAI,MAAM;IAE7B;;;OAGG;IACH,eAAe,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;CA4BxD;AAED;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,MAAM;;IAC/B,0CAA0C;IAE1C,MAAM,CAAC,QAAQ,CAAC,UAAU,wBAAwB;IAGlD,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO;IAE7B,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO;IAE7B,MAAM,CAAC,QAAQ,CAAC,KAAK,OAAO;IAG5B,IAAI,KAAK,WAER;IACD,SAAS,KAAK,KAAK,CAAC,GAAG,QAAA,EAEtB;IACD,IAAI,SAAS,WAEZ;IACD,SAAS,KAAK,SAAS,CAAC,GAAG,QAAA,EAK1B;IAED;;;OAGG;gBACS,IAAI,EAAE,MAAM;IACxB;;;;;;;;OAQG;gBACS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAWtE,sDAAsD;IACtD,UAAU,IAAI,MAAM;IAQpB,8CAA8C;IAC9C,IAAI,IAAI,IAAI;CA+Bb"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ * - Based on Rust `rand` crate (https://github.com/rust-random/rand). Apache-2.0 + MIT license.
5
+ *
6
+ * Modified and integrated in "Inray":
7
+ * - Evgeniy Bushin
8
+ */
9
+ /***/
10
+ import { platform } from "./_platform.js";
11
+ import { seedBytesFromUint64 } from "./_seed_bytes_from_uint64.js";
12
+ const b4 = new Uint8Array(4);
13
+ const dv4 = new DataView(b4.buffer);
14
+ class Prng32 {
15
+ /**
16
+ * Mutates the provided typed array with pseudo-random values.
17
+ * @returns The same typed array, now populated with random values.
18
+ */
19
+ getRandomValues(arr) {
20
+ const { buffer, byteLength, byteOffset } = arr;
21
+ const rem = byteLength % 4;
22
+ const cutoffLen = byteLength - rem;
23
+ const dv = new DataView(buffer, byteOffset, byteLength);
24
+ for (let i = 0; i < cutoffLen; i += 4) {
25
+ dv.setUint32(i, this.nextUint32(), true);
26
+ }
27
+ if (rem !== 0) {
28
+ dv4.setUint32(0, this.nextUint32(), true);
29
+ for (let i = 0; i < rem; ++i) {
30
+ dv.setUint8(cutoffLen + i, b4[i]);
31
+ }
32
+ }
33
+ if (arr.BYTES_PER_ELEMENT !== 1 && !platform.littleEndian) {
34
+ const bits = arr.BYTES_PER_ELEMENT * 8;
35
+ const name = bits > 32 ? `BigUint${bits}` : `Uint${bits}`;
36
+ for (let i = 0; i < arr.length; ++i) {
37
+ const idx = i * arr.BYTES_PER_ELEMENT;
38
+ dv[`set${name}`](idx, dv[`get${name}`](idx, true), false);
39
+ }
40
+ }
41
+ return arr;
42
+ }
43
+ }
44
+ /**
45
+ * Internal PCG32 implementation, used by both the public seeded random
46
+ * function and the seed generation algorithm.
47
+ *
48
+ * Modified from https://github.com/rust-random/rand/blob/f7bbcca/rand_pcg/src/pcg64.rs#L140-L153
49
+ */
50
+ export class Pcg32 extends Prng32 {
51
+ /** Multiplier for the PCG32 algorithm. */
52
+ // deno-lint-ignore deno-style-guide/naming-convention
53
+ static MULTIPLIER = 6364136223846793005n;
54
+ // Constants are for 64-bit state, 32-bit output
55
+ // deno-lint-ignore deno-style-guide/naming-convention
56
+ static ROTATE = 59n; // 64 - 5
57
+ // deno-lint-ignore deno-style-guide/naming-convention
58
+ static XSHIFT = 18n; // (5 + 32) / 2
59
+ // deno-lint-ignore deno-style-guide/naming-convention
60
+ static SPARE = 27n; // 64 - 32 - 5
61
+ #state = new BigUint64Array(2);
62
+ get state() {
63
+ return this.#state[0];
64
+ }
65
+ set state(val) {
66
+ this.#state[0] = val;
67
+ }
68
+ get increment() {
69
+ return this.#state[1];
70
+ }
71
+ set increment(val) {
72
+ // https://www.pcg-random.org/posts/critiquing-pcg-streams.html#changing-the-increment
73
+ // > Increments have just one rule: they must be odd.
74
+ // We OR the increment with 1 upon setting to ensure this.
75
+ this.#state[1] = val | 1n;
76
+ }
77
+ constructor(arg) {
78
+ if (typeof arg === 'bigint') {
79
+ return Pcg32.#seedFromUint64(arg);
80
+ }
81
+ super();
82
+ this.state = arg.state;
83
+ this.increment = arg.increment;
84
+ }
85
+ /** @returns The next pseudo-random 32-bit integer. */
86
+ nextUint32() {
87
+ // Output function XSH RR: xorshift high (bits), followed by a random rotate
88
+ const rot = this.state >> Pcg32.ROTATE;
89
+ const xsh = BigInt.asUintN(32, ((this.state >> Pcg32.XSHIFT) ^ this.state) >> Pcg32.SPARE);
90
+ this.step();
91
+ return Number(this.#rotateRightUint32(xsh, rot));
92
+ }
93
+ /** Mutates `pcg` by advancing `pcg.state`. */
94
+ step() {
95
+ this.state = this.state * Pcg32.MULTIPLIER + this.increment;
96
+ return this;
97
+ }
98
+ // `n`, `rot`, and return val are all u32
99
+ #rotateRightUint32(n, rot) {
100
+ const left = BigInt.asUintN(32, n << (-rot & 31n));
101
+ const right = n >> rot;
102
+ return left | right;
103
+ }
104
+ static #seedFromUint64(seed) {
105
+ return this.#fromSeed(seedBytesFromUint64(seed, new Uint8Array(16)));
106
+ }
107
+ /**
108
+ * Modified from https://github.com/rust-random/rand/blob/f7bbcca/rand_pcg/src/pcg64.rs#L129-L135
109
+ */
110
+ static #fromSeed(seed) {
111
+ const d = new DataView(seed.buffer);
112
+ return this.#fromStateIncr(d.getBigUint64(0, true), d.getBigUint64(8, true) | 1n);
113
+ }
114
+ /**
115
+ * Modified from https://github.com/rust-random/rand/blob/f7bbcca/rand_pcg/src/pcg64.rs#L99-L105
116
+ */
117
+ static #fromStateIncr(state, increment) {
118
+ // Move state away from initial value
119
+ return new Pcg32({ state: state + increment, increment }).step();
120
+ }
121
+ }
122
+ //# sourceMappingURL=_pcg32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_pcg32.js","sourceRoot":"","sources":["../../src/random/_pcg32.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export declare const platform: {
10
+ littleEndian: boolean;
11
+ };
12
+ //# sourceMappingURL=_platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_platform.d.ts","sourceRoot":"","sources":["../../src/random/_platform.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,eAAO,MAAM,QAAQ;;CAGpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export const platform = {
10
+ // settable property for testing purposes
11
+ littleEndian: new Uint8Array(new Uint16Array([1]).buffer)[0] === 1
12
+ };
13
+ //# sourceMappingURL=_platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_platform.js","sourceRoot":"","sources":["../../src/random/_platform.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,yCAAyC;IACzC,YAAY,EAAE,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CACnE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import type { Uint8Array_ } from './_types.ts';
10
+ /**
11
+ * Write entropy generated from a scalar bigint seed into the provided Uint8Array, for use as a seed.
12
+ * Modified from https://github.com/rust-random/rand/blob/f7bbcca/rand_core/src/lib.rs#L359-L388
13
+ */
14
+ export declare function seedBytesFromUint64(u64: bigint, bytes: Uint8Array_): Uint8Array_;
15
+ //# sourceMappingURL=_seed_bytes_from_uint64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_seed_bytes_from_uint64.d.ts","sourceRoot":"","sources":["../../src/random/_seed_bytes_from_uint64.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAQhF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import { Pcg32 } from "./_pcg32.js";
10
+ /** Initial increment for the PCG32 algorithm. Only used during seeding. */
11
+ const INITIAL_INCREMENT = 11634580027462260723n;
12
+ /**
13
+ * Write entropy generated from a scalar bigint seed into the provided Uint8Array, for use as a seed.
14
+ * Modified from https://github.com/rust-random/rand/blob/f7bbcca/rand_core/src/lib.rs#L359-L388
15
+ */
16
+ export function seedBytesFromUint64(u64, bytes) {
17
+ return (new Pcg32({ state: u64, increment: INITIAL_INCREMENT })
18
+ // We advance the state first (to get away from the input value,
19
+ // in case it has low Hamming Weight).
20
+ .step()
21
+ .getRandomValues(bytes));
22
+ }
23
+ //# sourceMappingURL=_seed_bytes_from_uint64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_seed_bytes_from_uint64.js","sourceRoot":"","sources":["../../src/random/_seed_bytes_from_uint64.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,KAAkB;IACjE,OAAO,CACL,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QACrD,gEAAgE;QAChE,sCAAsC;SACrC,IAAI,EAAE;SACN,eAAe,CAAC,KAAK,CAAC,CAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export declare function mockLittleEndian(littleEndian: boolean): {
10
+ disposables: Disposable[];
11
+ defer(fn: () => void): void;
12
+ use(val: Disposable): void;
13
+ [Symbol.dispose](): void;
14
+ };
15
+ //# sourceMappingURL=_test_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_test_utils.d.ts","sourceRoot":"","sources":["../../src/random/_test_utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAyBL,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,OAAO;;;;;EA6ErD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import { platform } from "./_platform.js";
10
+ import { disposableStack } from "./internal/_testing.js";
11
+ /**
12
+ * ```ts
13
+ * type _NumberType = { [K in keyof DataView]: K extends `get${infer T}` ? T : never }
14
+ * type NumberTypeName = _NumberType[keyof _NumberType]
15
+ * ```
16
+ */
17
+ const numberTypes = [
18
+ 'Int8',
19
+ 'Int16',
20
+ 'Int32',
21
+ 'BigInt64',
22
+ 'Uint8',
23
+ 'Uint16',
24
+ 'Uint32',
25
+ 'BigUint64',
26
+ 'Float16',
27
+ 'Float32',
28
+ 'Float64'
29
+ ];
30
+ export function mockLittleEndian(littleEndian) {
31
+ // partial `DisposableStack` polyfill
32
+ const stack = disposableStack();
33
+ const originalLittleEndian = platform.littleEndian;
34
+ stack.defer(() => {
35
+ platform.littleEndian = originalLittleEndian;
36
+ });
37
+ for (const type of numberTypes) {
38
+ const TypedArray = globalThis[`${type}Array`];
39
+ const MockTypedArray = class extends TypedArray {
40
+ // @ts-ignore missing super() call
41
+ constructor(...args) {
42
+ const target = new TypedArray(...args);
43
+ const dv = new DataView(target.buffer, target.byteOffset, target.byteLength);
44
+ const proxy = new Proxy(target, {
45
+ get(target, prop) {
46
+ if (prop === Symbol.iterator) {
47
+ return Array.prototype[Symbol.iterator];
48
+ }
49
+ if (typeof prop === 'symbol' || /\D/.test(prop)) {
50
+ const val = Reflect.get(target, prop, target);
51
+ if (typeof val === 'function') {
52
+ return val.bind(target);
53
+ }
54
+ return val;
55
+ }
56
+ const i = Number(prop);
57
+ return dv[`get${type}`](i * target.BYTES_PER_ELEMENT, littleEndian);
58
+ },
59
+ set(target, prop, val) {
60
+ if (typeof prop === 'symbol' || /\D/.test(prop)) {
61
+ return Reflect.set(target, prop, val, target);
62
+ }
63
+ const i = Number(prop);
64
+ dv[`set${type}`](i * target.BYTES_PER_ELEMENT, val, littleEndian);
65
+ return true;
66
+ }
67
+ });
68
+ proxy[Symbol.for('nodejs.util.inspect.custom')] = (_, args, inspect) => {
69
+ return `${littleEndian ? 'LE' : 'BE'}_${TypedArray.name}(${proxy.length}) ${inspect([...proxy], args)}`;
70
+ };
71
+ if (typeof args[0] === 'object' && (Symbol.iterator in args[0] || 'length' in args[0])) {
72
+ for (let i = 0; i < target.length; ++i) {
73
+ proxy[i] = target[i];
74
+ }
75
+ }
76
+ return proxy;
77
+ }
78
+ static from(args) {
79
+ return new this(Array.from(args));
80
+ }
81
+ };
82
+ // @ts-ignore mock
83
+ globalThis[`${type}Array`] = MockTypedArray;
84
+ stack.defer(() => {
85
+ // @ts-ignore restore mock
86
+ globalThis[`${type}Array`] = TypedArray;
87
+ });
88
+ }
89
+ platform.littleEndian = littleEndian;
90
+ return stack;
91
+ }
92
+ //# sourceMappingURL=_test_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_test_utils.js","sourceRoot":"","sources":["../../src/random/_test_utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ /**
10
+ * Proxy type of {@code Uint8Array<ArrayBuffer>} or {@code Uint8Array} in TypeScript 5.7 or below respectively.
11
+ *
12
+ * This type is internal utility type and should not be used directly.
13
+ *
14
+ * @internal @private
15
+ */
16
+ export type Uint8Array_ = ReturnType<Uint8Array['slice']>;
17
+ /**
18
+ * A pseudo-random number generator implementing the same contract as
19
+ * `Math.random`, i.e. taking zero arguments and returning a random number in
20
+ * the range `[0, 1)`. The behavior of a function that accepts a `Prng` an
21
+ * option may be customized by passing a `Prng` with different behavior from
22
+ * `Math.random`, for example it may be seeded.
23
+ *
24
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
25
+ */
26
+ export type Prng = typeof Math.random;
27
+ /** An integer typed array */
28
+ export type IntegerTypedArray = ReturnType<Int8Array['slice']> | ReturnType<Int16Array['slice']> | ReturnType<Int32Array['slice']> | ReturnType<Uint8Array['slice']> | ReturnType<Uint16Array['slice']> | ReturnType<Uint32Array['slice']> | ReturnType<Uint8ClampedArray['slice']> | ReturnType<BigInt64Array['slice']> | ReturnType<BigUint64Array['slice']>;
29
+ /**
30
+ * A pseudo-random number generator implementing the same contract as
31
+ * `crypto.getRandomValues`, i.e. taking a typed array and mutating it by
32
+ * filling it with random bytes, returning the mutated typed array instance.
33
+ *
34
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
35
+ */
36
+ export type RandomValueGenerator = <T extends IntegerTypedArray>(array: T) => T;
37
+ /**
38
+ * Options for random number generation.
39
+ *
40
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
41
+ */
42
+ export type RandomOptions = {
43
+ /**
44
+ * A pseudo-random number generator returning a random number in the range
45
+ * `[0, 1)`, used for randomization.
46
+ * @default {Math.random}
47
+ */
48
+ prng?: Prng;
49
+ };
50
+ //# sourceMappingURL=_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../src/random/_types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC;AAEtC,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GACzB,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAC9B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAC/B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAC/B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAC/B,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAChC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAChC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export {};
10
+ //# sourceMappingURL=_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../src/random/_types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import type { Prng, RandomOptions } from './_types.ts';
10
+ export type { Prng, RandomOptions };
11
+ /**
12
+ * Generates a random number between the provided minimum and maximum values.
13
+ *
14
+ * The number is in the range `[min, max)`, i.e. `min` is included but `max` is excluded.
15
+ *
16
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
17
+ *
18
+ * @param min The minimum value (inclusive)
19
+ * @param max The maximum value (exclusive)
20
+ * @param options The options for the random number generator
21
+ * @returns A random number between the provided minimum and maximum values
22
+ *
23
+ * @example Usage
24
+ * ```ts no-assert
25
+ * import { randomBetween } from "inray/random";
26
+ *
27
+ * randomBetween(1, 10); // 6.688009464410508
28
+ * randomBetween(1, 10); // 3.6267118101712006
29
+ * randomBetween(1, 10); // 7.853320239013774
30
+ * ```
31
+ */
32
+ export declare function randomBetween(min: number, max: number, options?: RandomOptions): number;
33
+ //# sourceMappingURL=between.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"between.d.ts","sourceRoot":"","sources":["../../src/random/between.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAgBvF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ /**
10
+ * Generates a random number between the provided minimum and maximum values.
11
+ *
12
+ * The number is in the range `[min, max)`, i.e. `min` is included but `max` is excluded.
13
+ *
14
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
15
+ *
16
+ * @param min The minimum value (inclusive)
17
+ * @param max The maximum value (exclusive)
18
+ * @param options The options for the random number generator
19
+ * @returns A random number between the provided minimum and maximum values
20
+ *
21
+ * @example Usage
22
+ * ```ts no-assert
23
+ * import { randomBetween } from "inray/random";
24
+ *
25
+ * randomBetween(1, 10); // 6.688009464410508
26
+ * randomBetween(1, 10); // 3.6267118101712006
27
+ * randomBetween(1, 10); // 7.853320239013774
28
+ * ```
29
+ */
30
+ export function randomBetween(min, max, options) {
31
+ if (!Number.isFinite(min)) {
32
+ throw new RangeError(`Cannot generate a random number: min cannot be ${min}`);
33
+ }
34
+ if (!Number.isFinite(max)) {
35
+ throw new RangeError(`Cannot generate a random number: max cannot be ${max}`);
36
+ }
37
+ if (max < min) {
38
+ throw new RangeError(`Cannot generate a random number as max must be greater than or equal to min: max=${max}, min=${min}`);
39
+ }
40
+ const x = (options?.prng ?? Math.random)();
41
+ const y = min * (1 - x) + max * x;
42
+ return y >= min && y < max ? y : min;
43
+ }
44
+ //# sourceMappingURL=between.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"between.js","sourceRoot":"","sources":["../../src/random/between.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAML;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW,EAAE,OAAuB;IAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAClB,oFAAoF,GAAG,SAAS,GAAG,EAAE,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import type { RandomValueGenerator } from './_types.ts';
10
+ export type { IntegerTypedArray, RandomValueGenerator } from './_types.ts';
11
+ /**
12
+ * Creates a pseudo-random value generator that populates typed arrays,
13
+ * based on the given seed. The algorithm used for generation is
14
+ * {@link https://www.pcg-random.org/download.html | PCG32}.
15
+ *
16
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
17
+ *
18
+ * @param seed The seed used to initialize the random number generator's state.
19
+ * @returns A pseudo-random value generator function, which will generate
20
+ * different values on each call.
21
+ *
22
+ * @example Usage
23
+ * ```ts
24
+ * import { getRandomValuesSeeded } from "inray/random";
25
+ *
26
+ * const getRandomValues = getRandomValuesSeeded(1n);
27
+ * getRandomValues(new Uint8Array(5)) // equal to new Uint8Array([230, 11, 167, 51, 238])
28
+ * ```
29
+ */
30
+ export declare function getRandomValuesSeeded(seed: bigint): RandomValueGenerator;
31
+ //# sourceMappingURL=get_random_values_seeded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_random_values_seeded.d.ts","sourceRoot":"","sources":["../../src/random/get_random_values_seeded.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAGxE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Original library: denoland/@std
3
+ * - Copyright (c) 2018-2026 the Deno authors. MIT license.
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ // This module is browser compatible.
10
+ import { Pcg32 } from "./_pcg32.js";
11
+ /**
12
+ * Creates a pseudo-random value generator that populates typed arrays,
13
+ * based on the given seed. The algorithm used for generation is
14
+ * {@link https://www.pcg-random.org/download.html | PCG32}.
15
+ *
16
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
17
+ *
18
+ * @param seed The seed used to initialize the random number generator's state.
19
+ * @returns A pseudo-random value generator function, which will generate
20
+ * different values on each call.
21
+ *
22
+ * @example Usage
23
+ * ```ts
24
+ * import { getRandomValuesSeeded } from "inray/random";
25
+ *
26
+ * const getRandomValues = getRandomValuesSeeded(1n);
27
+ * getRandomValues(new Uint8Array(5)) // equal to new Uint8Array([230, 11, 167, 51, 238])
28
+ * ```
29
+ */
30
+ export function getRandomValuesSeeded(seed) {
31
+ const pcg = new Pcg32(seed);
32
+ return pcg.getRandomValues.bind(pcg);
33
+ }
34
+ //# sourceMappingURL=get_random_values_seeded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_random_values_seeded.js","sourceRoot":"","sources":["../../src/random/get_random_values_seeded.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC"}