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,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"}
@@ -0,0 +1,28 @@
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
+ * ANY is a sentinel value used by some range calculations. It is not a valid
11
+ * SemVer object and should not be used directly.
12
+ */
13
+ export const ANY = {
14
+ major: Number.NaN,
15
+ minor: Number.NaN,
16
+ patch: Number.NaN,
17
+ prerelease: [],
18
+ build: []
19
+ };
20
+ /**
21
+ * A comparator which will span all valid semantic versions
22
+ */
23
+ export const ALL = {
24
+ operator: undefined,
25
+ ...ANY
26
+ };
27
+ export const OPERATORS = [undefined, '=', '!=', '>', '>=', '<', '<='];
28
+ //# sourceMappingURL=_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_constants.js","sourceRoot":"","sources":["../../src/semver/_constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAW;IACzB,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC,GAAG;IACjB,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAe;IAC7B,QAAQ,EAAE,SAAS;IACnB,GAAG,GAAG;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC"}
@@ -0,0 +1,52 @@
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 } from './types.ts';
10
+ export declare function compareNumber(a: number, b: number): 1 | 0 | -1;
11
+ export declare function checkIdentifier(v1?: ReadonlyArray<string | number>, v2?: ReadonlyArray<string | number>): 1 | 0 | -1;
12
+ export declare function compareIdentifier(v1?: ReadonlyArray<string | number>, v2?: ReadonlyArray<string | number>): 1 | 0 | -1;
13
+ export declare const FULL_REGEXP: RegExp;
14
+ /**
15
+ * A version that can contain wildcards.
16
+ * @example "x", "1.x", "1.x.x", "1.2.x", "*", "1.*", "1.*.*", "1.2.*"
17
+ */
18
+ export declare const XRANGE = "[v=\\s]*(?<major>0|[1-9]\\d*|x|X|\\*)(?:\\.(?<minor>0|[1-9]\\d*|x|X|\\*)(?:\\.(?<patch>0|[1-9]\\d*|x|X|\\*)(?:-(?<prerelease>(?:0|[1-9]\\d*|\\d*[a-zA-Z-][a-zA-Z0-9-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][a-zA-Z0-9-]*))*))?(?:\\+(?<buildmetadata>[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?)?)?";
19
+ /**
20
+ * An operator (`~`, `~>`, `^`, `=`, `<`, `<=`, `>`, or `>=`), followed by an x-range.
21
+ * @example "~1.x.x", "^1.2.*", ">=1.2.3"
22
+ */
23
+ export declare const OPERATOR_XRANGE_REGEXP: RegExp;
24
+ /**
25
+ * An empty string or a comparator (`=`, `<`, `<=`, `>`, or `>=`), followed by a version.
26
+ * @example ">1.2.3"
27
+ */
28
+ export declare const COMPARATOR_REGEXP: RegExp;
29
+ /**
30
+ * Returns true if the value is a valid SemVer number.
31
+ *
32
+ * Must be a number. Must not be NaN. Can be positive or negative infinity.
33
+ * Can be between 0 and MAX_SAFE_INTEGER.
34
+ * @param value The value to check
35
+ * @returns True if its a valid semver number
36
+ */
37
+ export declare function isValidNumber(value: unknown): value is number;
38
+ export declare const MAX_LENGTH = 256;
39
+ /**
40
+ * Returns true if the value is a valid semver pre-release or build identifier.
41
+ *
42
+ * Must be a string. Must be between 1 and 256 characters long. Must match
43
+ * the regular expression /[0-9A-Za-z-]+/.
44
+ * @param value The value to check
45
+ * @returns True if the value is a valid semver string.
46
+ */
47
+ export declare function isValidString(value: unknown): value is string;
48
+ export declare function parsePrerelease(prerelease: string): (string | number)[];
49
+ export declare function parseBuild(buildmetadata: string): string[];
50
+ export declare function parseNumber(input: string, errorMessage: string): number;
51
+ export declare function isWildcardComparator(c: Comparator): boolean;
52
+ //# sourceMappingURL=_shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/semver/_shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAK9D;AAED,wBAAgB,eAAe,CAC7B,EAAE,GAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAM,EACvC,EAAE,GAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAM,GACtC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAMZ;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,GAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAM,EACvC,EAAE,GAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAM,GACtC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAoBZ;AA4CD,eAAO,MAAM,WAAW,QAAkC,CAAC;AAgB3D;;;GAGG;AACH,eAAO,MAAM,MAAM,iSAA8I,CAAC;AAElK;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAkE,CAAC;AAEtG;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAqE,CAAC;AAEpG;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAM7D;AAED,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE7D;AAGD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,uBAWjD;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,YAE/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAI9D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAQ3D"}
@@ -0,0 +1,168 @@
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 function compareNumber(a, b) {
10
+ if (isNaN(a) || isNaN(b)) {
11
+ throw new Error('Cannot compare against non-numbers');
12
+ }
13
+ return a === b ? 0 : a < b ? -1 : 1;
14
+ }
15
+ export function checkIdentifier(v1 = [], v2 = []) {
16
+ // NOT having a prerelease is > having one
17
+ // But NOT having a build is < having one
18
+ if (v1.length && !v2.length)
19
+ return -1;
20
+ if (!v1.length && v2.length)
21
+ return 1;
22
+ return 0;
23
+ }
24
+ export function compareIdentifier(v1 = [], v2 = []) {
25
+ const length = Math.max(v1.length, v2.length);
26
+ for (let i = 0; i < length; i++) {
27
+ const a = v1[i];
28
+ const b = v2[i];
29
+ // same length is equal
30
+ if (a === undefined && b === undefined)
31
+ return 0;
32
+ // longer > shorter
33
+ if (b === undefined)
34
+ return 1;
35
+ // shorter < longer
36
+ if (a === undefined)
37
+ return -1;
38
+ // string > number
39
+ if (typeof a === 'string' && typeof b === 'number')
40
+ return 1;
41
+ // number < string
42
+ if (typeof a === 'number' && typeof b === 'string')
43
+ return -1;
44
+ if (a < b)
45
+ return -1;
46
+ if (a > b)
47
+ return 1;
48
+ // If they're equal, continue comparing segments.
49
+ }
50
+ return 0;
51
+ }
52
+ /**
53
+ * A single `0`, or a non-zero digit followed by zero or more digits.
54
+ */
55
+ const NUMERIC_IDENTIFIER = '0|[1-9]\\d*';
56
+ /**
57
+ * Zero or more digits, followed by a letter or hyphen, and then zero or more letters, digits, or hyphens.
58
+ */
59
+ const NON_NUMERIC_IDENTIFIER = '\\d*[a-zA-Z-][a-zA-Z0-9-]*';
60
+ /**
61
+ * Three dot-separated numeric identifiers.
62
+ */
63
+ const VERSION_CORE = `(?<major>${NUMERIC_IDENTIFIER})\\.(?<minor>${NUMERIC_IDENTIFIER})\\.(?<patch>${NUMERIC_IDENTIFIER})`;
64
+ /**
65
+ * A numeric identifier, or a non-numeric identifier.
66
+ */
67
+ const PRERELEASE_IDENTIFIER = `(?:${NUMERIC_IDENTIFIER}|${NON_NUMERIC_IDENTIFIER})`;
68
+ /**
69
+ * A hyphen, followed by one or more dot-separated pre-release version identifiers.
70
+ * @example "-pre.release"
71
+ */
72
+ const PRERELEASE = `(?:-(?<prerelease>${PRERELEASE_IDENTIFIER}(?:\\.${PRERELEASE_IDENTIFIER})*))`;
73
+ /**
74
+ * Any combination of digits, letters, or hyphens.
75
+ */
76
+ const BUILD_IDENTIFIER = '[0-9A-Za-z-]+';
77
+ /**
78
+ * A plus sign, followed by one or more period-separated build metadata identifiers.
79
+ * @example "+build.meta"
80
+ */
81
+ const BUILD = `(?:\\+(?<buildmetadata>${BUILD_IDENTIFIER}(?:\\.${BUILD_IDENTIFIER})*))`;
82
+ /**
83
+ * A version, followed optionally by a pre-release version and build metadata.
84
+ */
85
+ const FULL_VERSION = `v?${VERSION_CORE}${PRERELEASE}?${BUILD}?`;
86
+ export const FULL_REGEXP = new RegExp(`^${FULL_VERSION}$`);
87
+ /**
88
+ * A comparator.
89
+ * @example `=`, `<`, `<=`, `>`, `>=`
90
+ */
91
+ const COMPARATOR = '(?:<|>)?=?';
92
+ /**
93
+ * A wildcard identifier.
94
+ * @example "x", "X", "*"
95
+ */
96
+ const WILDCARD_IDENTIFIER = `x|X|\\*`;
97
+ const XRANGE_IDENTIFIER = `${NUMERIC_IDENTIFIER}|${WILDCARD_IDENTIFIER}`;
98
+ /**
99
+ * A version that can contain wildcards.
100
+ * @example "x", "1.x", "1.x.x", "1.2.x", "*", "1.*", "1.*.*", "1.2.*"
101
+ */
102
+ export const XRANGE = `[v=\\s]*(?<major>${XRANGE_IDENTIFIER})(?:\\.(?<minor>${XRANGE_IDENTIFIER})(?:\\.(?<patch>${XRANGE_IDENTIFIER})${PRERELEASE}?${BUILD}?)?)?`;
103
+ /**
104
+ * An operator (`~`, `~>`, `^`, `=`, `<`, `<=`, `>`, or `>=`), followed by an x-range.
105
+ * @example "~1.x.x", "^1.2.*", ">=1.2.3"
106
+ */
107
+ export const OPERATOR_XRANGE_REGEXP = new RegExp(`^(?<operator>~>?|\\^|${COMPARATOR})\\s*${XRANGE}$`);
108
+ /**
109
+ * An empty string or a comparator (`=`, `<`, `<=`, `>`, or `>=`), followed by a version.
110
+ * @example ">1.2.3"
111
+ */
112
+ export const COMPARATOR_REGEXP = new RegExp(`^(?<operator>${COMPARATOR})\\s*(${FULL_VERSION})$|^$`);
113
+ /**
114
+ * Returns true if the value is a valid SemVer number.
115
+ *
116
+ * Must be a number. Must not be NaN. Can be positive or negative infinity.
117
+ * Can be between 0 and MAX_SAFE_INTEGER.
118
+ * @param value The value to check
119
+ * @returns True if its a valid semver number
120
+ */
121
+ export function isValidNumber(value) {
122
+ return (typeof value === 'number' &&
123
+ !Number.isNaN(value) &&
124
+ (!Number.isFinite(value) || (0 <= value && value <= Number.MAX_SAFE_INTEGER)));
125
+ }
126
+ export const MAX_LENGTH = 256;
127
+ /**
128
+ * Returns true if the value is a valid semver pre-release or build identifier.
129
+ *
130
+ * Must be a string. Must be between 1 and 256 characters long. Must match
131
+ * the regular expression /[0-9A-Za-z-]+/.
132
+ * @param value The value to check
133
+ * @returns True if the value is a valid semver string.
134
+ */
135
+ export function isValidString(value) {
136
+ return typeof value === 'string' && value.length > 0 && value.length <= MAX_LENGTH && /[0-9A-Za-z-]+/.test(value);
137
+ }
138
+ const NUMERIC_IDENTIFIER_REGEXP = new RegExp(`^${NUMERIC_IDENTIFIER}$`);
139
+ export function parsePrerelease(prerelease) {
140
+ return prerelease
141
+ .split('.')
142
+ .filter(Boolean)
143
+ .map((id) => {
144
+ if (NUMERIC_IDENTIFIER_REGEXP.test(id)) {
145
+ const number = Number(id);
146
+ if (isValidNumber(number))
147
+ return number;
148
+ }
149
+ return id;
150
+ });
151
+ }
152
+ export function parseBuild(buildmetadata) {
153
+ return buildmetadata.split('.').filter(Boolean);
154
+ }
155
+ export function parseNumber(input, errorMessage) {
156
+ const number = Number(input);
157
+ if (!isValidNumber(number))
158
+ throw new TypeError(errorMessage);
159
+ return number;
160
+ }
161
+ export function isWildcardComparator(c) {
162
+ return (Number.isNaN(c.major) &&
163
+ Number.isNaN(c.minor) &&
164
+ Number.isNaN(c.patch) &&
165
+ (c.prerelease === undefined || c.prerelease.length === 0) &&
166
+ (c.build === undefined || c.build.length === 0));
167
+ }
168
+ //# sourceMappingURL=_shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/semver/_shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
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
+ export declare function testComparatorSet(version: SemVer, set: Comparator[]): boolean;
11
+ //# sourceMappingURL=_test_comparator_set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_test_comparator_set.d.ts","sourceRoot":"","sources":["../../src/semver/_test_comparator_set.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAgCrD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,OAAO,CAqB7E"}