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,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 { Range } from './types.ts';
10
+ /**
11
+ * Parses the given range string and returns a Range object. If the range string
12
+ * is invalid, `undefined` is returned.
13
+ *
14
+ * @example Usage
15
+ * ```ts
16
+ * import { tryParseRange } from "inray/semver";
17
+ *
18
+ * tryParseRange(">=1.2.3 <1.2.4");
19
+ * // [
20
+ * // [
21
+ * // { operator: ">=", major: 1, minor: 2, patch: 3, prerelease: [], build: [] },
22
+ * // { operator: "<", major: 1, minor: 2, patch: 4, prerelease: [], build: [] }
23
+ * // ]
24
+ * // ]
25
+ * ```
26
+ *
27
+ * @param value The range string
28
+ * @returns A Range object if valid otherwise `undefined`
29
+ */
30
+ export declare function tryParseRange(value: string): Range | undefined;
31
+ //# sourceMappingURL=try_parse_range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"try_parse_range.d.ts","sourceRoot":"","sources":["../../src/semver/try_parse_range.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAQ9D"}
@@ -0,0 +1,40 @@
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 { parseRange } from "./parse_range.js";
10
+ /**
11
+ * Parses the given range string and returns a Range object. If the range string
12
+ * is invalid, `undefined` is returned.
13
+ *
14
+ * @example Usage
15
+ * ```ts
16
+ * import { tryParseRange } from "inray/semver";
17
+ *
18
+ * tryParseRange(">=1.2.3 <1.2.4");
19
+ * // [
20
+ * // [
21
+ * // { operator: ">=", major: 1, minor: 2, patch: 3, prerelease: [], build: [] },
22
+ * // { operator: "<", major: 1, minor: 2, patch: 4, prerelease: [], build: [] }
23
+ * // ]
24
+ * // ]
25
+ * ```
26
+ *
27
+ * @param value The range string
28
+ * @returns A Range object if valid otherwise `undefined`
29
+ */
30
+ export function tryParseRange(value) {
31
+ try {
32
+ // Return '*' instead of '' so that truthiness works.
33
+ // This will throw if it's invalid anyway
34
+ return parseRange(value);
35
+ }
36
+ catch {
37
+ return undefined;
38
+ }
39
+ }
40
+ //# sourceMappingURL=try_parse_range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"try_parse_range.js","sourceRoot":"","sources":["../../src/semver/try_parse_range.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAKL,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC;QACH,qDAAqD;QACrD,yCAAyC;QACzC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,66 @@
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
+ * The possible release types are used as an operator for the
11
+ * increment function and as a result of the difference function.
12
+ */
13
+ export type ReleaseType = 'pre' | 'major' | 'premajor' | 'minor' | 'preminor' | 'patch' | 'prepatch' | 'prerelease';
14
+ /**
15
+ * SemVer comparison operators.
16
+ */
17
+ export type Operator = undefined | '=' | '!=' | '>' | '>=' | '<' | '<=';
18
+ /**
19
+ * The shape of a valid SemVer comparator.
20
+ *
21
+ * @example Usage
22
+ * ```ts
23
+ * import type { Comparator } from "inray/semver";
24
+ *
25
+ * const comparator: Comparator = {
26
+ * operator: ">",
27
+ * major: 1,
28
+ * minor: 2,
29
+ * patch: 3,
30
+ * }
31
+ * ```
32
+ */
33
+ export interface Comparator extends SemVer {
34
+ /** The operator */
35
+ operator?: Operator;
36
+ }
37
+ /**
38
+ * A SemVer object parsed into its constituent parts.
39
+ */
40
+ export interface SemVer {
41
+ /** The major version */
42
+ major: number;
43
+ /** The minor version */
44
+ minor: number;
45
+ /** The patch version */
46
+ patch: number;
47
+ /**
48
+ * The prerelease version
49
+ *
50
+ * @default {[]}
51
+ */
52
+ prerelease?: (string | number)[];
53
+ /**
54
+ * The build metadata
55
+ *
56
+ * @default {[]}
57
+ */
58
+ build?: string[];
59
+ }
60
+ /**
61
+ * A type representing a semantic version range. The ranges consist of
62
+ * a nested array, which represents a set of OR comparisons while the
63
+ * inner array represents AND comparisons.
64
+ */
65
+ export type Range = Comparator[][];
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/semver/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEpH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,GAAG,GAEH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,CAAC;AAET;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,mBAAmB;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,EAAE,EAAE,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/semver/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK"}
@@ -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
+ export declare function splitToWords(input: string): [] | RegExpMatchArray;
10
+ export declare function capitalizeWord(word: string): string;
11
+ //# sourceMappingURL=_util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_util.d.ts","sourceRoot":"","sources":["../../src/text/_util.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAaL,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,yBAEzC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,21 @@
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 CAPITALIZED_WORD_REGEXP = /\p{Lu}\p{Ll}+/u; // e.g. Apple
10
+ const ACRONYM_REGEXP = /\p{Lu}+(?=(\p{Lu}\p{Ll})|\P{L}|\b)/u; // e.g. ID, URL, handles an acronym followed by a capitalized word e.g. HTMLElement
11
+ const LOWERCASED_WORD_REGEXP = /(\p{Ll}+)/u; // e.g. apple
12
+ const ANY_LETTERS_REGEXP = /\p{L}+/u; // will match any sequence of letters, including in languages without a concept of upper/lower case
13
+ const DIGITS_REGEXP = /\p{N}+/u; // e.g. 123
14
+ const WORD_OR_NUMBER_REGEXP = new RegExp(`${CAPITALIZED_WORD_REGEXP.source}|${ACRONYM_REGEXP.source}|${LOWERCASED_WORD_REGEXP.source}|${ANY_LETTERS_REGEXP.source}|${DIGITS_REGEXP.source}`, 'gu');
15
+ export function splitToWords(input) {
16
+ return input.match(WORD_OR_NUMBER_REGEXP) ?? [];
17
+ }
18
+ export function capitalizeWord(word) {
19
+ return word ? word[0].toUpperCase() + word.slice(1).toLowerCase() : word;
20
+ }
21
+ //# sourceMappingURL=_util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_util.js","sourceRoot":"","sources":["../../src/text/_util.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,CAAC,aAAa;AAC/D,MAAM,cAAc,GAAG,qCAAqC,CAAC,CAAC,mFAAmF;AACjJ,MAAM,sBAAsB,GAAG,YAAY,CAAC,CAAC,aAAa;AAC1D,MAAM,kBAAkB,GAAG,SAAS,CAAC,CAAC,mGAAmG;AACzI,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,WAAW;AAE5C,MAAM,qBAAqB,GAAG,IAAI,MAAM,CACtC,GAAG,uBAAuB,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,IAAI,sBAAsB,CAAC,MAAM,IAAI,kBAAkB,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,EAClJ,IAAI,CACL,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,49 @@
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
+ /** Options for {@linkcode closestString}. */
10
+ export interface ClosestStringOptions {
11
+ /**
12
+ * Whether the distance should include case.
13
+ *
14
+ * @default {false}
15
+ */
16
+ caseSensitive?: boolean;
17
+ /**
18
+ * A custom comparison function to use for comparing strings.
19
+ *
20
+ * @param a The first string for comparison.
21
+ * @param b The second string for comparison.
22
+ * @returns The distance between the two strings.
23
+ * @default {levenshteinDistance}
24
+ */
25
+ compareFn?: (a: string, b: string) => number;
26
+ }
27
+ /**
28
+ * Finds the most similar string from an array of strings.
29
+ *
30
+ * By default, calculates the distance between words using the
31
+ * {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}.
32
+ *
33
+ * @example Usage
34
+ * ```ts
35
+ * import { closestString } from "inray/text";
36
+ *
37
+ * const possibleWords = ["length", "size", "blah", "help"];
38
+ * const suggestion = closestString("hep", possibleWords);
39
+ *
40
+ * console.log(suggestion); // "help"
41
+ * ```
42
+ *
43
+ * @param givenWord The string to measure distance against
44
+ * @param possibleWords The string-array to pick the closest string from
45
+ * @param options The options for the comparison.
46
+ * @returns The closest string
47
+ */
48
+ export declare function closestString(givenWord: string, possibleWords: ReadonlyArray<string>, options?: ClosestStringOptions): string;
49
+ //# sourceMappingURL=closest_string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closest_string.d.ts","sourceRoot":"","sources":["../../src/text/closest_string.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAKL,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,EACpC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAoBR"}
@@ -0,0 +1,51 @@
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 { levenshteinDistance } from "./levenshtein_distance.js";
11
+ /**
12
+ * Finds the most similar string from an array of strings.
13
+ *
14
+ * By default, calculates the distance between words using the
15
+ * {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}.
16
+ *
17
+ * @example Usage
18
+ * ```ts
19
+ * import { closestString } from "inray/text";
20
+ *
21
+ * const possibleWords = ["length", "size", "blah", "help"];
22
+ * const suggestion = closestString("hep", possibleWords);
23
+ *
24
+ * console.log(suggestion); // "help"
25
+ * ```
26
+ *
27
+ * @param givenWord The string to measure distance against
28
+ * @param possibleWords The string-array to pick the closest string from
29
+ * @param options The options for the comparison.
30
+ * @returns The closest string
31
+ */
32
+ export function closestString(givenWord, possibleWords, options) {
33
+ if (possibleWords.length === 0) {
34
+ throw new TypeError('When using closestString(), the possibleWords array must contain at least one word');
35
+ }
36
+ const { caseSensitive, compareFn = levenshteinDistance } = { ...options };
37
+ if (!caseSensitive) {
38
+ givenWord = givenWord.toLowerCase();
39
+ }
40
+ let nearestWord = possibleWords[0];
41
+ let closestStringDistance = Infinity;
42
+ for (const each of possibleWords) {
43
+ const distance = caseSensitive ? compareFn(givenWord, each) : compareFn(givenWord, each.toLowerCase());
44
+ if (distance < closestStringDistance) {
45
+ nearestWord = each;
46
+ closestStringDistance = distance;
47
+ }
48
+ }
49
+ return nearestWord;
50
+ }
51
+ //# sourceMappingURL=closest_string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closest_string.js","sourceRoot":"","sources":["../../src/text/closest_string.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAqBhE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,aAAoC,EACpC,OAA8B;IAE9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,EAAE,aAAa,EAAE,SAAS,GAAG,mBAAmB,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAE1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;IACpC,IAAI,qBAAqB,GAAG,QAAQ,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACvG,IAAI,QAAQ,GAAG,qBAAqB,EAAE,CAAC;YACrC,WAAW,GAAG,IAAI,CAAC;YACnB,qBAAqB,GAAG,QAAQ,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,54 @@
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
+ /** Options for {@linkcode compareSimilarity}. */
10
+ export interface CompareSimilarityOptions {
11
+ /**
12
+ * Whether the distance should include case.
13
+ *
14
+ * @default {false}
15
+ */
16
+ caseSensitive?: boolean;
17
+ /**
18
+ * A custom comparison function to use for comparing strings.
19
+ *
20
+ * @param a The first string for comparison.
21
+ * @param b The second string for comparison.
22
+ * @returns The distance between the two strings.
23
+ * @default {levenshteinDistance}
24
+ */
25
+ compareFn?: (a: string, b: string) => number;
26
+ }
27
+ /**
28
+ * Takes a string and generates a comparator function to determine which of two
29
+ * strings is more similar to the given one.
30
+ *
31
+ * By default, calculates the distance between words using the
32
+ * {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}.
33
+ *
34
+ * @param givenWord The string to measure distance against.
35
+ * @param options Options for the sort.
36
+ * @returns The difference in distance. This will be a negative number if `a`
37
+ * is more similar to `givenWord` than `b`, a positive number if `b` is more
38
+ * similar, or `0` if they are equally similar.
39
+ *
40
+ * @example Usage
41
+ *
42
+ * Most-similar words will be at the start of the array.
43
+ *
44
+ * ```ts
45
+ * import { compareSimilarity } from "inray/text";
46
+ *
47
+ * const words = ["hi", "hello", "help"];
48
+ * const sortedWords = words.toSorted(compareSimilarity("hep"));
49
+ *
50
+ * console.log(sortedWords); // ["help", "hi", "hello"]
51
+ * ```
52
+ */
53
+ export declare function compareSimilarity(givenWord: string, options?: CompareSimilarityOptions): (a: string, b: string) => number;
54
+ //# sourceMappingURL=compare_similarity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare_similarity.d.ts","sourceRoot":"","sources":["../../src/text/compare_similarity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAKL,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,GACjC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAOlC"}
@@ -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
+ // This module is browser compatible.
10
+ import { levenshteinDistance } from "./levenshtein_distance.js";
11
+ /**
12
+ * Takes a string and generates a comparator function to determine which of two
13
+ * strings is more similar to the given one.
14
+ *
15
+ * By default, calculates the distance between words using the
16
+ * {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}.
17
+ *
18
+ * @param givenWord The string to measure distance against.
19
+ * @param options Options for the sort.
20
+ * @returns The difference in distance. This will be a negative number if `a`
21
+ * is more similar to `givenWord` than `b`, a positive number if `b` is more
22
+ * similar, or `0` if they are equally similar.
23
+ *
24
+ * @example Usage
25
+ *
26
+ * Most-similar words will be at the start of the array.
27
+ *
28
+ * ```ts
29
+ * import { compareSimilarity } from "inray/text";
30
+ *
31
+ * const words = ["hi", "hello", "help"];
32
+ * const sortedWords = words.toSorted(compareSimilarity("hep"));
33
+ *
34
+ * console.log(sortedWords); // ["help", "hi", "hello"]
35
+ * ```
36
+ */
37
+ export function compareSimilarity(givenWord, options) {
38
+ const { compareFn = levenshteinDistance } = { ...options };
39
+ if (options?.caseSensitive) {
40
+ return (a, b) => compareFn(givenWord, a) - compareFn(givenWord, b);
41
+ }
42
+ givenWord = givenWord.toLowerCase();
43
+ return (a, b) => compareFn(givenWord, a.toLowerCase()) - compareFn(givenWord, b.toLowerCase());
44
+ }
45
+ //# sourceMappingURL=compare_similarity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare_similarity.js","sourceRoot":"","sources":["../../src/text/compare_similarity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAqBhE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,OAAkC;IAElC,MAAM,EAAE,SAAS,GAAG,mBAAmB,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3D,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACjH,CAAC"}
@@ -0,0 +1,30 @@
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
+ * Calculates the
11
+ * {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}
12
+ * between two strings.
13
+ *
14
+ * > [!NOTE]
15
+ * > The complexity of this function is O(m * n), where m and n are the lengths
16
+ * > of the two strings. It's recommended to limit the length and validate input
17
+ * > if arbitrarily accepting input.
18
+ *
19
+ * @example Usage
20
+ * ```ts
21
+ * import { levenshteinDistance } from "inray/text";
22
+ *
23
+ * levenshteinDistance("aa", "bb"); // 2
24
+ * ```
25
+ * @param str1 The first string.
26
+ * @param str2 The second string.
27
+ * @returns The Levenshtein distance between the two strings.
28
+ */
29
+ export declare function levenshteinDistance(str1: string, str2: string): number;
30
+ //# sourceMappingURL=levenshtein_distance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levenshtein_distance.d.ts","sourceRoot":"","sources":["../../src/text/levenshtein_distance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAoGL;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAWtE"}
@@ -0,0 +1,134 @@
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
+ const { ceil } = Math;
11
+ // This implements Myers' bit-vector algorithm as described here:
12
+ // https://dl.acm.org/doi/pdf/10.1145/316542.316550
13
+ const peq = new Uint32Array(0x110000);
14
+ function myers32(t, p) {
15
+ const n = t.length;
16
+ const m = p.length;
17
+ for (let i = 0; i < m; i++) {
18
+ peq[p[i].codePointAt(0)] |= 1 << i;
19
+ }
20
+ const last = m - 1;
21
+ let pv = -1;
22
+ let mv = 0;
23
+ let score = m;
24
+ for (let j = 0; j < n; j++) {
25
+ const eq = peq[t[j].codePointAt(0)];
26
+ const xv = eq | mv;
27
+ const xh = (((eq & pv) + pv) ^ pv) | eq;
28
+ let ph = mv | ~(xh | pv);
29
+ let mh = pv & xh;
30
+ score += ((ph >>> last) & 1) - ((mh >>> last) & 1);
31
+ // Set the horizontal delta in the first row to +1
32
+ // because we are computing the distance between two full strings.
33
+ ph = (ph << 1) | 1;
34
+ mh = mh << 1;
35
+ pv = mh | ~(xv | ph);
36
+ mv = ph & xv;
37
+ }
38
+ for (let i = 0; i < m; i++) {
39
+ peq[p[i].codePointAt(0)] = 0;
40
+ }
41
+ return score;
42
+ }
43
+ function myersX(t, p) {
44
+ const n = t.length;
45
+ const m = p.length;
46
+ // Initialize the horizontal deltas to +1.
47
+ const h = new Int8Array(n).fill(1);
48
+ const bmax = ceil(m / 32) - 1;
49
+ // Process the blocks row by row so that we can use the fixed-size peq array.
50
+ for (let b = 0; b < bmax; b++) {
51
+ const start = b * 32;
52
+ const end = (b + 1) * 32;
53
+ for (let i = start; i < end; i++) {
54
+ peq[p[i].codePointAt(0)] |= 1 << i;
55
+ }
56
+ let pv = -1;
57
+ let mv = 0;
58
+ for (let j = 0; j < n; j++) {
59
+ const hin = h[j];
60
+ let eq = peq[t[j].codePointAt(0)];
61
+ const xv = eq | mv;
62
+ eq |= hin >>> 31;
63
+ const xh = (((eq & pv) + pv) ^ pv) | eq;
64
+ let ph = mv | ~(xh | pv);
65
+ let mh = pv & xh;
66
+ h[j] = (ph >>> 31) - (mh >>> 31);
67
+ ph = (ph << 1) | (-hin >>> 31);
68
+ mh = (mh << 1) | (hin >>> 31);
69
+ pv = mh | ~(xv | ph);
70
+ mv = ph & xv;
71
+ }
72
+ for (let i = start; i < end; i++) {
73
+ peq[p[i].codePointAt(0)] = 0;
74
+ }
75
+ }
76
+ const start = bmax * 32;
77
+ for (let i = start; i < m; i++) {
78
+ peq[p[i].codePointAt(0)] |= 1 << i;
79
+ }
80
+ const last = m - 1;
81
+ let pv = -1;
82
+ let mv = 0;
83
+ let score = m;
84
+ for (let j = 0; j < n; j++) {
85
+ const hin = h[j];
86
+ let eq = peq[t[j].codePointAt(0)];
87
+ const xv = eq | mv;
88
+ eq |= hin >>> 31;
89
+ const xh = (((eq & pv) + pv) ^ pv) | eq;
90
+ let ph = mv | ~(xh | pv);
91
+ let mh = pv & xh;
92
+ score += ((ph >>> last) & 1) - ((mh >>> last) & 1);
93
+ ph = (ph << 1) | (-hin >>> 31);
94
+ mh = (mh << 1) | (hin >>> 31);
95
+ pv = mh | ~(xv | ph);
96
+ mv = ph & xv;
97
+ }
98
+ for (let i = start; i < m; i++) {
99
+ peq[p[i].codePointAt(0)] = 0;
100
+ }
101
+ return score;
102
+ }
103
+ /**
104
+ * Calculates the
105
+ * {@link https://en.wikipedia.org/wiki/Levenshtein_distance | Levenshtein distance}
106
+ * between two strings.
107
+ *
108
+ * > [!NOTE]
109
+ * > The complexity of this function is O(m * n), where m and n are the lengths
110
+ * > of the two strings. It's recommended to limit the length and validate input
111
+ * > if arbitrarily accepting input.
112
+ *
113
+ * @example Usage
114
+ * ```ts
115
+ * import { levenshteinDistance } from "inray/text";
116
+ *
117
+ * levenshteinDistance("aa", "bb"); // 2
118
+ * ```
119
+ * @param str1 The first string.
120
+ * @param str2 The second string.
121
+ * @returns The Levenshtein distance between the two strings.
122
+ */
123
+ export function levenshteinDistance(str1, str2) {
124
+ let t = [...str1];
125
+ let p = [...str2];
126
+ if (t.length < p.length) {
127
+ [p, t] = [t, p];
128
+ }
129
+ if (p.length === 0) {
130
+ return t.length;
131
+ }
132
+ return p.length <= 32 ? myers32(t, p) : myersX(t, p);
133
+ }
134
+ //# sourceMappingURL=levenshtein_distance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levenshtein_distance.js","sourceRoot":"","sources":["../../src/text/levenshtein_distance.ts"],"names":[],"mappings":"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"}
@@ -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
+ /**
10
+ * Utility functions for working with text.
11
+ *
12
+ * ```ts
13
+ * import { toCamelCase, compareSimilarity } from "inray/text";
14
+ *
15
+ * toCamelCase("snake_case"); // "snakeCase"
16
+ *
17
+ * const words = ["hi", "help", "hello"];
18
+ *
19
+ * // Words most similar to "hep" will be at the front
20
+ * words.sort(compareSimilarity("hep")); // ["help", "hi", "hello"]
21
+ * ```
22
+ *
23
+ * @module
24
+ */
25
+ export * from './levenshtein_distance.ts';
26
+ export * from './closest_string.ts';
27
+ export * from './compare_similarity.ts';
28
+ export * from './word_similarity_sort.ts';
29
+ export * from './to_camel_case.ts';
30
+ export * from './to_kebab_case.ts';
31
+ export * from './to_pascal_case.ts';
32
+ export * from './to_snake_case.ts';
33
+ export * from './truncate.ts';
34
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/text/mod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}