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.
- package/LICENSE.md +32 -29
- package/README.md +522 -58
- package/dist/db-migrator/src/bin.js +1 -1
- package/dist/db-migrator/src/bin.js.map +1 -1
- package/dist/db-migrator/src/index.d.ts +1 -1
- package/dist/db-migrator/src/index.d.ts.map +1 -1
- package/dist/db-migrator/src/index.js +1 -1
- package/dist/db-migrator/src/index.js.map +1 -1
- package/dist/db-migrator/src/lib/clients/index.d.ts +3 -3
- package/dist/db-migrator/src/lib/clients/index.d.ts.map +1 -1
- package/dist/db-migrator/src/lib/clients/index.js +5 -4
- package/dist/db-migrator/src/lib/clients/index.js.map +1 -1
- package/dist/db-migrator/src/lib/clients/postgres.js +1 -1
- package/dist/db-migrator/src/lib/clients/postgres.js.map +1 -1
- package/dist/db-migrator/src/lib/clients/sqlite.d.ts +3 -0
- package/dist/db-migrator/src/lib/clients/sqlite.d.ts.map +1 -0
- package/dist/db-migrator/src/lib/clients/sqlite.js +55 -0
- package/dist/db-migrator/src/lib/clients/sqlite.js.map +1 -0
- package/dist/db-migrator/src/lib/migrator.sql.d.ts +4 -0
- package/dist/db-migrator/src/lib/migrator.sql.d.ts.map +1 -1
- package/dist/db-migrator/src/lib/migrator.sql.js +12 -0
- package/dist/db-migrator/src/lib/migrator.sql.js.map +1 -1
- package/dist/db-migrator/src/lib/migrator.types.d.ts +4 -2
- package/dist/db-migrator/src/lib/migrator.types.d.ts.map +1 -1
- package/dist/db-migrator/src/migrator.d.ts.map +1 -1
- package/dist/db-migrator/src/migrator.js +1 -0
- package/dist/db-migrator/src/migrator.js.map +1 -1
- package/dist/random/_pcg32.d.ts +61 -0
- package/dist/random/_pcg32.d.ts.map +1 -0
- package/dist/random/_pcg32.js +122 -0
- package/dist/random/_pcg32.js.map +1 -0
- package/dist/random/_platform.d.ts +12 -0
- package/dist/random/_platform.d.ts.map +1 -0
- package/dist/random/_platform.js +13 -0
- package/dist/random/_platform.js.map +1 -0
- package/dist/random/_seed_bytes_from_uint64.d.ts +15 -0
- package/dist/random/_seed_bytes_from_uint64.d.ts.map +1 -0
- package/dist/random/_seed_bytes_from_uint64.js +23 -0
- package/dist/random/_seed_bytes_from_uint64.js.map +1 -0
- package/dist/random/_test_utils.d.ts +15 -0
- package/dist/random/_test_utils.d.ts.map +1 -0
- package/dist/random/_test_utils.js +92 -0
- package/dist/random/_test_utils.js.map +1 -0
- package/dist/random/_types.d.ts +50 -0
- package/dist/random/_types.d.ts.map +1 -0
- package/dist/random/_types.js +10 -0
- package/dist/random/_types.js.map +1 -0
- package/dist/random/between.d.ts +33 -0
- package/dist/random/between.d.ts.map +1 -0
- package/dist/random/between.js +44 -0
- package/dist/random/between.js.map +1 -0
- package/dist/random/get_random_values_seeded.d.ts +31 -0
- package/dist/random/get_random_values_seeded.d.ts.map +1 -0
- package/dist/random/get_random_values_seeded.js +34 -0
- package/dist/random/get_random_values_seeded.js.map +1 -0
- package/dist/random/integer_between.d.ts +33 -0
- package/dist/random/integer_between.d.ts.map +1 -0
- package/dist/random/integer_between.js +34 -0
- package/dist/random/integer_between.js.map +1 -0
- package/dist/random/internal/_testing.d.ts +15 -0
- package/dist/random/internal/_testing.d.ts.map +1 -0
- package/dist/random/internal/_testing.js +27 -0
- package/dist/random/internal/_testing.js.map +1 -0
- package/dist/random/mod.d.ts +45 -0
- package/dist/random/mod.d.ts.map +1 -0
- package/dist/random/mod.js +46 -0
- package/dist/random/mod.js.map +1 -0
- package/dist/random/next_float_64.d.ts +38 -0
- package/dist/random/next_float_64.d.ts.map +1 -0
- package/dist/random/next_float_64.js +47 -0
- package/dist/random/next_float_64.js.map +1 -0
- package/dist/random/sample.d.ts +58 -0
- package/dist/random/sample.d.ts.map +1 -0
- package/dist/random/sample.js +69 -0
- package/dist/random/sample.js.map +1 -0
- package/dist/random/seeded.d.ts +34 -0
- package/dist/random/seeded.d.ts.map +1 -0
- package/dist/random/seeded.js +37 -0
- package/dist/random/seeded.js.map +1 -0
- package/dist/random/shuffle.d.ts +35 -0
- package/dist/random/shuffle.d.ts.map +1 -0
- package/dist/random/shuffle.js +48 -0
- package/dist/random/shuffle.js.map +1 -0
- package/dist/semver/_constants.d.ts +20 -0
- package/dist/semver/_constants.d.ts.map +1 -0
- package/dist/semver/_constants.js +28 -0
- package/dist/semver/_constants.js.map +1 -0
- package/dist/semver/_shared.d.ts +52 -0
- package/dist/semver/_shared.d.ts.map +1 -0
- package/dist/semver/_shared.js +168 -0
- package/dist/semver/_shared.js.map +1 -0
- package/dist/semver/_test_comparator_set.d.ts +11 -0
- package/dist/semver/_test_comparator_set.d.ts.map +1 -0
- package/dist/semver/_test_comparator_set.js +62 -0
- package/dist/semver/_test_comparator_set.js.map +1 -0
- package/dist/semver/can_parse.d.ts +24 -0
- package/dist/semver/can_parse.d.ts.map +1 -0
- package/dist/semver/can_parse.js +34 -0
- package/dist/semver/can_parse.js.map +1 -0
- package/dist/semver/compare.d.ts +35 -0
- package/dist/semver/compare.d.ts.map +1 -0
- package/dist/semver/compare.js +43 -0
- package/dist/semver/compare.js.map +1 -0
- package/dist/semver/difference.d.ts +34 -0
- package/dist/semver/difference.d.ts.map +1 -0
- package/dist/semver/difference.js +48 -0
- package/dist/semver/difference.js.map +1 -0
- package/dist/semver/equals.d.ts +31 -0
- package/dist/semver/equals.d.ts.map +1 -0
- package/dist/semver/equals.js +34 -0
- package/dist/semver/equals.js.map +1 -0
- package/dist/semver/format.d.ts +29 -0
- package/dist/semver/format.d.ts.map +1 -0
- package/dist/semver/format.js +40 -0
- package/dist/semver/format.js.map +1 -0
- package/dist/semver/format_range.d.ts +25 -0
- package/dist/semver/format_range.d.ts.map +1 -0
- package/dist/semver/format_range.js +33 -0
- package/dist/semver/format_range.js.map +1 -0
- package/dist/semver/greater_or_equal.d.ts +32 -0
- package/dist/semver/greater_or_equal.d.ts.map +1 -0
- package/dist/semver/greater_or_equal.js +34 -0
- package/dist/semver/greater_or_equal.js.map +1 -0
- package/dist/semver/greater_than.d.ts +32 -0
- package/dist/semver/greater_than.d.ts.map +1 -0
- package/dist/semver/greater_than.js +34 -0
- package/dist/semver/greater_than.js.map +1 -0
- package/dist/semver/greater_than_range.d.ts +30 -0
- package/dist/semver/greater_than_range.d.ts.map +1 -0
- package/dist/semver/greater_than_range.js +64 -0
- package/dist/semver/greater_than_range.js.map +1 -0
- package/dist/semver/increment.d.ts +61 -0
- package/dist/semver/increment.d.ts.map +1 -0
- package/dist/semver/increment.js +186 -0
- package/dist/semver/increment.js.map +1 -0
- package/dist/semver/is_range.d.ts +30 -0
- package/dist/semver/is_range.d.ts.map +1 -0
- package/dist/semver/is_range.js +42 -0
- package/dist/semver/is_range.js.map +1 -0
- package/dist/semver/is_semver.d.ts +41 -0
- package/dist/semver/is_semver.d.ts.map +1 -0
- package/dist/semver/is_semver.js +60 -0
- package/dist/semver/is_semver.js.map +1 -0
- package/dist/semver/less_or_equal.d.ts +32 -0
- package/dist/semver/less_or_equal.d.ts.map +1 -0
- package/dist/semver/less_or_equal.js +34 -0
- package/dist/semver/less_or_equal.js.map +1 -0
- package/dist/semver/less_than.d.ts +32 -0
- package/dist/semver/less_than.d.ts.map +1 -0
- package/dist/semver/less_than.js +34 -0
- package/dist/semver/less_than.js.map +1 -0
- package/dist/semver/less_than_range.d.ts +30 -0
- package/dist/semver/less_than_range.d.ts.map +1 -0
- package/dist/semver/less_than_range.js +64 -0
- package/dist/semver/less_than_range.js.map +1 -0
- package/dist/semver/max_satisfying.d.ts +29 -0
- package/dist/semver/max_satisfying.d.ts.map +1 -0
- package/dist/semver/max_satisfying.js +38 -0
- package/dist/semver/max_satisfying.js.map +1 -0
- package/dist/semver/min_satisfying.d.ts +29 -0
- package/dist/semver/min_satisfying.d.ts.map +1 -0
- package/dist/semver/min_satisfying.js +38 -0
- package/dist/semver/min_satisfying.js.map +1 -0
- package/dist/semver/mod.d.ts +305 -0
- package/dist/semver/mod.d.ts.map +1 -0
- package/dist/semver/mod.js +306 -0
- package/dist/semver/mod.js.map +1 -0
- package/dist/semver/not_equals.d.ts +31 -0
- package/dist/semver/not_equals.d.ts.map +1 -0
- package/dist/semver/not_equals.js +33 -0
- package/dist/semver/not_equals.js.map +1 -0
- package/dist/semver/parse.d.ts +32 -0
- package/dist/semver/parse.d.ts.map +1 -0
- package/dist/semver/parse.js +50 -0
- package/dist/semver/parse.js.map +1 -0
- package/dist/semver/parse_range.d.ts +34 -0
- package/dist/semver/parse_range.d.ts.map +1 -0
- package/dist/semver/parse_range.js +352 -0
- package/dist/semver/parse_range.js.map +1 -0
- package/dist/semver/range_intersects.d.ts +32 -0
- package/dist/semver/range_intersects.d.ts.map +1 -0
- package/dist/semver/range_intersects.js +89 -0
- package/dist/semver/range_intersects.js.map +1 -0
- package/dist/semver/satisfies.d.ts +31 -0
- package/dist/semver/satisfies.d.ts.map +1 -0
- package/dist/semver/satisfies.js +33 -0
- package/dist/semver/satisfies.js.map +1 -0
- package/dist/semver/try_parse.d.ts +28 -0
- package/dist/semver/try_parse.d.ts.map +1 -0
- package/dist/semver/try_parse.js +35 -0
- package/dist/semver/try_parse.js.map +1 -0
- package/dist/semver/try_parse_range.d.ts +31 -0
- package/dist/semver/try_parse_range.d.ts.map +1 -0
- package/dist/semver/try_parse_range.js +40 -0
- package/dist/semver/try_parse_range.js.map +1 -0
- package/dist/semver/types.d.ts +66 -0
- package/dist/semver/types.d.ts.map +1 -0
- package/dist/semver/types.js +10 -0
- package/dist/semver/types.js.map +1 -0
- package/dist/text/_util.d.ts +11 -0
- package/dist/text/_util.d.ts.map +1 -0
- package/dist/text/_util.js +21 -0
- package/dist/text/_util.js.map +1 -0
- package/dist/text/closest_string.d.ts +49 -0
- package/dist/text/closest_string.d.ts.map +1 -0
- package/dist/text/closest_string.js +51 -0
- package/dist/text/closest_string.js.map +1 -0
- package/dist/text/compare_similarity.d.ts +54 -0
- package/dist/text/compare_similarity.d.ts.map +1 -0
- package/dist/text/compare_similarity.js +45 -0
- package/dist/text/compare_similarity.js.map +1 -0
- package/dist/text/levenshtein_distance.d.ts +30 -0
- package/dist/text/levenshtein_distance.d.ts.map +1 -0
- package/dist/text/levenshtein_distance.js +134 -0
- package/dist/text/levenshtein_distance.js.map +1 -0
- package/dist/text/mod.d.ts +34 -0
- package/dist/text/mod.d.ts.map +1 -0
- package/dist/text/mod.js +35 -0
- package/dist/text/mod.js.map +1 -0
- package/dist/text/to_camel_case.d.ts +23 -0
- package/dist/text/to_camel_case.d.ts.map +1 -0
- package/dist/text/to_camel_case.js +29 -0
- package/dist/text/to_camel_case.js.map +1 -0
- package/dist/text/to_kebab_case.d.ts +23 -0
- package/dist/text/to_kebab_case.d.ts.map +1 -0
- package/dist/text/to_kebab_case.js +28 -0
- package/dist/text/to_kebab_case.js.map +1 -0
- package/dist/text/to_pascal_case.d.ts +23 -0
- package/dist/text/to_pascal_case.d.ts.map +1 -0
- package/dist/text/to_pascal_case.js +28 -0
- package/dist/text/to_pascal_case.js.map +1 -0
- package/dist/text/to_snake_case.d.ts +23 -0
- package/dist/text/to_snake_case.d.ts.map +1 -0
- package/dist/text/to_snake_case.js +28 -0
- package/dist/text/to_snake_case.js.map +1 -0
- package/dist/text/truncate.d.ts +81 -0
- package/dist/text/truncate.d.ts.map +1 -0
- package/dist/text/truncate.js +116 -0
- package/dist/text/truncate.js.map +1 -0
- package/dist/text/word_similarity_sort.d.ts +46 -0
- package/dist/text/word_similarity_sort.d.ts.map +1 -0
- package/dist/text/word_similarity_sort.js +47 -0
- package/dist/text/word_similarity_sort.js.map +1 -0
- 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 @@
|
|
|
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"}
|