inray 0.0.6 → 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 (220) hide show
  1. package/LICENSE.md +32 -29
  2. package/README.md +467 -55
  3. package/dist/db/postgres/types/index.d.ts +2 -1
  4. package/dist/random/_pcg32.d.ts +61 -0
  5. package/dist/random/_pcg32.d.ts.map +1 -0
  6. package/dist/random/_pcg32.js +122 -0
  7. package/dist/random/_pcg32.js.map +1 -0
  8. package/dist/random/_platform.d.ts +12 -0
  9. package/dist/random/_platform.d.ts.map +1 -0
  10. package/dist/random/_platform.js +13 -0
  11. package/dist/random/_platform.js.map +1 -0
  12. package/dist/random/_seed_bytes_from_uint64.d.ts +15 -0
  13. package/dist/random/_seed_bytes_from_uint64.d.ts.map +1 -0
  14. package/dist/random/_seed_bytes_from_uint64.js +23 -0
  15. package/dist/random/_seed_bytes_from_uint64.js.map +1 -0
  16. package/dist/random/_test_utils.d.ts +15 -0
  17. package/dist/random/_test_utils.d.ts.map +1 -0
  18. package/dist/random/_test_utils.js +92 -0
  19. package/dist/random/_test_utils.js.map +1 -0
  20. package/dist/random/_types.d.ts +50 -0
  21. package/dist/random/_types.d.ts.map +1 -0
  22. package/dist/random/_types.js +10 -0
  23. package/dist/random/_types.js.map +1 -0
  24. package/dist/random/between.d.ts +33 -0
  25. package/dist/random/between.d.ts.map +1 -0
  26. package/dist/random/between.js +44 -0
  27. package/dist/random/between.js.map +1 -0
  28. package/dist/random/get_random_values_seeded.d.ts +31 -0
  29. package/dist/random/get_random_values_seeded.d.ts.map +1 -0
  30. package/dist/random/get_random_values_seeded.js +34 -0
  31. package/dist/random/get_random_values_seeded.js.map +1 -0
  32. package/dist/random/integer_between.d.ts +33 -0
  33. package/dist/random/integer_between.d.ts.map +1 -0
  34. package/dist/random/integer_between.js +34 -0
  35. package/dist/random/integer_between.js.map +1 -0
  36. package/dist/random/internal/_testing.d.ts +15 -0
  37. package/dist/random/internal/_testing.d.ts.map +1 -0
  38. package/dist/random/internal/_testing.js +27 -0
  39. package/dist/random/internal/_testing.js.map +1 -0
  40. package/dist/random/mod.d.ts +45 -0
  41. package/dist/random/mod.d.ts.map +1 -0
  42. package/dist/random/mod.js +46 -0
  43. package/dist/random/mod.js.map +1 -0
  44. package/dist/random/next_float_64.d.ts +38 -0
  45. package/dist/random/next_float_64.d.ts.map +1 -0
  46. package/dist/random/next_float_64.js +47 -0
  47. package/dist/random/next_float_64.js.map +1 -0
  48. package/dist/random/sample.d.ts +58 -0
  49. package/dist/random/sample.d.ts.map +1 -0
  50. package/dist/random/sample.js +69 -0
  51. package/dist/random/sample.js.map +1 -0
  52. package/dist/random/seeded.d.ts +34 -0
  53. package/dist/random/seeded.d.ts.map +1 -0
  54. package/dist/random/seeded.js +37 -0
  55. package/dist/random/seeded.js.map +1 -0
  56. package/dist/random/shuffle.d.ts +35 -0
  57. package/dist/random/shuffle.d.ts.map +1 -0
  58. package/dist/random/shuffle.js +48 -0
  59. package/dist/random/shuffle.js.map +1 -0
  60. package/dist/semver/_constants.d.ts +20 -0
  61. package/dist/semver/_constants.d.ts.map +1 -0
  62. package/dist/semver/_constants.js +28 -0
  63. package/dist/semver/_constants.js.map +1 -0
  64. package/dist/semver/_shared.d.ts +52 -0
  65. package/dist/semver/_shared.d.ts.map +1 -0
  66. package/dist/semver/_shared.js +168 -0
  67. package/dist/semver/_shared.js.map +1 -0
  68. package/dist/semver/_test_comparator_set.d.ts +11 -0
  69. package/dist/semver/_test_comparator_set.d.ts.map +1 -0
  70. package/dist/semver/_test_comparator_set.js +62 -0
  71. package/dist/semver/_test_comparator_set.js.map +1 -0
  72. package/dist/semver/can_parse.d.ts +24 -0
  73. package/dist/semver/can_parse.d.ts.map +1 -0
  74. package/dist/semver/can_parse.js +34 -0
  75. package/dist/semver/can_parse.js.map +1 -0
  76. package/dist/semver/compare.d.ts +35 -0
  77. package/dist/semver/compare.d.ts.map +1 -0
  78. package/dist/semver/compare.js +43 -0
  79. package/dist/semver/compare.js.map +1 -0
  80. package/dist/semver/difference.d.ts +34 -0
  81. package/dist/semver/difference.d.ts.map +1 -0
  82. package/dist/semver/difference.js +48 -0
  83. package/dist/semver/difference.js.map +1 -0
  84. package/dist/semver/equals.d.ts +31 -0
  85. package/dist/semver/equals.d.ts.map +1 -0
  86. package/dist/semver/equals.js +34 -0
  87. package/dist/semver/equals.js.map +1 -0
  88. package/dist/semver/format.d.ts +29 -0
  89. package/dist/semver/format.d.ts.map +1 -0
  90. package/dist/semver/format.js +40 -0
  91. package/dist/semver/format.js.map +1 -0
  92. package/dist/semver/format_range.d.ts +25 -0
  93. package/dist/semver/format_range.d.ts.map +1 -0
  94. package/dist/semver/format_range.js +33 -0
  95. package/dist/semver/format_range.js.map +1 -0
  96. package/dist/semver/greater_or_equal.d.ts +32 -0
  97. package/dist/semver/greater_or_equal.d.ts.map +1 -0
  98. package/dist/semver/greater_or_equal.js +34 -0
  99. package/dist/semver/greater_or_equal.js.map +1 -0
  100. package/dist/semver/greater_than.d.ts +32 -0
  101. package/dist/semver/greater_than.d.ts.map +1 -0
  102. package/dist/semver/greater_than.js +34 -0
  103. package/dist/semver/greater_than.js.map +1 -0
  104. package/dist/semver/greater_than_range.d.ts +30 -0
  105. package/dist/semver/greater_than_range.d.ts.map +1 -0
  106. package/dist/semver/greater_than_range.js +64 -0
  107. package/dist/semver/greater_than_range.js.map +1 -0
  108. package/dist/semver/increment.d.ts +61 -0
  109. package/dist/semver/increment.d.ts.map +1 -0
  110. package/dist/semver/increment.js +186 -0
  111. package/dist/semver/increment.js.map +1 -0
  112. package/dist/semver/is_range.d.ts +30 -0
  113. package/dist/semver/is_range.d.ts.map +1 -0
  114. package/dist/semver/is_range.js +42 -0
  115. package/dist/semver/is_range.js.map +1 -0
  116. package/dist/semver/is_semver.d.ts +41 -0
  117. package/dist/semver/is_semver.d.ts.map +1 -0
  118. package/dist/semver/is_semver.js +60 -0
  119. package/dist/semver/is_semver.js.map +1 -0
  120. package/dist/semver/less_or_equal.d.ts +32 -0
  121. package/dist/semver/less_or_equal.d.ts.map +1 -0
  122. package/dist/semver/less_or_equal.js +34 -0
  123. package/dist/semver/less_or_equal.js.map +1 -0
  124. package/dist/semver/less_than.d.ts +32 -0
  125. package/dist/semver/less_than.d.ts.map +1 -0
  126. package/dist/semver/less_than.js +34 -0
  127. package/dist/semver/less_than.js.map +1 -0
  128. package/dist/semver/less_than_range.d.ts +30 -0
  129. package/dist/semver/less_than_range.d.ts.map +1 -0
  130. package/dist/semver/less_than_range.js +64 -0
  131. package/dist/semver/less_than_range.js.map +1 -0
  132. package/dist/semver/max_satisfying.d.ts +29 -0
  133. package/dist/semver/max_satisfying.d.ts.map +1 -0
  134. package/dist/semver/max_satisfying.js +38 -0
  135. package/dist/semver/max_satisfying.js.map +1 -0
  136. package/dist/semver/min_satisfying.d.ts +29 -0
  137. package/dist/semver/min_satisfying.d.ts.map +1 -0
  138. package/dist/semver/min_satisfying.js +38 -0
  139. package/dist/semver/min_satisfying.js.map +1 -0
  140. package/dist/semver/mod.d.ts +305 -0
  141. package/dist/semver/mod.d.ts.map +1 -0
  142. package/dist/semver/mod.js +306 -0
  143. package/dist/semver/mod.js.map +1 -0
  144. package/dist/semver/not_equals.d.ts +31 -0
  145. package/dist/semver/not_equals.d.ts.map +1 -0
  146. package/dist/semver/not_equals.js +33 -0
  147. package/dist/semver/not_equals.js.map +1 -0
  148. package/dist/semver/parse.d.ts +32 -0
  149. package/dist/semver/parse.d.ts.map +1 -0
  150. package/dist/semver/parse.js +50 -0
  151. package/dist/semver/parse.js.map +1 -0
  152. package/dist/semver/parse_range.d.ts +34 -0
  153. package/dist/semver/parse_range.d.ts.map +1 -0
  154. package/dist/semver/parse_range.js +352 -0
  155. package/dist/semver/parse_range.js.map +1 -0
  156. package/dist/semver/range_intersects.d.ts +32 -0
  157. package/dist/semver/range_intersects.d.ts.map +1 -0
  158. package/dist/semver/range_intersects.js +89 -0
  159. package/dist/semver/range_intersects.js.map +1 -0
  160. package/dist/semver/satisfies.d.ts +31 -0
  161. package/dist/semver/satisfies.d.ts.map +1 -0
  162. package/dist/semver/satisfies.js +33 -0
  163. package/dist/semver/satisfies.js.map +1 -0
  164. package/dist/semver/try_parse.d.ts +28 -0
  165. package/dist/semver/try_parse.d.ts.map +1 -0
  166. package/dist/semver/try_parse.js +35 -0
  167. package/dist/semver/try_parse.js.map +1 -0
  168. package/dist/semver/try_parse_range.d.ts +31 -0
  169. package/dist/semver/try_parse_range.d.ts.map +1 -0
  170. package/dist/semver/try_parse_range.js +40 -0
  171. package/dist/semver/try_parse_range.js.map +1 -0
  172. package/dist/semver/types.d.ts +66 -0
  173. package/dist/semver/types.d.ts.map +1 -0
  174. package/dist/semver/types.js +10 -0
  175. package/dist/semver/types.js.map +1 -0
  176. package/dist/text/_util.d.ts +11 -0
  177. package/dist/text/_util.d.ts.map +1 -0
  178. package/dist/text/_util.js +21 -0
  179. package/dist/text/_util.js.map +1 -0
  180. package/dist/text/closest_string.d.ts +49 -0
  181. package/dist/text/closest_string.d.ts.map +1 -0
  182. package/dist/text/closest_string.js +51 -0
  183. package/dist/text/closest_string.js.map +1 -0
  184. package/dist/text/compare_similarity.d.ts +54 -0
  185. package/dist/text/compare_similarity.d.ts.map +1 -0
  186. package/dist/text/compare_similarity.js +45 -0
  187. package/dist/text/compare_similarity.js.map +1 -0
  188. package/dist/text/levenshtein_distance.d.ts +30 -0
  189. package/dist/text/levenshtein_distance.d.ts.map +1 -0
  190. package/dist/text/levenshtein_distance.js +134 -0
  191. package/dist/text/levenshtein_distance.js.map +1 -0
  192. package/dist/text/mod.d.ts +34 -0
  193. package/dist/text/mod.d.ts.map +1 -0
  194. package/dist/text/mod.js +35 -0
  195. package/dist/text/mod.js.map +1 -0
  196. package/dist/text/to_camel_case.d.ts +23 -0
  197. package/dist/text/to_camel_case.d.ts.map +1 -0
  198. package/dist/text/to_camel_case.js +29 -0
  199. package/dist/text/to_camel_case.js.map +1 -0
  200. package/dist/text/to_kebab_case.d.ts +23 -0
  201. package/dist/text/to_kebab_case.d.ts.map +1 -0
  202. package/dist/text/to_kebab_case.js +28 -0
  203. package/dist/text/to_kebab_case.js.map +1 -0
  204. package/dist/text/to_pascal_case.d.ts +23 -0
  205. package/dist/text/to_pascal_case.d.ts.map +1 -0
  206. package/dist/text/to_pascal_case.js +28 -0
  207. package/dist/text/to_pascal_case.js.map +1 -0
  208. package/dist/text/to_snake_case.d.ts +23 -0
  209. package/dist/text/to_snake_case.d.ts.map +1 -0
  210. package/dist/text/to_snake_case.js +28 -0
  211. package/dist/text/to_snake_case.js.map +1 -0
  212. package/dist/text/truncate.d.ts +81 -0
  213. package/dist/text/truncate.d.ts.map +1 -0
  214. package/dist/text/truncate.js +116 -0
  215. package/dist/text/truncate.js.map +1 -0
  216. package/dist/text/word_similarity_sort.d.ts +46 -0
  217. package/dist/text/word_similarity_sort.d.ts.map +1 -0
  218. package/dist/text/word_similarity_sort.js +47 -0
  219. package/dist/text/word_similarity_sort.js.map +1 -0
  220. package/package.json +16 -1
@@ -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 integer between the provided minimum and maximum values.
13
+ *
14
+ * The number is in the range `[min, max]`, i.e. both `min` and `max` are included.
15
+ *
16
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
17
+ *
18
+ * @param min The minimum value (inclusive)
19
+ * @param max The maximum value (inclusive)
20
+ * @param options The options for the random number generator
21
+ * @returns A random integer between the provided minimum and maximum values
22
+ *
23
+ * @example Usage
24
+ * ```ts
25
+ * import { randomIntegerBetween } from "inray/random";
26
+ *
27
+ * randomIntegerBetween(1, 10); // 7
28
+ * randomIntegerBetween(1, 10); // 9
29
+ * randomIntegerBetween(1, 10); // 2
30
+ * ```
31
+ */
32
+ export declare function randomIntegerBetween(min: number, max: number, options?: RandomOptions): number;
33
+ //# sourceMappingURL=integer_between.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer_between.d.ts","sourceRoot":"","sources":["../../src/random/integer_between.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAE9F"}
@@ -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
+ import { randomBetween } from "./between.js";
10
+ /**
11
+ * Generates a random integer between the provided minimum and maximum values.
12
+ *
13
+ * The number is in the range `[min, max]`, i.e. both `min` and `max` are included.
14
+ *
15
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
16
+ *
17
+ * @param min The minimum value (inclusive)
18
+ * @param max The maximum value (inclusive)
19
+ * @param options The options for the random number generator
20
+ * @returns A random integer between the provided minimum and maximum values
21
+ *
22
+ * @example Usage
23
+ * ```ts
24
+ * import { randomIntegerBetween } from "inray/random";
25
+ *
26
+ * randomIntegerBetween(1, 10); // 7
27
+ * randomIntegerBetween(1, 10); // 9
28
+ * randomIntegerBetween(1, 10); // 2
29
+ * ```
30
+ */
31
+ export function randomIntegerBetween(min, max, options) {
32
+ return Math.floor(randomBetween(Math.ceil(min), Math.floor(max) + 1, options));
33
+ }
34
+ //# sourceMappingURL=integer_between.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer_between.js","sourceRoot":"","sources":["../../src/random/integer_between.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,GAAW,EAAE,OAAuB;IACpF,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,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 disposableStack(): {
10
+ disposables: Disposable[];
11
+ defer(fn: () => void): void;
12
+ use(val: Disposable): void;
13
+ [Symbol.dispose](): void;
14
+ };
15
+ //# sourceMappingURL=_testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_testing.d.ts","sourceRoot":"","sources":["../../../src/random/internal/_testing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,wBAAgB,eAAe;iBAER,UAAU,EAAE;cACrB,MAAM,IAAI;aAGX,UAAU;;EAStB"}
@@ -0,0 +1,27 @@
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
+ // partial `DisposableStack` polyfill
10
+ // https://github.com/tc39/proposal-explicit-resource-management
11
+ export function disposableStack() {
12
+ return {
13
+ disposables: [],
14
+ defer(fn) {
15
+ this.disposables.push({ [Symbol.dispose]: fn });
16
+ },
17
+ use(val) {
18
+ this.disposables.push(val);
19
+ },
20
+ [Symbol.dispose]() {
21
+ for (let i = this.disposables.length - 1; i >= 0; --i) {
22
+ this.disposables[i][Symbol.dispose]();
23
+ }
24
+ }
25
+ };
26
+ }
27
+ //# sourceMappingURL=_testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_testing.js","sourceRoot":"","sources":["../../../src/random/internal/_testing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AACrC,gEAAgE;AAChE,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,WAAW,EAAE,EAAkB;QAC/B,KAAK,CAAC,EAAc;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,GAAG,CAAC,GAAe;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,CAAC,MAAM,CAAC,OAAO,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,45 @@
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
+ * Utilities for generating random numbers.
11
+ *
12
+ * Example of generating a random integer with fixed seed number:
13
+ *
14
+ * ```ts
15
+ * import { randomIntegerBetween } from "inray/random";
16
+ * import { randomSeeded } from "inray/random";
17
+ *
18
+ * const prng = randomSeeded(1n);
19
+ *
20
+ * randomIntegerBetween(1, 10, { prng }) // 3
21
+ * ```
22
+ *
23
+ * Example of generating a random integer between two values:
24
+ *
25
+ * ```ts
26
+ * import { randomIntegerBetween } from "inray/random";
27
+ * import { randomSeeded } from "inray/random";
28
+ *
29
+ * const prng = randomSeeded(BigInt(crypto.getRandomValues(new Uint32Array(1))[0]!));
30
+ *
31
+ * const randomInteger = randomIntegerBetween(1, 10, { prng });
32
+ * ```
33
+ *
34
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
35
+ *
36
+ * @module
37
+ */
38
+ export * from './between.ts';
39
+ export * from './integer_between.ts';
40
+ export * from './get_random_values_seeded.ts';
41
+ export * from './next_float_64.ts';
42
+ export * from './sample.ts';
43
+ export * from './seeded.ts';
44
+ export * from './shuffle.ts';
45
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/random/mod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,46 @@
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
+ /**
11
+ * Utilities for generating random numbers.
12
+ *
13
+ * Example of generating a random integer with fixed seed number:
14
+ *
15
+ * ```ts
16
+ * import { randomIntegerBetween } from "inray/random";
17
+ * import { randomSeeded } from "inray/random";
18
+ *
19
+ * const prng = randomSeeded(1n);
20
+ *
21
+ * randomIntegerBetween(1, 10, { prng }) // 3
22
+ * ```
23
+ *
24
+ * Example of generating a random integer between two values:
25
+ *
26
+ * ```ts
27
+ * import { randomIntegerBetween } from "inray/random";
28
+ * import { randomSeeded } from "inray/random";
29
+ *
30
+ * const prng = randomSeeded(BigInt(crypto.getRandomValues(new Uint32Array(1))[0]!));
31
+ *
32
+ * const randomInteger = randomIntegerBetween(1, 10, { prng });
33
+ * ```
34
+ *
35
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
36
+ *
37
+ * @module
38
+ */
39
+ export * from "./between.js";
40
+ export * from "./integer_between.js";
41
+ export * from "./get_random_values_seeded.js";
42
+ export * from "./next_float_64.js";
43
+ export * from "./sample.js";
44
+ export * from "./seeded.js";
45
+ export * from "./shuffle.js";
46
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/random/mod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,38 @@
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
+ /**
11
+ * Get a float64 in the range `[0, 1)` from a random value generator.
12
+ *
13
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
14
+ *
15
+ * @param getRandomValues A function that fills a typed array with random values.
16
+ * @returns A float64 in the range `[0, 1)`.
17
+ *
18
+ * @example With a seeded value generator
19
+ * ```ts
20
+ * import { nextFloat64, getRandomValuesSeeded } from "inray/random";
21
+ *
22
+ * const getRandomValues = getRandomValuesSeeded(1n);
23
+ * nextFloat64(getRandomValues); // 0.49116444173310125
24
+ * nextFloat64(getRandomValues); // 0.06903754193160427
25
+ * nextFloat64(getRandomValues); // 0.16063206851777034
26
+ * ```
27
+ *
28
+ * @example With an arbitrary value generator
29
+ * ```ts
30
+ * import { nextFloat64 } from "inray/random";
31
+ *
32
+ * const val = nextFloat64(crypto.getRandomValues.bind(crypto)); // example: 0.8928746327842533
33
+ * // val >= 0
34
+ * // val < 1
35
+ * ```
36
+ */
37
+ export declare function nextFloat64(getRandomValues: RandomValueGenerator): number;
38
+ //# sourceMappingURL=next_float_64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next_float_64.d.ts","sourceRoot":"","sources":["../../src/random/next_float_64.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AASxD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,oBAAoB,GAAG,MAAM,CAKzE"}
@@ -0,0 +1,47 @@
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
+ const b8 = new Uint8Array(8);
10
+ const dv8 = new DataView(b8.buffer);
11
+ // 0x1.0p-53
12
+ const FLOAT_64_MULTIPLIER = 2 ** -53;
13
+ // assert(1 / FLOAT_64_MULTIPLIER === Number.MAX_SAFE_INTEGER + 1)
14
+ /**
15
+ * Get a float64 in the range `[0, 1)` from a random value generator.
16
+ *
17
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
18
+ *
19
+ * @param getRandomValues A function that fills a typed array with random values.
20
+ * @returns A float64 in the range `[0, 1)`.
21
+ *
22
+ * @example With a seeded value generator
23
+ * ```ts
24
+ * import { nextFloat64, getRandomValuesSeeded } from "inray/random";
25
+ *
26
+ * const getRandomValues = getRandomValuesSeeded(1n);
27
+ * nextFloat64(getRandomValues); // 0.49116444173310125
28
+ * nextFloat64(getRandomValues); // 0.06903754193160427
29
+ * nextFloat64(getRandomValues); // 0.16063206851777034
30
+ * ```
31
+ *
32
+ * @example With an arbitrary value generator
33
+ * ```ts
34
+ * import { nextFloat64 } from "inray/random";
35
+ *
36
+ * const val = nextFloat64(crypto.getRandomValues.bind(crypto)); // example: 0.8928746327842533
37
+ * // val >= 0
38
+ * // val < 1
39
+ * ```
40
+ */
41
+ export function nextFloat64(getRandomValues) {
42
+ getRandomValues(b8);
43
+ const int53 = Number(dv8.getBigUint64(0, true) >> 11n);
44
+ // assert(int53 <= Number.MAX_SAFE_INTEGER)
45
+ return int53 * FLOAT_64_MULTIPLIER;
46
+ }
47
+ //# sourceMappingURL=next_float_64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next_float_64.js","sourceRoot":"","sources":["../../src/random/next_float_64.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAKL,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEpC,YAAY;AACZ,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC,kEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,WAAW,CAAC,eAAqC;IAC/D,eAAe,CAAC,EAAE,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,2CAA2C;IAC3C,OAAO,KAAK,GAAG,mBAAmB,CAAC;AACrC,CAAC"}
@@ -0,0 +1,58 @@
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
+ * Options for {@linkcode sample}.
13
+ *
14
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
15
+ */
16
+ export type SampleOptions = RandomOptions & {
17
+ /**
18
+ * An array of weights corresponding to each item in the input array.
19
+ * If supplied, this is used to determine the probability of each item being
20
+ * selected.
21
+ */
22
+ weights?: ArrayLike<number>;
23
+ };
24
+ /**
25
+ * Returns a random element from the given array.
26
+ *
27
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
28
+ *
29
+ * @typeParam T The type of the elements in the array.
30
+ * @typeParam O The type of the accumulator.
31
+ *
32
+ * @param array The array to sample from.
33
+ * @param options Options modifying the sampling behavior.
34
+ *
35
+ * @returns A random element from the given array, or `undefined` if the array
36
+ * is empty.
37
+ *
38
+ * @example Basic usage
39
+ * ```ts
40
+ * import { sample } from "inray/random";
41
+ *
42
+ * const numbers = [1, 2, 3, 4];
43
+ * const sampled = sample(numbers); // numbers includes all sampled
44
+ *
45
+ * ```
46
+ *
47
+ * @example Using `weights` option
48
+ * ```ts
49
+ * import { sample } from "inray/random";
50
+ *
51
+ * const values = ["a", "b", "c"];
52
+ * const weights = [5, 3, 2];
53
+ * const result = sample(values, { weights });
54
+ * // gives "a" 50% of the time, "b" 30% of the time, and "c" 20% of the time
55
+ * ```
56
+ */
57
+ export declare function sample<T>(array: ArrayLike<T>, options?: SampleOptions): T | undefined;
58
+ //# sourceMappingURL=sample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../src/random/sample.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,CAAC,GAAG,SAAS,CAkCrF"}
@@ -0,0 +1,69 @@
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 { randomIntegerBetween } from "./integer_between.js";
10
+ /**
11
+ * Returns a random element from the given array.
12
+ *
13
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
14
+ *
15
+ * @typeParam T The type of the elements in the array.
16
+ * @typeParam O The type of the accumulator.
17
+ *
18
+ * @param array The array to sample from.
19
+ * @param options Options modifying the sampling behavior.
20
+ *
21
+ * @returns A random element from the given array, or `undefined` if the array
22
+ * is empty.
23
+ *
24
+ * @example Basic usage
25
+ * ```ts
26
+ * import { sample } from "inray/random";
27
+ *
28
+ * const numbers = [1, 2, 3, 4];
29
+ * const sampled = sample(numbers); // numbers includes all sampled
30
+ *
31
+ * ```
32
+ *
33
+ * @example Using `weights` option
34
+ * ```ts
35
+ * import { sample } from "inray/random";
36
+ *
37
+ * const values = ["a", "b", "c"];
38
+ * const weights = [5, 3, 2];
39
+ * const result = sample(values, { weights });
40
+ * // gives "a" 50% of the time, "b" 30% of the time, and "c" 20% of the time
41
+ * ```
42
+ */
43
+ export function sample(array, options) {
44
+ const { weights } = { ...options };
45
+ if (weights) {
46
+ if (weights.length !== array.length) {
47
+ throw new RangeError('Cannot sample an item: The length of the weights array must match the length of the input array');
48
+ }
49
+ if (!array.length)
50
+ return undefined;
51
+ const total = Object.values(weights).reduce((sum, n) => sum + n, 0);
52
+ if (total <= 0) {
53
+ throw new RangeError('Cannot sample an item: Total weight must be greater than 0');
54
+ }
55
+ const rand = (options?.prng ?? Math.random)() * total;
56
+ let current = 0;
57
+ for (let i = 0; i < array.length; ++i) {
58
+ current += weights[i];
59
+ if (rand < current) {
60
+ return array[i];
61
+ }
62
+ }
63
+ // this line should never be hit, but in case of rounding errors etc.
64
+ return array[0];
65
+ }
66
+ const length = array.length;
67
+ return length ? array[randomIntegerBetween(0, length - 1, options)] : undefined;
68
+ }
69
+ //# sourceMappingURL=sample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/random/sample.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAiB5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,MAAM,CAAI,KAAmB,EAAE,OAAuB;IACpE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAEnC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAClB,iGAAiG,CAClG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAEpC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QACtD,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC;YACvB,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC"}
@@ -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
+ import type { Prng } from './_types.ts';
10
+ export type { Prng } from './_types.ts';
11
+ /**
12
+ * Creates a pseudo-random number generator that generates random numbers in
13
+ * the range `[0, 1)`, based on the given seed, with 32 bits of entropy.
14
+ * The algorithm used for generation is {@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 number generator function, which will generate
20
+ * different random numbers on each call.
21
+ *
22
+ * @example Usage
23
+ * ```ts
24
+ * import { randomSeeded } from "inray/random";
25
+ *
26
+ * const prng = randomSeeded(1n);
27
+ *
28
+ * prng() // 0.20176767697557807
29
+ * prng() // 0.4911644416861236
30
+ * prng() // 0.7924694607499987
31
+ * ```
32
+ */
33
+ export declare function randomSeeded(seed: bigint): Prng;
34
+ //# sourceMappingURL=seeded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeded.d.ts","sourceRoot":"","sources":["../../src/random/seeded.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG/C"}
@@ -0,0 +1,37 @@
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 number generator that generates random numbers in
13
+ * the range `[0, 1)`, based on the given seed, with 32 bits of entropy.
14
+ * The algorithm used for generation is {@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 number generator function, which will generate
20
+ * different random numbers on each call.
21
+ *
22
+ * @example Usage
23
+ * ```ts
24
+ * import { randomSeeded } from "inray/random";
25
+ *
26
+ * const prng = randomSeeded(1n);
27
+ *
28
+ * prng() // 0.20176767697557807
29
+ * prng() // 0.4911644416861236
30
+ * prng() // 0.7924694607499987
31
+ * ```
32
+ */
33
+ export function randomSeeded(seed) {
34
+ const pcg = new Pcg32(seed);
35
+ return () => pcg.nextUint32() / 2 ** 32;
36
+ }
37
+ //# sourceMappingURL=seeded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeded.js","sourceRoot":"","sources":["../../src/random/seeded.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,35 @@
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
+ * Shuffles the provided array, returning a copy and without modifying the original array.
13
+ *
14
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
15
+ *
16
+ * @typeParam T The type of the items in the array
17
+ * @param items The items to shuffle
18
+ * @param options The options for the random number generator
19
+ * @returns A shuffled copy of the provided items
20
+ *
21
+ * @example Usage
22
+ * ```ts
23
+ * import { shuffle } from "inray/random";
24
+ *
25
+ * const items = [1, 2, 3, 4, 5];
26
+ *
27
+ * shuffle(items); // [2, 5, 1, 4, 3]
28
+ * shuffle(items); // [3, 4, 5, 1, 2]
29
+ * shuffle(items); // [5, 2, 4, 3, 1]
30
+ *
31
+ * items; // [1, 2, 3, 4, 5] (original array is unchanged)
32
+ * ```
33
+ */
34
+ export declare function shuffle<T>(items: readonly T[], options?: RandomOptions): T[];
35
+ //# sourceMappingURL=shuffle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.d.ts","sourceRoot":"","sources":["../../src/random/shuffle.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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,CAiB5E"}
@@ -0,0 +1,48 @@
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
+ * Shuffles the provided array, returning a copy and without modifying the original array.
11
+ *
12
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
13
+ *
14
+ * @typeParam T The type of the items in the array
15
+ * @param items The items to shuffle
16
+ * @param options The options for the random number generator
17
+ * @returns A shuffled copy of the provided items
18
+ *
19
+ * @example Usage
20
+ * ```ts
21
+ * import { shuffle } from "inray/random";
22
+ *
23
+ * const items = [1, 2, 3, 4, 5];
24
+ *
25
+ * shuffle(items); // [2, 5, 1, 4, 3]
26
+ * shuffle(items); // [3, 4, 5, 1, 2]
27
+ * shuffle(items); // [5, 2, 4, 3, 1]
28
+ *
29
+ * items; // [1, 2, 3, 4, 5] (original array is unchanged)
30
+ * ```
31
+ */
32
+ export function shuffle(items, options) {
33
+ const result = [...items];
34
+ const prng = options?.prng ?? Math.random;
35
+ // https://en.wikipedia.org/wiki/Fisher–Yates_shuffle#The_modern_algorithm
36
+ // -- To shuffle an array a of n elements (indices 0..n-1):
37
+ // for i from n−1 down to 1 do
38
+ for (let i = result.length - 1; i >= 1; --i) {
39
+ // j ← random integer such that 0 ≤ j ≤ i
40
+ const j = Math.floor(prng() * (i + 1));
41
+ // exchange a[j] and a[i]
42
+ const temp = result[i];
43
+ result[i] = result[j];
44
+ result[j] = temp;
45
+ }
46
+ return result;
47
+ }
48
+ //# sourceMappingURL=shuffle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.js","sourceRoot":"","sources":["../../src/random/shuffle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAML;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,OAAO,CAAI,KAAmB,EAAE,OAAuB;IACrE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;IAE1C,0EAA0E;IAC1E,2DAA2D;IAC3D,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5C,yCAAyC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,yBAAyB;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAK,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,20 @@
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 { Comparator, SemVer } from './types.ts';
10
+ /**
11
+ * ANY is a sentinel value used by some range calculations. It is not a valid
12
+ * SemVer object and should not be used directly.
13
+ */
14
+ export declare const ANY: SemVer;
15
+ /**
16
+ * A comparator which will span all valid semantic versions
17
+ */
18
+ export declare const ALL: Comparator;
19
+ export declare const OPERATORS: readonly [undefined, "=", "!=", ">", ">=", "<", "<="];
20
+ //# sourceMappingURL=_constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_constants.d.ts","sourceRoot":"","sources":["../../src/semver/_constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,MAMjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,UAGjB,CAAC;AAEF,eAAO,MAAM,SAAS,uDAAwD,CAAC"}