inray 0.0.7 → 0.0.9

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 (244) hide show
  1. package/LICENSE.md +32 -29
  2. package/README.md +522 -58
  3. package/dist/db-migrator/src/bin.js +1 -1
  4. package/dist/db-migrator/src/bin.js.map +1 -1
  5. package/dist/db-migrator/src/index.d.ts +1 -1
  6. package/dist/db-migrator/src/index.d.ts.map +1 -1
  7. package/dist/db-migrator/src/index.js +1 -1
  8. package/dist/db-migrator/src/index.js.map +1 -1
  9. package/dist/db-migrator/src/lib/clients/index.d.ts +3 -3
  10. package/dist/db-migrator/src/lib/clients/index.d.ts.map +1 -1
  11. package/dist/db-migrator/src/lib/clients/index.js +5 -4
  12. package/dist/db-migrator/src/lib/clients/index.js.map +1 -1
  13. package/dist/db-migrator/src/lib/clients/postgres.js +1 -1
  14. package/dist/db-migrator/src/lib/clients/postgres.js.map +1 -1
  15. package/dist/db-migrator/src/lib/clients/sqlite.d.ts +3 -0
  16. package/dist/db-migrator/src/lib/clients/sqlite.d.ts.map +1 -0
  17. package/dist/db-migrator/src/lib/clients/sqlite.js +55 -0
  18. package/dist/db-migrator/src/lib/clients/sqlite.js.map +1 -0
  19. package/dist/db-migrator/src/lib/migrator.sql.d.ts +4 -0
  20. package/dist/db-migrator/src/lib/migrator.sql.d.ts.map +1 -1
  21. package/dist/db-migrator/src/lib/migrator.sql.js +12 -0
  22. package/dist/db-migrator/src/lib/migrator.sql.js.map +1 -1
  23. package/dist/db-migrator/src/lib/migrator.types.d.ts +4 -2
  24. package/dist/db-migrator/src/lib/migrator.types.d.ts.map +1 -1
  25. package/dist/db-migrator/src/migrator.d.ts.map +1 -1
  26. package/dist/db-migrator/src/migrator.js +1 -0
  27. package/dist/db-migrator/src/migrator.js.map +1 -1
  28. package/dist/random/_pcg32.d.ts +61 -0
  29. package/dist/random/_pcg32.d.ts.map +1 -0
  30. package/dist/random/_pcg32.js +122 -0
  31. package/dist/random/_pcg32.js.map +1 -0
  32. package/dist/random/_platform.d.ts +12 -0
  33. package/dist/random/_platform.d.ts.map +1 -0
  34. package/dist/random/_platform.js +13 -0
  35. package/dist/random/_platform.js.map +1 -0
  36. package/dist/random/_seed_bytes_from_uint64.d.ts +15 -0
  37. package/dist/random/_seed_bytes_from_uint64.d.ts.map +1 -0
  38. package/dist/random/_seed_bytes_from_uint64.js +23 -0
  39. package/dist/random/_seed_bytes_from_uint64.js.map +1 -0
  40. package/dist/random/_test_utils.d.ts +15 -0
  41. package/dist/random/_test_utils.d.ts.map +1 -0
  42. package/dist/random/_test_utils.js +92 -0
  43. package/dist/random/_test_utils.js.map +1 -0
  44. package/dist/random/_types.d.ts +50 -0
  45. package/dist/random/_types.d.ts.map +1 -0
  46. package/dist/random/_types.js +10 -0
  47. package/dist/random/_types.js.map +1 -0
  48. package/dist/random/between.d.ts +33 -0
  49. package/dist/random/between.d.ts.map +1 -0
  50. package/dist/random/between.js +44 -0
  51. package/dist/random/between.js.map +1 -0
  52. package/dist/random/get_random_values_seeded.d.ts +31 -0
  53. package/dist/random/get_random_values_seeded.d.ts.map +1 -0
  54. package/dist/random/get_random_values_seeded.js +34 -0
  55. package/dist/random/get_random_values_seeded.js.map +1 -0
  56. package/dist/random/integer_between.d.ts +33 -0
  57. package/dist/random/integer_between.d.ts.map +1 -0
  58. package/dist/random/integer_between.js +34 -0
  59. package/dist/random/integer_between.js.map +1 -0
  60. package/dist/random/internal/_testing.d.ts +15 -0
  61. package/dist/random/internal/_testing.d.ts.map +1 -0
  62. package/dist/random/internal/_testing.js +27 -0
  63. package/dist/random/internal/_testing.js.map +1 -0
  64. package/dist/random/mod.d.ts +45 -0
  65. package/dist/random/mod.d.ts.map +1 -0
  66. package/dist/random/mod.js +46 -0
  67. package/dist/random/mod.js.map +1 -0
  68. package/dist/random/next_float_64.d.ts +38 -0
  69. package/dist/random/next_float_64.d.ts.map +1 -0
  70. package/dist/random/next_float_64.js +47 -0
  71. package/dist/random/next_float_64.js.map +1 -0
  72. package/dist/random/sample.d.ts +58 -0
  73. package/dist/random/sample.d.ts.map +1 -0
  74. package/dist/random/sample.js +69 -0
  75. package/dist/random/sample.js.map +1 -0
  76. package/dist/random/seeded.d.ts +34 -0
  77. package/dist/random/seeded.d.ts.map +1 -0
  78. package/dist/random/seeded.js +37 -0
  79. package/dist/random/seeded.js.map +1 -0
  80. package/dist/random/shuffle.d.ts +35 -0
  81. package/dist/random/shuffle.d.ts.map +1 -0
  82. package/dist/random/shuffle.js +48 -0
  83. package/dist/random/shuffle.js.map +1 -0
  84. package/dist/semver/_constants.d.ts +20 -0
  85. package/dist/semver/_constants.d.ts.map +1 -0
  86. package/dist/semver/_constants.js +28 -0
  87. package/dist/semver/_constants.js.map +1 -0
  88. package/dist/semver/_shared.d.ts +52 -0
  89. package/dist/semver/_shared.d.ts.map +1 -0
  90. package/dist/semver/_shared.js +168 -0
  91. package/dist/semver/_shared.js.map +1 -0
  92. package/dist/semver/_test_comparator_set.d.ts +11 -0
  93. package/dist/semver/_test_comparator_set.d.ts.map +1 -0
  94. package/dist/semver/_test_comparator_set.js +62 -0
  95. package/dist/semver/_test_comparator_set.js.map +1 -0
  96. package/dist/semver/can_parse.d.ts +24 -0
  97. package/dist/semver/can_parse.d.ts.map +1 -0
  98. package/dist/semver/can_parse.js +34 -0
  99. package/dist/semver/can_parse.js.map +1 -0
  100. package/dist/semver/compare.d.ts +35 -0
  101. package/dist/semver/compare.d.ts.map +1 -0
  102. package/dist/semver/compare.js +43 -0
  103. package/dist/semver/compare.js.map +1 -0
  104. package/dist/semver/difference.d.ts +34 -0
  105. package/dist/semver/difference.d.ts.map +1 -0
  106. package/dist/semver/difference.js +48 -0
  107. package/dist/semver/difference.js.map +1 -0
  108. package/dist/semver/equals.d.ts +31 -0
  109. package/dist/semver/equals.d.ts.map +1 -0
  110. package/dist/semver/equals.js +34 -0
  111. package/dist/semver/equals.js.map +1 -0
  112. package/dist/semver/format.d.ts +29 -0
  113. package/dist/semver/format.d.ts.map +1 -0
  114. package/dist/semver/format.js +40 -0
  115. package/dist/semver/format.js.map +1 -0
  116. package/dist/semver/format_range.d.ts +25 -0
  117. package/dist/semver/format_range.d.ts.map +1 -0
  118. package/dist/semver/format_range.js +33 -0
  119. package/dist/semver/format_range.js.map +1 -0
  120. package/dist/semver/greater_or_equal.d.ts +32 -0
  121. package/dist/semver/greater_or_equal.d.ts.map +1 -0
  122. package/dist/semver/greater_or_equal.js +34 -0
  123. package/dist/semver/greater_or_equal.js.map +1 -0
  124. package/dist/semver/greater_than.d.ts +32 -0
  125. package/dist/semver/greater_than.d.ts.map +1 -0
  126. package/dist/semver/greater_than.js +34 -0
  127. package/dist/semver/greater_than.js.map +1 -0
  128. package/dist/semver/greater_than_range.d.ts +30 -0
  129. package/dist/semver/greater_than_range.d.ts.map +1 -0
  130. package/dist/semver/greater_than_range.js +64 -0
  131. package/dist/semver/greater_than_range.js.map +1 -0
  132. package/dist/semver/increment.d.ts +61 -0
  133. package/dist/semver/increment.d.ts.map +1 -0
  134. package/dist/semver/increment.js +186 -0
  135. package/dist/semver/increment.js.map +1 -0
  136. package/dist/semver/is_range.d.ts +30 -0
  137. package/dist/semver/is_range.d.ts.map +1 -0
  138. package/dist/semver/is_range.js +42 -0
  139. package/dist/semver/is_range.js.map +1 -0
  140. package/dist/semver/is_semver.d.ts +41 -0
  141. package/dist/semver/is_semver.d.ts.map +1 -0
  142. package/dist/semver/is_semver.js +60 -0
  143. package/dist/semver/is_semver.js.map +1 -0
  144. package/dist/semver/less_or_equal.d.ts +32 -0
  145. package/dist/semver/less_or_equal.d.ts.map +1 -0
  146. package/dist/semver/less_or_equal.js +34 -0
  147. package/dist/semver/less_or_equal.js.map +1 -0
  148. package/dist/semver/less_than.d.ts +32 -0
  149. package/dist/semver/less_than.d.ts.map +1 -0
  150. package/dist/semver/less_than.js +34 -0
  151. package/dist/semver/less_than.js.map +1 -0
  152. package/dist/semver/less_than_range.d.ts +30 -0
  153. package/dist/semver/less_than_range.d.ts.map +1 -0
  154. package/dist/semver/less_than_range.js +64 -0
  155. package/dist/semver/less_than_range.js.map +1 -0
  156. package/dist/semver/max_satisfying.d.ts +29 -0
  157. package/dist/semver/max_satisfying.d.ts.map +1 -0
  158. package/dist/semver/max_satisfying.js +38 -0
  159. package/dist/semver/max_satisfying.js.map +1 -0
  160. package/dist/semver/min_satisfying.d.ts +29 -0
  161. package/dist/semver/min_satisfying.d.ts.map +1 -0
  162. package/dist/semver/min_satisfying.js +38 -0
  163. package/dist/semver/min_satisfying.js.map +1 -0
  164. package/dist/semver/mod.d.ts +305 -0
  165. package/dist/semver/mod.d.ts.map +1 -0
  166. package/dist/semver/mod.js +306 -0
  167. package/dist/semver/mod.js.map +1 -0
  168. package/dist/semver/not_equals.d.ts +31 -0
  169. package/dist/semver/not_equals.d.ts.map +1 -0
  170. package/dist/semver/not_equals.js +33 -0
  171. package/dist/semver/not_equals.js.map +1 -0
  172. package/dist/semver/parse.d.ts +32 -0
  173. package/dist/semver/parse.d.ts.map +1 -0
  174. package/dist/semver/parse.js +50 -0
  175. package/dist/semver/parse.js.map +1 -0
  176. package/dist/semver/parse_range.d.ts +34 -0
  177. package/dist/semver/parse_range.d.ts.map +1 -0
  178. package/dist/semver/parse_range.js +352 -0
  179. package/dist/semver/parse_range.js.map +1 -0
  180. package/dist/semver/range_intersects.d.ts +32 -0
  181. package/dist/semver/range_intersects.d.ts.map +1 -0
  182. package/dist/semver/range_intersects.js +89 -0
  183. package/dist/semver/range_intersects.js.map +1 -0
  184. package/dist/semver/satisfies.d.ts +31 -0
  185. package/dist/semver/satisfies.d.ts.map +1 -0
  186. package/dist/semver/satisfies.js +33 -0
  187. package/dist/semver/satisfies.js.map +1 -0
  188. package/dist/semver/try_parse.d.ts +28 -0
  189. package/dist/semver/try_parse.d.ts.map +1 -0
  190. package/dist/semver/try_parse.js +35 -0
  191. package/dist/semver/try_parse.js.map +1 -0
  192. package/dist/semver/try_parse_range.d.ts +31 -0
  193. package/dist/semver/try_parse_range.d.ts.map +1 -0
  194. package/dist/semver/try_parse_range.js +40 -0
  195. package/dist/semver/try_parse_range.js.map +1 -0
  196. package/dist/semver/types.d.ts +66 -0
  197. package/dist/semver/types.d.ts.map +1 -0
  198. package/dist/semver/types.js +10 -0
  199. package/dist/semver/types.js.map +1 -0
  200. package/dist/text/_util.d.ts +11 -0
  201. package/dist/text/_util.d.ts.map +1 -0
  202. package/dist/text/_util.js +21 -0
  203. package/dist/text/_util.js.map +1 -0
  204. package/dist/text/closest_string.d.ts +49 -0
  205. package/dist/text/closest_string.d.ts.map +1 -0
  206. package/dist/text/closest_string.js +51 -0
  207. package/dist/text/closest_string.js.map +1 -0
  208. package/dist/text/compare_similarity.d.ts +54 -0
  209. package/dist/text/compare_similarity.d.ts.map +1 -0
  210. package/dist/text/compare_similarity.js +45 -0
  211. package/dist/text/compare_similarity.js.map +1 -0
  212. package/dist/text/levenshtein_distance.d.ts +30 -0
  213. package/dist/text/levenshtein_distance.d.ts.map +1 -0
  214. package/dist/text/levenshtein_distance.js +134 -0
  215. package/dist/text/levenshtein_distance.js.map +1 -0
  216. package/dist/text/mod.d.ts +34 -0
  217. package/dist/text/mod.d.ts.map +1 -0
  218. package/dist/text/mod.js +35 -0
  219. package/dist/text/mod.js.map +1 -0
  220. package/dist/text/to_camel_case.d.ts +23 -0
  221. package/dist/text/to_camel_case.d.ts.map +1 -0
  222. package/dist/text/to_camel_case.js +29 -0
  223. package/dist/text/to_camel_case.js.map +1 -0
  224. package/dist/text/to_kebab_case.d.ts +23 -0
  225. package/dist/text/to_kebab_case.d.ts.map +1 -0
  226. package/dist/text/to_kebab_case.js +28 -0
  227. package/dist/text/to_kebab_case.js.map +1 -0
  228. package/dist/text/to_pascal_case.d.ts +23 -0
  229. package/dist/text/to_pascal_case.d.ts.map +1 -0
  230. package/dist/text/to_pascal_case.js +28 -0
  231. package/dist/text/to_pascal_case.js.map +1 -0
  232. package/dist/text/to_snake_case.d.ts +23 -0
  233. package/dist/text/to_snake_case.d.ts.map +1 -0
  234. package/dist/text/to_snake_case.js +28 -0
  235. package/dist/text/to_snake_case.js.map +1 -0
  236. package/dist/text/truncate.d.ts +81 -0
  237. package/dist/text/truncate.d.ts.map +1 -0
  238. package/dist/text/truncate.js +116 -0
  239. package/dist/text/truncate.js.map +1 -0
  240. package/dist/text/word_similarity_sort.d.ts +46 -0
  241. package/dist/text/word_similarity_sort.d.ts.map +1 -0
  242. package/dist/text/word_similarity_sort.js +47 -0
  243. package/dist/text/word_similarity_sort.js.map +1 -0
  244. package/package.json +27 -2
@@ -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"}
@@ -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"}