locutus 2.0.31 → 2.0.34

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 (879) hide show
  1. package/README.md +84 -0
  2. package/_data/rosetta.yml +325 -0
  3. package/awk/builtin/index.js +3 -0
  4. package/awk/builtin/int.js +13 -0
  5. package/awk/builtin/length.js +16 -0
  6. package/awk/builtin/substr.js +23 -0
  7. package/c/ctype/index.js +8 -0
  8. package/c/ctype/isalnum.js +15 -0
  9. package/c/ctype/isalpha.js +17 -0
  10. package/c/ctype/isdigit.js +15 -0
  11. package/c/ctype/islower.js +15 -0
  12. package/c/ctype/isspace.js +15 -0
  13. package/c/ctype/isupper.js +15 -0
  14. package/c/ctype/tolower.js +15 -0
  15. package/c/ctype/toupper.js +15 -0
  16. package/c/index.js +2 -5
  17. package/c/math/abs.js +14 -18
  18. package/c/math/frexp.js +19 -20
  19. package/c/math/index.js +2 -5
  20. package/c/stdio/index.js +1 -4
  21. package/c/stdio/sprintf.js +71 -81
  22. package/c/stdlib/atof.js +15 -0
  23. package/c/stdlib/atoi.js +17 -0
  24. package/c/stdlib/index.js +2 -0
  25. package/c/string/index.js +5 -0
  26. package/c/string/strcat.js +12 -0
  27. package/c/string/strchr.js +15 -0
  28. package/c/string/strcmp.js +21 -0
  29. package/c/string/strlen.js +12 -0
  30. package/c/string/strstr.js +15 -0
  31. package/clojure/Math/abs.js +13 -0
  32. package/clojure/Math/ceil.js +15 -0
  33. package/clojure/Math/floor.js +14 -0
  34. package/clojure/Math/index.js +3 -0
  35. package/elixir/Float/ceil.js +16 -0
  36. package/elixir/Float/floor.js +14 -0
  37. package/elixir/Float/index.js +2 -0
  38. package/elixir/Kernel/abs.js +13 -0
  39. package/elixir/Kernel/index.js +1 -0
  40. package/golang/index.js +1 -4
  41. package/golang/strconv/Atoi.js +26 -0
  42. package/golang/strconv/FormatBool.js +12 -0
  43. package/golang/strconv/FormatInt.js +21 -0
  44. package/golang/strconv/Itoa.js +14 -0
  45. package/golang/strconv/ParseBool.js +35 -0
  46. package/golang/strconv/ParseInt.js +27 -0
  47. package/golang/strconv/index.js +6 -0
  48. package/golang/strings/Compare.js +19 -0
  49. package/golang/strings/Contains.js +7 -9
  50. package/golang/strings/ContainsAny.js +18 -0
  51. package/golang/strings/Count.js +20 -22
  52. package/golang/strings/EqualFold.js +13 -0
  53. package/golang/strings/Fields.js +12 -0
  54. package/golang/strings/HasPrefix.js +15 -0
  55. package/golang/strings/HasSuffix.js +20 -0
  56. package/golang/strings/Index.js +11 -0
  57. package/golang/strings/Index2.js +9 -11
  58. package/golang/strings/IndexAny.js +18 -0
  59. package/golang/strings/Join.js +16 -0
  60. package/golang/strings/LastIndex.js +10 -12
  61. package/golang/strings/LastIndexAny.js +18 -0
  62. package/golang/strings/Repeat.js +19 -0
  63. package/golang/strings/Replace.js +44 -0
  64. package/golang/strings/Split.js +24 -0
  65. package/golang/strings/ToLower.js +9 -0
  66. package/golang/strings/ToUpper.js +9 -0
  67. package/golang/strings/Trim.js +19 -0
  68. package/golang/strings/TrimLeft.js +15 -0
  69. package/golang/strings/TrimPrefix.js +14 -0
  70. package/golang/strings/TrimRight.js +15 -0
  71. package/golang/strings/TrimSpace.js +10 -0
  72. package/golang/strings/TrimSuffix.js +14 -0
  73. package/golang/strings/index.js +25 -7
  74. package/index.js +5 -8
  75. package/julia/Base/abs.js +13 -0
  76. package/julia/Base/ceil.js +16 -0
  77. package/julia/Base/floor.js +14 -0
  78. package/julia/Base/index.js +3 -0
  79. package/lua/math/abs.js +13 -0
  80. package/lua/math/ceil.js +16 -0
  81. package/lua/math/floor.js +14 -0
  82. package/lua/math/index.js +3 -0
  83. package/package.json +37 -51
  84. package/perl/POSIX/ceil.js +16 -0
  85. package/perl/POSIX/floor.js +14 -0
  86. package/perl/POSIX/index.js +2 -0
  87. package/perl/core/index.js +1 -0
  88. package/perl/core/length.js +16 -0
  89. package/php/_helpers/_bc.js +524 -515
  90. package/php/_helpers/_phpCastString.js +20 -25
  91. package/php/_helpers/_php_cast_float.js +5 -10
  92. package/php/_helpers/_php_cast_int.js +6 -11
  93. package/php/_helpers/index.js +4 -7
  94. package/php/array/array_change_key_case.js +11 -16
  95. package/php/array/array_chunk.js +20 -23
  96. package/php/array/array_column.js +22 -72
  97. package/php/array/array_combine.js +13 -18
  98. package/php/array/array_count_values.js +35 -39
  99. package/php/array/array_diff.js +11 -14
  100. package/php/array/array_diff_assoc.js +11 -14
  101. package/php/array/array_diff_key.js +11 -14
  102. package/php/array/array_diff_uassoc.js +15 -19
  103. package/php/array/array_diff_ukey.js +14 -17
  104. package/php/array/array_fill.js +11 -13
  105. package/php/array/array_fill_keys.js +5 -8
  106. package/php/array/array_filter.js +12 -13
  107. package/php/array/array_flip.js +13 -15
  108. package/php/array/array_intersect.js +13 -16
  109. package/php/array/array_intersect_assoc.js +13 -16
  110. package/php/array/array_intersect_key.js +15 -18
  111. package/php/array/array_intersect_uassoc.js +17 -20
  112. package/php/array/array_intersect_ukey.js +17 -20
  113. package/php/array/array_key_exists.js +4 -7
  114. package/php/array/array_keys.js +22 -24
  115. package/php/array/array_map.js +24 -29
  116. package/php/array/array_merge.js +22 -25
  117. package/php/array/array_merge_recursive.js +51 -27
  118. package/php/array/array_multisort.js +138 -130
  119. package/php/array/array_pad.js +24 -26
  120. package/php/array/array_pop.js +10 -13
  121. package/php/array/array_product.js +15 -17
  122. package/php/array/array_push.js +16 -19
  123. package/php/array/array_rand.js +11 -14
  124. package/php/array/array_reduce.js +11 -14
  125. package/php/array/array_replace.js +9 -12
  126. package/php/array/array_replace_recursive.js +20 -24
  127. package/php/array/array_reverse.js +12 -15
  128. package/php/array/array_search.js +27 -29
  129. package/php/array/array_shift.js +3 -6
  130. package/php/array/array_slice.js +37 -39
  131. package/php/array/array_splice.js +64 -69
  132. package/php/array/array_sum.js +7 -12
  133. package/php/array/array_udiff.js +14 -17
  134. package/php/array/array_udiff_assoc.js +14 -17
  135. package/php/array/array_udiff_uassoc.js +17 -20
  136. package/php/array/array_uintersect.js +16 -19
  137. package/php/array/array_uintersect_uassoc.js +18 -21
  138. package/php/array/array_unique.js +12 -15
  139. package/php/array/array_unshift.js +4 -7
  140. package/php/array/array_values.js +11 -13
  141. package/php/array/array_walk.js +10 -15
  142. package/php/array/array_walk_recursive.js +15 -20
  143. package/php/array/arsort.js +50 -52
  144. package/php/array/asort.js +50 -51
  145. package/php/array/count.js +15 -14
  146. package/php/array/current.js +30 -32
  147. package/php/array/each.js +32 -35
  148. package/php/array/end.js +27 -30
  149. package/php/array/in_array.js +7 -10
  150. package/php/array/index.js +73 -76
  151. package/php/array/key.js +32 -34
  152. package/php/array/krsort.js +50 -51
  153. package/php/array/ksort.js +50 -51
  154. package/php/array/natcasesort.js +37 -38
  155. package/php/array/natsort.js +35 -36
  156. package/php/array/next.js +34 -36
  157. package/php/array/pos.js +10 -12
  158. package/php/array/prev.js +32 -34
  159. package/php/array/range.js +30 -33
  160. package/php/array/reset.js +24 -27
  161. package/php/array/rsort.js +47 -49
  162. package/php/array/shuffle.js +16 -18
  163. package/php/array/sizeof.js +3 -6
  164. package/php/array/sort.js +43 -45
  165. package/php/array/uasort.js +19 -21
  166. package/php/array/uksort.js +22 -24
  167. package/php/array/usort.js +20 -22
  168. package/php/bc/bcadd.js +16 -19
  169. package/php/bc/bccomp.js +12 -15
  170. package/php/bc/bcdiv.js +17 -20
  171. package/php/bc/bcmul.js +16 -19
  172. package/php/bc/bcround.js +21 -24
  173. package/php/bc/bcscale.js +8 -11
  174. package/php/bc/bcsub.js +16 -19
  175. package/php/bc/index.js +7 -10
  176. package/php/ctype/ctype_alnum.js +14 -16
  177. package/php/ctype/ctype_alpha.js +14 -16
  178. package/php/ctype/ctype_cntrl.js +9 -12
  179. package/php/ctype/ctype_digit.js +14 -16
  180. package/php/ctype/ctype_graph.js +14 -16
  181. package/php/ctype/ctype_lower.js +14 -16
  182. package/php/ctype/ctype_print.js +14 -16
  183. package/php/ctype/ctype_punct.js +14 -16
  184. package/php/ctype/ctype_space.js +9 -12
  185. package/php/ctype/ctype_upper.js +14 -16
  186. package/php/ctype/ctype_xdigit.js +14 -16
  187. package/php/ctype/index.js +11 -14
  188. package/php/datetime/checkdate.js +15 -17
  189. package/php/datetime/date.js +142 -123
  190. package/php/datetime/date_parse.js +18 -21
  191. package/php/datetime/getdate.js +38 -24
  192. package/php/datetime/gettimeofday.js +7 -10
  193. package/php/datetime/gmdate.js +17 -16
  194. package/php/datetime/gmmktime.js +23 -25
  195. package/php/datetime/gmstrftime.js +17 -14
  196. package/php/datetime/idate.js +44 -38
  197. package/php/datetime/index.js +15 -18
  198. package/php/datetime/microtime.js +11 -14
  199. package/php/datetime/mktime.js +14 -17
  200. package/php/datetime/strftime.js +122 -113
  201. package/php/datetime/strptime.js +210 -191
  202. package/php/datetime/strtotime.js +615 -496
  203. package/php/datetime/time.js +11 -13
  204. package/php/exec/escapeshellarg.js +16 -18
  205. package/php/exec/index.js +1 -4
  206. package/php/filesystem/basename.js +22 -24
  207. package/php/filesystem/dirname.js +12 -14
  208. package/php/filesystem/file_exists.js +12 -0
  209. package/php/filesystem/file_get_contents.js +3 -6
  210. package/php/filesystem/index.js +6 -8
  211. package/php/filesystem/pathinfo.js +47 -46
  212. package/php/filesystem/realpath.js +16 -19
  213. package/php/funchand/call_user_func.js +4 -7
  214. package/php/funchand/call_user_func_array.js +19 -22
  215. package/php/funchand/create_function.js +4 -7
  216. package/php/funchand/function_exists.js +4 -8
  217. package/php/funchand/get_defined_functions.js +25 -32
  218. package/php/funchand/index.js +5 -8
  219. package/php/i18n/i18n_loc_get_default.js +7 -10
  220. package/php/i18n/i18n_loc_set_default.js +12 -15
  221. package/php/i18n/index.js +2 -5
  222. package/php/index.js +20 -23
  223. package/php/info/assert_options.js +25 -27
  224. package/php/info/getenv.js +8 -10
  225. package/php/info/index.js +6 -9
  226. package/php/info/ini_get.js +9 -12
  227. package/php/info/ini_set.js +32 -34
  228. package/php/info/set_time_limit.js +8 -11
  229. package/php/info/version_compare.js +43 -44
  230. package/php/json/index.js +3 -6
  231. package/php/json/json_decode.js +42 -28
  232. package/php/json/json_encode.js +89 -66
  233. package/php/json/json_last_error.js +11 -13
  234. package/php/math/abs.js +2 -5
  235. package/php/math/acos.js +2 -5
  236. package/php/math/acosh.js +7 -9
  237. package/php/math/asin.js +2 -5
  238. package/php/math/asinh.js +7 -9
  239. package/php/math/atan.js +7 -9
  240. package/php/math/atan2.js +7 -9
  241. package/php/math/atanh.js +2 -5
  242. package/php/math/base_convert.js +8 -10
  243. package/php/math/bindec.js +12 -14
  244. package/php/math/ceil.js +7 -9
  245. package/php/math/cos.js +7 -9
  246. package/php/math/cosh.js +7 -9
  247. package/php/math/decbin.js +16 -18
  248. package/php/math/dechex.js +3 -6
  249. package/php/math/decoct.js +13 -15
  250. package/php/math/deg2rad.js +8 -10
  251. package/php/math/exp.js +7 -9
  252. package/php/math/expm1.js +9 -11
  253. package/php/math/floor.js +7 -9
  254. package/php/math/fmod.js +27 -29
  255. package/php/math/getrandmax.js +7 -9
  256. package/php/math/hexdec.js +10 -12
  257. package/php/math/hypot.js +8 -11
  258. package/php/math/index.js +46 -49
  259. package/php/math/is_finite.js +9 -14
  260. package/php/math/is_infinite.js +9 -14
  261. package/php/math/is_nan.js +8 -13
  262. package/php/math/lcg_value.js +8 -10
  263. package/php/math/log.js +8 -10
  264. package/php/math/log10.js +12 -14
  265. package/php/math/log1p.js +15 -17
  266. package/php/math/max.js +54 -59
  267. package/php/math/min.js +54 -59
  268. package/php/math/mt_getrandmax.js +7 -9
  269. package/php/math/mt_rand.js +15 -17
  270. package/php/math/octdec.js +8 -10
  271. package/php/math/pi.js +2 -5
  272. package/php/math/pow.js +2 -5
  273. package/php/math/rad2deg.js +8 -10
  274. package/php/math/rand.js +15 -17
  275. package/php/math/round.js +48 -49
  276. package/php/math/sin.js +7 -9
  277. package/php/math/sinh.js +7 -9
  278. package/php/math/sqrt.js +7 -9
  279. package/php/math/tan.js +7 -9
  280. package/php/math/tanh.js +8 -10
  281. package/php/misc/index.js +2 -5
  282. package/php/misc/pack.js +173 -165
  283. package/php/misc/uniqid.js +20 -23
  284. package/php/net-gopher/gopher_parsedir.js +27 -29
  285. package/php/net-gopher/index.js +1 -4
  286. package/php/network/index.js +6 -9
  287. package/php/network/inet_ntop.js +15 -15
  288. package/php/network/inet_pton.js +30 -34
  289. package/php/network/ip2long.js +25 -15
  290. package/php/network/long2ip.js +8 -10
  291. package/php/network/setcookie.js +11 -13
  292. package/php/network/setrawcookie.js +16 -19
  293. package/php/pcre/index.js +4 -7
  294. package/php/pcre/preg_match.js +3 -6
  295. package/php/pcre/preg_quote.js +2 -5
  296. package/php/pcre/preg_replace.js +8 -11
  297. package/php/pcre/sql_regcase.js +17 -20
  298. package/php/strings/addcslashes.js +86 -88
  299. package/php/strings/addslashes.js +15 -16
  300. package/php/strings/bin2hex.js +19 -43
  301. package/php/strings/chop.js +8 -10
  302. package/php/strings/chr.js +12 -14
  303. package/php/strings/chunk_split.js +15 -17
  304. package/php/strings/convert_cyr_string.js +137 -50
  305. package/php/strings/convert_uuencode.js +35 -38
  306. package/php/strings/count_chars.js +29 -27
  307. package/php/strings/crc32.js +276 -21
  308. package/php/strings/echo.js +28 -30
  309. package/php/strings/explode.js +31 -26
  310. package/php/strings/get_html_translation_table.js +123 -122
  311. package/php/strings/hex2bin.js +21 -21
  312. package/php/strings/html_entity_decode.js +31 -33
  313. package/php/strings/htmlentities.js +38 -34
  314. package/php/strings/htmlspecialchars.js +20 -23
  315. package/php/strings/htmlspecialchars_decode.js +19 -21
  316. package/php/strings/implode.js +23 -27
  317. package/php/strings/index.js +91 -94
  318. package/php/strings/join.js +8 -10
  319. package/php/strings/lcfirst.js +9 -11
  320. package/php/strings/levenshtein.js +37 -39
  321. package/php/strings/localeconv.js +12 -15
  322. package/php/strings/ltrim.js +12 -14
  323. package/php/strings/md5.js +216 -223
  324. package/php/strings/md5_file.js +17 -19
  325. package/php/strings/metaphone.js +112 -117
  326. package/php/strings/money_format.js +139 -126
  327. package/php/strings/nl2br.js +24 -26
  328. package/php/strings/nl_langinfo.js +32 -35
  329. package/php/strings/number_format.js +19 -22
  330. package/php/strings/ord.js +19 -21
  331. package/php/strings/parse_str.js +53 -56
  332. package/php/strings/printf.js +6 -9
  333. package/php/strings/quoted_printable_decode.js +7 -10
  334. package/php/strings/quoted_printable_encode.js +19 -20
  335. package/php/strings/quotemeta.js +7 -9
  336. package/php/strings/rtrim.js +14 -16
  337. package/php/strings/setlocale.js +148 -104
  338. package/php/strings/sha1.js +108 -106
  339. package/php/strings/sha1_file.js +15 -17
  340. package/php/strings/similar_text.js +34 -33
  341. package/php/strings/soundex.js +34 -36
  342. package/php/strings/split.js +8 -10
  343. package/php/strings/sprintf.js +112 -114
  344. package/php/strings/sscanf.js +99 -96
  345. package/php/strings/str_getcsv.js +37 -32
  346. package/php/strings/str_ireplace.js +50 -55
  347. package/php/strings/str_pad.js +18 -21
  348. package/php/strings/str_repeat.js +14 -16
  349. package/php/strings/str_replace.js +32 -37
  350. package/php/strings/str_rot13.js +15 -17
  351. package/php/strings/str_shuffle.js +12 -15
  352. package/php/strings/str_split.js +19 -21
  353. package/php/strings/str_word_count.js +51 -50
  354. package/php/strings/strcasecmp.js +12 -14
  355. package/php/strings/strchr.js +10 -12
  356. package/php/strings/strcmp.js +12 -14
  357. package/php/strings/strcoll.js +9 -12
  358. package/php/strings/strcspn.js +30 -25
  359. package/php/strings/strip_tags.js +50 -52
  360. package/php/strings/stripos.js +12 -14
  361. package/php/strings/stripslashes.js +8 -10
  362. package/php/strings/stristr.js +15 -17
  363. package/php/strings/strlen.js +23 -26
  364. package/php/strings/strnatcasecmp.js +6 -8
  365. package/php/strings/strnatcmp.js +47 -46
  366. package/php/strings/strncasecmp.js +30 -32
  367. package/php/strings/strncmp.js +5 -7
  368. package/php/strings/strpbrk.js +12 -14
  369. package/php/strings/strpos.js +11 -13
  370. package/php/strings/strrchr.js +7 -10
  371. package/php/strings/strrev.js +188 -10
  372. package/php/strings/strripos.js +16 -18
  373. package/php/strings/strrpos.js +20 -22
  374. package/php/strings/strspn.js +24 -26
  375. package/php/strings/strstr.js +20 -22
  376. package/php/strings/strtok.js +14 -16
  377. package/php/strings/strtolower.js +8 -10
  378. package/php/strings/strtoupper.js +8 -10
  379. package/php/strings/strtr.js +38 -43
  380. package/php/strings/substr.js +14 -18
  381. package/php/strings/substr_compare.js +18 -20
  382. package/php/strings/substr_count.js +11 -14
  383. package/php/strings/substr_replace.js +5 -8
  384. package/php/strings/trim.js +53 -32
  385. package/php/strings/ucfirst.js +11 -13
  386. package/php/strings/ucwords.js +3 -6
  387. package/php/strings/vprintf.js +6 -9
  388. package/php/strings/vsprintf.js +8 -10
  389. package/php/strings/wordwrap.js +32 -35
  390. package/php/url/base64_decode.js +42 -40
  391. package/php/url/base64_encode.js +51 -53
  392. package/php/url/http_build_query.js +27 -32
  393. package/php/url/index.js +8 -11
  394. package/php/url/parse_url.js +61 -25
  395. package/php/url/rawurldecode.js +8 -8
  396. package/php/url/rawurlencode.js +9 -6
  397. package/php/url/urldecode.js +9 -8
  398. package/php/url/urlencode.js +11 -6
  399. package/php/var/boolval.js +31 -33
  400. package/php/var/doubleval.js +10 -12
  401. package/php/var/empty.js +11 -16
  402. package/php/var/floatval.js +13 -15
  403. package/php/var/gettype.js +22 -23
  404. package/php/var/index.js +30 -33
  405. package/php/var/intval.js +35 -39
  406. package/php/var/is_array.js +27 -31
  407. package/php/var/is_binary.js +2 -5
  408. package/php/var/is_bool.js +10 -12
  409. package/php/var/is_buffer.js +2 -5
  410. package/php/var/is_callable.js +34 -35
  411. package/php/var/is_double.js +10 -12
  412. package/php/var/is_float.js +12 -14
  413. package/php/var/is_int.js +20 -22
  414. package/php/var/is_integer.js +12 -14
  415. package/php/var/is_long.js +3 -6
  416. package/php/var/is_null.js +9 -11
  417. package/php/var/is_numeric.js +30 -6
  418. package/php/var/is_object.js +4 -9
  419. package/php/var/is_real.js +3 -6
  420. package/php/var/is_scalar.js +2 -8
  421. package/php/var/is_string.js +9 -11
  422. package/php/var/is_unicode.js +12 -15
  423. package/php/var/isset.js +9 -12
  424. package/php/var/print_r.js +49 -53
  425. package/php/var/serialize.js +47 -52
  426. package/php/var/serialize.vitest.ts +10 -0
  427. package/php/var/strval.js +10 -13
  428. package/php/var/unserialize.js +168 -202
  429. package/php/var/var_dump.js +105 -104
  430. package/php/var/var_export.js +64 -66
  431. package/php/xdiff/index.js +2 -5
  432. package/php/xdiff/xdiff_string_diff.js +240 -226
  433. package/php/xdiff/xdiff_string_patch.js +98 -93
  434. package/php/xml/index.js +2 -5
  435. package/php/xml/utf8_decode.js +40 -42
  436. package/php/xml/utf8_encode.js +40 -42
  437. package/python/index.js +1 -4
  438. package/python/math/ceil.js +17 -0
  439. package/python/math/exp.js +12 -0
  440. package/python/math/fabs.js +14 -0
  441. package/python/math/factorial.js +29 -0
  442. package/python/math/floor.js +14 -0
  443. package/python/math/gcd.js +23 -0
  444. package/python/math/index.js +15 -0
  445. package/python/math/isfinite.js +14 -0
  446. package/python/math/isinf.js +14 -0
  447. package/python/math/isnan.js +14 -0
  448. package/python/math/log.js +16 -0
  449. package/python/math/log10.js +14 -0
  450. package/python/math/log2.js +14 -0
  451. package/python/math/pow.js +14 -0
  452. package/python/math/sqrt.js +14 -0
  453. package/python/math/trunc.js +14 -0
  454. package/python/string/ascii_letters.js +14 -14
  455. package/python/string/ascii_lowercase.js +12 -16
  456. package/python/string/ascii_uppercase.js +12 -16
  457. package/python/string/capwords.js +4 -7
  458. package/python/string/digits.js +10 -0
  459. package/python/string/hexdigits.js +10 -0
  460. package/python/string/index.js +10 -8
  461. package/python/string/octdigits.js +10 -0
  462. package/python/string/printable.js +15 -0
  463. package/python/string/punctuation.js +5 -7
  464. package/python/string/whitespace.js +10 -0
  465. package/r/base/abs.js +13 -0
  466. package/r/base/ceiling.js +16 -0
  467. package/r/base/floor.js +14 -0
  468. package/r/base/index.js +3 -0
  469. package/ruby/Array/compact.js +18 -0
  470. package/ruby/Array/first.js +22 -0
  471. package/ruby/Array/flatten.js +22 -0
  472. package/ruby/Array/index.js +6 -0
  473. package/ruby/Array/last.js +22 -0
  474. package/ruby/Array/sample.js +31 -0
  475. package/ruby/Array/uniq.js +16 -0
  476. package/ruby/Math/acos.js +2 -5
  477. package/ruby/Math/asin.js +11 -0
  478. package/ruby/Math/atan.js +11 -0
  479. package/ruby/Math/cbrt.js +13 -0
  480. package/ruby/Math/cos.js +12 -0
  481. package/ruby/Math/cosh.js +11 -0
  482. package/ruby/Math/exp.js +11 -0
  483. package/ruby/Math/index.js +15 -4
  484. package/ruby/Math/log.js +11 -0
  485. package/ruby/Math/log10.js +13 -0
  486. package/ruby/Math/log2.js +13 -0
  487. package/ruby/Math/sin.js +12 -0
  488. package/ruby/Math/sinh.js +11 -0
  489. package/ruby/Math/sqrt.js +13 -0
  490. package/ruby/Math/tan.js +11 -0
  491. package/ruby/Math/tanh.js +11 -0
  492. package/ruby/String/capitalize.js +19 -0
  493. package/ruby/String/chomp.js +27 -0
  494. package/ruby/String/chop.js +25 -0
  495. package/ruby/String/downcase.js +10 -0
  496. package/ruby/String/end_with.js +17 -0
  497. package/ruby/String/include.js +12 -0
  498. package/ruby/String/index.js +11 -0
  499. package/ruby/String/length.js +12 -0
  500. package/ruby/String/reverse.js +12 -0
  501. package/ruby/String/start_with.js +14 -0
  502. package/ruby/String/strip.js +12 -0
  503. package/ruby/String/upcase.js +10 -0
  504. package/ruby/index.js +1 -4
  505. package/_util/cli.js +0 -14
  506. package/_util/cli.js.map +0 -1
  507. package/_util/util.js +0 -620
  508. package/_util/util.js.map +0 -1
  509. package/c/index.js.map +0 -1
  510. package/c/math/abs.js.map +0 -1
  511. package/c/math/frexp.js.map +0 -1
  512. package/c/math/index.js.map +0 -1
  513. package/c/stdio/index.js.map +0 -1
  514. package/c/stdio/sprintf.js.map +0 -1
  515. package/golang/index.js.map +0 -1
  516. package/golang/strings/Contains.js.map +0 -1
  517. package/golang/strings/Count.js.map +0 -1
  518. package/golang/strings/Index2.js.map +0 -1
  519. package/golang/strings/LastIndex.js.map +0 -1
  520. package/golang/strings/index.js.map +0 -1
  521. package/index.js.map +0 -1
  522. package/php/_helpers/_bc.js.map +0 -1
  523. package/php/_helpers/_phpCastString.js.map +0 -1
  524. package/php/_helpers/_php_cast_float.js.map +0 -1
  525. package/php/_helpers/_php_cast_int.js.map +0 -1
  526. package/php/_helpers/index.js.map +0 -1
  527. package/php/array/array_change_key_case.js.map +0 -1
  528. package/php/array/array_chunk.js.map +0 -1
  529. package/php/array/array_column.js.map +0 -1
  530. package/php/array/array_combine.js.map +0 -1
  531. package/php/array/array_count_values.js.map +0 -1
  532. package/php/array/array_diff.js.map +0 -1
  533. package/php/array/array_diff_assoc.js.map +0 -1
  534. package/php/array/array_diff_key.js.map +0 -1
  535. package/php/array/array_diff_uassoc.js.map +0 -1
  536. package/php/array/array_diff_ukey.js.map +0 -1
  537. package/php/array/array_fill.js.map +0 -1
  538. package/php/array/array_fill_keys.js.map +0 -1
  539. package/php/array/array_filter.js.map +0 -1
  540. package/php/array/array_flip.js.map +0 -1
  541. package/php/array/array_intersect.js.map +0 -1
  542. package/php/array/array_intersect_assoc.js.map +0 -1
  543. package/php/array/array_intersect_key.js.map +0 -1
  544. package/php/array/array_intersect_uassoc.js.map +0 -1
  545. package/php/array/array_intersect_ukey.js.map +0 -1
  546. package/php/array/array_key_exists.js.map +0 -1
  547. package/php/array/array_keys.js.map +0 -1
  548. package/php/array/array_map.js.map +0 -1
  549. package/php/array/array_merge.js.map +0 -1
  550. package/php/array/array_merge_recursive.js.map +0 -1
  551. package/php/array/array_multisort.js.map +0 -1
  552. package/php/array/array_pad.js.map +0 -1
  553. package/php/array/array_pop.js.map +0 -1
  554. package/php/array/array_product.js.map +0 -1
  555. package/php/array/array_push.js.map +0 -1
  556. package/php/array/array_rand.js.map +0 -1
  557. package/php/array/array_reduce.js.map +0 -1
  558. package/php/array/array_replace.js.map +0 -1
  559. package/php/array/array_replace_recursive.js.map +0 -1
  560. package/php/array/array_reverse.js.map +0 -1
  561. package/php/array/array_search.js.map +0 -1
  562. package/php/array/array_shift.js.map +0 -1
  563. package/php/array/array_slice.js.map +0 -1
  564. package/php/array/array_splice.js.map +0 -1
  565. package/php/array/array_sum.js.map +0 -1
  566. package/php/array/array_udiff.js.map +0 -1
  567. package/php/array/array_udiff_assoc.js.map +0 -1
  568. package/php/array/array_udiff_uassoc.js.map +0 -1
  569. package/php/array/array_uintersect.js.map +0 -1
  570. package/php/array/array_uintersect_uassoc.js.map +0 -1
  571. package/php/array/array_unique.js.map +0 -1
  572. package/php/array/array_unshift.js.map +0 -1
  573. package/php/array/array_values.js.map +0 -1
  574. package/php/array/array_walk.js.map +0 -1
  575. package/php/array/array_walk_recursive.js.map +0 -1
  576. package/php/array/arsort.js.map +0 -1
  577. package/php/array/asort.js.map +0 -1
  578. package/php/array/count.js.map +0 -1
  579. package/php/array/current.js.map +0 -1
  580. package/php/array/each.js.map +0 -1
  581. package/php/array/end.js.map +0 -1
  582. package/php/array/in_array.js.map +0 -1
  583. package/php/array/index.js.map +0 -1
  584. package/php/array/key.js.map +0 -1
  585. package/php/array/krsort.js.map +0 -1
  586. package/php/array/ksort.js.map +0 -1
  587. package/php/array/natcasesort.js.map +0 -1
  588. package/php/array/natsort.js.map +0 -1
  589. package/php/array/next.js.map +0 -1
  590. package/php/array/pos.js.map +0 -1
  591. package/php/array/prev.js.map +0 -1
  592. package/php/array/range.js.map +0 -1
  593. package/php/array/reset.js.map +0 -1
  594. package/php/array/rsort.js.map +0 -1
  595. package/php/array/shuffle.js.map +0 -1
  596. package/php/array/sizeof.js.map +0 -1
  597. package/php/array/sort.js.map +0 -1
  598. package/php/array/uasort.js.map +0 -1
  599. package/php/array/uksort.js.map +0 -1
  600. package/php/array/usort.js.map +0 -1
  601. package/php/bc/bcadd.js.map +0 -1
  602. package/php/bc/bccomp.js.map +0 -1
  603. package/php/bc/bcdiv.js.map +0 -1
  604. package/php/bc/bcmul.js.map +0 -1
  605. package/php/bc/bcround.js.map +0 -1
  606. package/php/bc/bcscale.js.map +0 -1
  607. package/php/bc/bcsub.js.map +0 -1
  608. package/php/bc/index.js.map +0 -1
  609. package/php/ctype/ctype_alnum.js.map +0 -1
  610. package/php/ctype/ctype_alpha.js.map +0 -1
  611. package/php/ctype/ctype_cntrl.js.map +0 -1
  612. package/php/ctype/ctype_digit.js.map +0 -1
  613. package/php/ctype/ctype_graph.js.map +0 -1
  614. package/php/ctype/ctype_lower.js.map +0 -1
  615. package/php/ctype/ctype_print.js.map +0 -1
  616. package/php/ctype/ctype_punct.js.map +0 -1
  617. package/php/ctype/ctype_space.js.map +0 -1
  618. package/php/ctype/ctype_upper.js.map +0 -1
  619. package/php/ctype/ctype_xdigit.js.map +0 -1
  620. package/php/ctype/index.js.map +0 -1
  621. package/php/datetime/checkdate.js.map +0 -1
  622. package/php/datetime/date.js.map +0 -1
  623. package/php/datetime/date_parse.js.map +0 -1
  624. package/php/datetime/getdate.js.map +0 -1
  625. package/php/datetime/gettimeofday.js.map +0 -1
  626. package/php/datetime/gmdate.js.map +0 -1
  627. package/php/datetime/gmmktime.js.map +0 -1
  628. package/php/datetime/gmstrftime.js.map +0 -1
  629. package/php/datetime/idate.js.map +0 -1
  630. package/php/datetime/index.js.map +0 -1
  631. package/php/datetime/microtime.js.map +0 -1
  632. package/php/datetime/mktime.js.map +0 -1
  633. package/php/datetime/strftime.js.map +0 -1
  634. package/php/datetime/strptime.js.map +0 -1
  635. package/php/datetime/strtotime.js.map +0 -1
  636. package/php/datetime/time.js.map +0 -1
  637. package/php/exec/escapeshellarg.js.map +0 -1
  638. package/php/exec/index.js.map +0 -1
  639. package/php/filesystem/basename.js.map +0 -1
  640. package/php/filesystem/dirname.js.map +0 -1
  641. package/php/filesystem/file_get_contents.js.map +0 -1
  642. package/php/filesystem/index.js.map +0 -1
  643. package/php/filesystem/pathinfo.js.map +0 -1
  644. package/php/filesystem/realpath.js.map +0 -1
  645. package/php/funchand/call_user_func.js.map +0 -1
  646. package/php/funchand/call_user_func_array.js.map +0 -1
  647. package/php/funchand/create_function.js.map +0 -1
  648. package/php/funchand/function_exists.js.map +0 -1
  649. package/php/funchand/get_defined_functions.js.map +0 -1
  650. package/php/funchand/index.js.map +0 -1
  651. package/php/i18n/i18n_loc_get_default.js.map +0 -1
  652. package/php/i18n/i18n_loc_set_default.js.map +0 -1
  653. package/php/i18n/index.js.map +0 -1
  654. package/php/index.js.map +0 -1
  655. package/php/info/assert_options.js.map +0 -1
  656. package/php/info/getenv.js.map +0 -1
  657. package/php/info/index.js.map +0 -1
  658. package/php/info/ini_get.js.map +0 -1
  659. package/php/info/ini_set.js.map +0 -1
  660. package/php/info/set_time_limit.js.map +0 -1
  661. package/php/info/version_compare.js.map +0 -1
  662. package/php/json/index.js.map +0 -1
  663. package/php/json/json_decode.js.map +0 -1
  664. package/php/json/json_encode.js.map +0 -1
  665. package/php/json/json_last_error.js.map +0 -1
  666. package/php/math/abs.js.map +0 -1
  667. package/php/math/acos.js.map +0 -1
  668. package/php/math/acosh.js.map +0 -1
  669. package/php/math/asin.js.map +0 -1
  670. package/php/math/asinh.js.map +0 -1
  671. package/php/math/atan.js.map +0 -1
  672. package/php/math/atan2.js.map +0 -1
  673. package/php/math/atanh.js.map +0 -1
  674. package/php/math/base_convert.js.map +0 -1
  675. package/php/math/bindec.js.map +0 -1
  676. package/php/math/ceil.js.map +0 -1
  677. package/php/math/cos.js.map +0 -1
  678. package/php/math/cosh.js.map +0 -1
  679. package/php/math/decbin.js.map +0 -1
  680. package/php/math/dechex.js.map +0 -1
  681. package/php/math/decoct.js.map +0 -1
  682. package/php/math/deg2rad.js.map +0 -1
  683. package/php/math/exp.js.map +0 -1
  684. package/php/math/expm1.js.map +0 -1
  685. package/php/math/floor.js.map +0 -1
  686. package/php/math/fmod.js.map +0 -1
  687. package/php/math/getrandmax.js.map +0 -1
  688. package/php/math/hexdec.js.map +0 -1
  689. package/php/math/hypot.js.map +0 -1
  690. package/php/math/index.js.map +0 -1
  691. package/php/math/is_finite.js.map +0 -1
  692. package/php/math/is_infinite.js.map +0 -1
  693. package/php/math/is_nan.js.map +0 -1
  694. package/php/math/lcg_value.js.map +0 -1
  695. package/php/math/log.js.map +0 -1
  696. package/php/math/log10.js.map +0 -1
  697. package/php/math/log1p.js.map +0 -1
  698. package/php/math/max.js.map +0 -1
  699. package/php/math/min.js.map +0 -1
  700. package/php/math/mt_getrandmax.js.map +0 -1
  701. package/php/math/mt_rand.js.map +0 -1
  702. package/php/math/octdec.js.map +0 -1
  703. package/php/math/pi.js.map +0 -1
  704. package/php/math/pow.js.map +0 -1
  705. package/php/math/rad2deg.js.map +0 -1
  706. package/php/math/rand.js.map +0 -1
  707. package/php/math/round.js.map +0 -1
  708. package/php/math/sin.js.map +0 -1
  709. package/php/math/sinh.js.map +0 -1
  710. package/php/math/sqrt.js.map +0 -1
  711. package/php/math/tan.js.map +0 -1
  712. package/php/math/tanh.js.map +0 -1
  713. package/php/misc/index.js.map +0 -1
  714. package/php/misc/pack.js.map +0 -1
  715. package/php/misc/uniqid.js.map +0 -1
  716. package/php/net-gopher/gopher_parsedir.js.map +0 -1
  717. package/php/net-gopher/index.js.map +0 -1
  718. package/php/network/index.js.map +0 -1
  719. package/php/network/inet_ntop.js.map +0 -1
  720. package/php/network/inet_pton.js.map +0 -1
  721. package/php/network/ip2long.js.map +0 -1
  722. package/php/network/long2ip.js.map +0 -1
  723. package/php/network/setcookie.js.map +0 -1
  724. package/php/network/setrawcookie.js.map +0 -1
  725. package/php/pcre/index.js.map +0 -1
  726. package/php/pcre/preg_match.js.map +0 -1
  727. package/php/pcre/preg_quote.js.map +0 -1
  728. package/php/pcre/preg_replace.js.map +0 -1
  729. package/php/pcre/sql_regcase.js.map +0 -1
  730. package/php/strings/addcslashes.js.map +0 -1
  731. package/php/strings/addslashes.js.map +0 -1
  732. package/php/strings/bin2hex.js.map +0 -1
  733. package/php/strings/chop.js.map +0 -1
  734. package/php/strings/chr.js.map +0 -1
  735. package/php/strings/chunk_split.js.map +0 -1
  736. package/php/strings/convert_cyr_string.js.map +0 -1
  737. package/php/strings/convert_uuencode.js.map +0 -1
  738. package/php/strings/count_chars.js.map +0 -1
  739. package/php/strings/crc32.js.map +0 -1
  740. package/php/strings/echo.js.map +0 -1
  741. package/php/strings/explode.js.map +0 -1
  742. package/php/strings/get_html_translation_table.js.map +0 -1
  743. package/php/strings/hex2bin.js.map +0 -1
  744. package/php/strings/html_entity_decode.js.map +0 -1
  745. package/php/strings/htmlentities.js.map +0 -1
  746. package/php/strings/htmlspecialchars.js.map +0 -1
  747. package/php/strings/htmlspecialchars_decode.js.map +0 -1
  748. package/php/strings/implode.js.map +0 -1
  749. package/php/strings/index.js.map +0 -1
  750. package/php/strings/join.js.map +0 -1
  751. package/php/strings/lcfirst.js.map +0 -1
  752. package/php/strings/levenshtein.js.map +0 -1
  753. package/php/strings/localeconv.js.map +0 -1
  754. package/php/strings/ltrim.js.map +0 -1
  755. package/php/strings/md5.js.map +0 -1
  756. package/php/strings/md5_file.js.map +0 -1
  757. package/php/strings/metaphone.js.map +0 -1
  758. package/php/strings/money_format.js.map +0 -1
  759. package/php/strings/nl2br.js.map +0 -1
  760. package/php/strings/nl_langinfo.js.map +0 -1
  761. package/php/strings/number_format.js.map +0 -1
  762. package/php/strings/ord.js.map +0 -1
  763. package/php/strings/parse_str.js.map +0 -1
  764. package/php/strings/printf.js.map +0 -1
  765. package/php/strings/quoted_printable_decode.js.map +0 -1
  766. package/php/strings/quoted_printable_encode.js.map +0 -1
  767. package/php/strings/quotemeta.js.map +0 -1
  768. package/php/strings/rtrim.js.map +0 -1
  769. package/php/strings/setlocale.js.map +0 -1
  770. package/php/strings/sha1.js.map +0 -1
  771. package/php/strings/sha1_file.js.map +0 -1
  772. package/php/strings/similar_text.js.map +0 -1
  773. package/php/strings/soundex.js.map +0 -1
  774. package/php/strings/split.js.map +0 -1
  775. package/php/strings/sprintf.js.map +0 -1
  776. package/php/strings/sscanf.js.map +0 -1
  777. package/php/strings/str_getcsv.js.map +0 -1
  778. package/php/strings/str_ireplace.js.map +0 -1
  779. package/php/strings/str_pad.js.map +0 -1
  780. package/php/strings/str_repeat.js.map +0 -1
  781. package/php/strings/str_replace.js.map +0 -1
  782. package/php/strings/str_rot13.js.map +0 -1
  783. package/php/strings/str_shuffle.js.map +0 -1
  784. package/php/strings/str_split.js.map +0 -1
  785. package/php/strings/str_word_count.js.map +0 -1
  786. package/php/strings/strcasecmp.js.map +0 -1
  787. package/php/strings/strchr.js.map +0 -1
  788. package/php/strings/strcmp.js.map +0 -1
  789. package/php/strings/strcoll.js.map +0 -1
  790. package/php/strings/strcspn.js.map +0 -1
  791. package/php/strings/strip_tags.js.map +0 -1
  792. package/php/strings/stripos.js.map +0 -1
  793. package/php/strings/stripslashes.js.map +0 -1
  794. package/php/strings/stristr.js.map +0 -1
  795. package/php/strings/strlen.js.map +0 -1
  796. package/php/strings/strnatcasecmp.js.map +0 -1
  797. package/php/strings/strnatcmp.js.map +0 -1
  798. package/php/strings/strncasecmp.js.map +0 -1
  799. package/php/strings/strncmp.js.map +0 -1
  800. package/php/strings/strpbrk.js.map +0 -1
  801. package/php/strings/strpos.js.map +0 -1
  802. package/php/strings/strrchr.js.map +0 -1
  803. package/php/strings/strrev.js.map +0 -1
  804. package/php/strings/strripos.js.map +0 -1
  805. package/php/strings/strrpos.js.map +0 -1
  806. package/php/strings/strspn.js.map +0 -1
  807. package/php/strings/strstr.js.map +0 -1
  808. package/php/strings/strtok.js.map +0 -1
  809. package/php/strings/strtolower.js.map +0 -1
  810. package/php/strings/strtoupper.js.map +0 -1
  811. package/php/strings/strtr.js.map +0 -1
  812. package/php/strings/substr.js.map +0 -1
  813. package/php/strings/substr_compare.js.map +0 -1
  814. package/php/strings/substr_count.js.map +0 -1
  815. package/php/strings/substr_replace.js.map +0 -1
  816. package/php/strings/trim.js.map +0 -1
  817. package/php/strings/ucfirst.js.map +0 -1
  818. package/php/strings/ucwords.js.map +0 -1
  819. package/php/strings/vprintf.js.map +0 -1
  820. package/php/strings/vsprintf.js.map +0 -1
  821. package/php/strings/wordwrap.js.map +0 -1
  822. package/php/url/base64_decode.js.map +0 -1
  823. package/php/url/base64_encode.js.map +0 -1
  824. package/php/url/http_build_query.js.map +0 -1
  825. package/php/url/index.js.map +0 -1
  826. package/php/url/parse_url.js.map +0 -1
  827. package/php/url/rawurldecode.js.map +0 -1
  828. package/php/url/rawurlencode.js.map +0 -1
  829. package/php/url/urldecode.js.map +0 -1
  830. package/php/url/urlencode.js.map +0 -1
  831. package/php/var/boolval.js.map +0 -1
  832. package/php/var/doubleval.js.map +0 -1
  833. package/php/var/empty.js.map +0 -1
  834. package/php/var/floatval.js.map +0 -1
  835. package/php/var/gettype.js.map +0 -1
  836. package/php/var/index.js.map +0 -1
  837. package/php/var/intval.js.map +0 -1
  838. package/php/var/is_array.js.map +0 -1
  839. package/php/var/is_binary.js.map +0 -1
  840. package/php/var/is_bool.js.map +0 -1
  841. package/php/var/is_buffer.js.map +0 -1
  842. package/php/var/is_callable.js.map +0 -1
  843. package/php/var/is_double.js.map +0 -1
  844. package/php/var/is_float.js.map +0 -1
  845. package/php/var/is_int.js.map +0 -1
  846. package/php/var/is_integer.js.map +0 -1
  847. package/php/var/is_long.js.map +0 -1
  848. package/php/var/is_null.js.map +0 -1
  849. package/php/var/is_numeric.js.map +0 -1
  850. package/php/var/is_object.js.map +0 -1
  851. package/php/var/is_real.js.map +0 -1
  852. package/php/var/is_scalar.js.map +0 -1
  853. package/php/var/is_string.js.map +0 -1
  854. package/php/var/is_unicode.js.map +0 -1
  855. package/php/var/isset.js.map +0 -1
  856. package/php/var/print_r.js.map +0 -1
  857. package/php/var/serialize.js.map +0 -1
  858. package/php/var/serialize.mocha.js +0 -14
  859. package/php/var/serialize.mocha.js.map +0 -1
  860. package/php/var/strval.js.map +0 -1
  861. package/php/var/unserialize.js.map +0 -1
  862. package/php/var/var_dump.js.map +0 -1
  863. package/php/var/var_export.js.map +0 -1
  864. package/php/xdiff/index.js.map +0 -1
  865. package/php/xdiff/xdiff_string_diff.js.map +0 -1
  866. package/php/xdiff/xdiff_string_patch.js.map +0 -1
  867. package/php/xml/index.js.map +0 -1
  868. package/php/xml/utf8_decode.js.map +0 -1
  869. package/php/xml/utf8_encode.js.map +0 -1
  870. package/python/index.js.map +0 -1
  871. package/python/string/ascii_letters.js.map +0 -1
  872. package/python/string/ascii_lowercase.js.map +0 -1
  873. package/python/string/ascii_uppercase.js.map +0 -1
  874. package/python/string/capwords.js.map +0 -1
  875. package/python/string/index.js.map +0 -1
  876. package/python/string/punctuation.js.map +0 -1
  877. package/ruby/Math/acos.js.map +0 -1
  878. package/ruby/Math/index.js.map +0 -1
  879. package/ruby/index.js.map +0 -1
@@ -1,16 +1,15 @@
1
- 'use strict';
2
-
3
1
  module.exports = function xdiff_string_patch(originalStr, patch, flags, errorObj) {
4
- // discuss at: https://locutus.io/php/xdiff_string_patch/
5
- // original by: Brett Zamir (https://brett-zamir.me)
6
- // improved by: Steven Levithan (stevenlevithan.com)
7
- // note 1: The XDIFF_PATCH_IGNORESPACE flag and the error argument are not
8
- // note 1: currently supported.
9
- // note 2: This has not been tested exhaustively yet.
10
- // note 3: The errorObj parameter (optional) if used must be passed in as a
11
- // note 3: object. The errors will then be written by reference into it's `value` property
12
- // example 1: xdiff_string_patch('', '@@ -0,0 +1,1 @@\n+Hello world!')
13
- // returns 1: 'Hello world!'
2
+ // discuss at: https://locutus.io/php/xdiff_string_patch/
3
+ // parity verified: PHP 8.3
4
+ // original by: Brett Zamir (https://brett-zamir.me)
5
+ // improved by: Steven Levithan (stevenlevithan.com)
6
+ // note 1: The XDIFF_PATCH_IGNORESPACE flag and the error argument are not
7
+ // note 1: currently supported.
8
+ // note 2: This has not been tested exhaustively yet.
9
+ // note 3: The errorObj parameter (optional) if used must be passed in as a
10
+ // note 3: object. The errors will then be written by reference into it's `value` property
11
+ // example 1: xdiff_string_patch('', '@@ -0,0 +1,1 @@\n+Hello world!')
12
+ // returns 1: 'Hello world!'
14
13
 
15
14
  // First two functions were adapted from Steven Levithan, also under an MIT license
16
15
  // Adapted from XRegExp 1.5.0
@@ -18,184 +17,190 @@ module.exports = function xdiff_string_patch(originalStr, patch, flags, errorObj
18
17
  // MIT License
19
18
  // <https://xregexp.com>
20
19
 
21
- var _getNativeFlags = function _getNativeFlags(regex) {
20
+ const _getNativeFlags = function (regex) {
22
21
  // Proposed for ES4; included in AS3
23
- return [regex.global ? 'g' : '', regex.ignoreCase ? 'i' : '', regex.multiline ? 'm' : '', regex.extended ? 'x' : '', regex.sticky ? 'y' : ''].join('');
24
- };
22
+ return [
23
+ regex.global ? 'g' : '',
24
+ regex.ignoreCase ? 'i' : '',
25
+ regex.multiline ? 'm' : '',
26
+ regex.extended ? 'x' : '',
27
+ regex.sticky ? 'y' : '',
28
+ ].join('')
29
+ }
25
30
 
26
- var _cbSplit = function _cbSplit(string, sep) {
31
+ const _cbSplit = function (string, sep) {
27
32
  // If separator `s` is not a regex, use the native `split`
28
33
  if (!(sep instanceof RegExp)) {
29
34
  // Had problems to get it to work here using prototype test
30
- return String.prototype.split.apply(string, arguments);
35
+ return String.prototype.split.apply(string, arguments)
31
36
  }
32
- var str = String(string);
33
- var output = [];
34
- var lastLastIndex = 0;
35
- var match = void 0;
36
- var lastLength = void 0;
37
- var limit = Infinity;
38
- var x = sep._xregexp;
37
+ const str = String(string)
38
+ const output = []
39
+ let lastLastIndex = 0
40
+ let match
41
+ let lastLength
42
+ const limit = Infinity
43
+ const x = sep._xregexp
39
44
  // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero
40
45
  // and restore it to its original value when we're done using the regex
41
46
  // Brett paring down
42
- var s = new RegExp(sep.source, _getNativeFlags(sep) + 'g');
47
+ const s = new RegExp(sep.source, _getNativeFlags(sep) + 'g')
43
48
  if (x) {
44
49
  s._xregexp = {
45
50
  source: x.source,
46
- captureNames: x.captureNames ? x.captureNames.slice(0) : null
47
- };
51
+ captureNames: x.captureNames ? x.captureNames.slice(0) : null,
52
+ }
48
53
  }
49
54
 
50
- while (match = s.exec(str)) {
55
+ while ((match = s.exec(str))) {
51
56
  // Run the altered `exec` (required for `lastIndex` fix, etc.)
52
57
  if (s.lastIndex > lastLastIndex) {
53
- output.push(str.slice(lastLastIndex, match.index));
58
+ output.push(str.slice(lastLastIndex, match.index))
54
59
 
55
60
  if (match.length > 1 && match.index < str.length) {
56
- Array.prototype.push.apply(output, match.slice(1));
61
+ Array.prototype.push.apply(output, match.slice(1))
57
62
  }
58
63
 
59
- lastLength = match[0].length;
60
- lastLastIndex = s.lastIndex;
64
+ lastLength = match[0].length
65
+ lastLastIndex = s.lastIndex
61
66
 
62
67
  if (output.length >= limit) {
63
- break;
68
+ break
64
69
  }
65
70
  }
66
71
 
67
72
  if (s.lastIndex === match.index) {
68
- s.lastIndex++;
73
+ s.lastIndex++
69
74
  }
70
75
  }
71
76
 
72
77
  if (lastLastIndex === str.length) {
73
78
  if (!s.test('') || lastLength) {
74
- output.push('');
79
+ output.push('')
75
80
  }
76
81
  } else {
77
- output.push(str.slice(lastLastIndex));
82
+ output.push(str.slice(lastLastIndex))
78
83
  }
79
84
 
80
- return output.length > limit ? output.slice(0, limit) : output;
81
- };
82
-
83
- var i = 0;
84
- var ll = 0;
85
- var ranges = [];
86
- var lastLinePos = 0;
87
- var firstChar = '';
88
- var rangeExp = /^@@\s+-(\d+),(\d+)\s+\+(\d+),(\d+)\s+@@$/;
89
- var lineBreaks = /\r?\n/;
90
- var lines = _cbSplit(patch.replace(/(\r?\n)+$/, ''), lineBreaks);
91
- var origLines = _cbSplit(originalStr, lineBreaks);
92
- var newStrArr = [];
93
- var linePos = 0;
94
- var errors = '';
95
- var optTemp = 0; // Both string & integer (constant) input is allowed
96
- var OPTS = {
85
+ return output.length > limit ? output.slice(0, limit) : output
86
+ }
87
+
88
+ let i = 0
89
+ let ll = 0
90
+ let ranges = []
91
+ let lastLinePos = 0
92
+ let firstChar = ''
93
+ const rangeExp = /^@@\s+-(\d+),(\d+)\s+\+(\d+),(\d+)\s+@@$/
94
+ const lineBreaks = /\r?\n/
95
+ const lines = _cbSplit(patch.replace(/(\r?\n)+$/, ''), lineBreaks)
96
+ const origLines = _cbSplit(originalStr, lineBreaks)
97
+ const newStrArr = []
98
+ let linePos = 0
99
+ const errors = ''
100
+ let optTemp = 0 // Both string & integer (constant) input is allowed
101
+ const OPTS = {
97
102
  // Unsure of actual PHP values, so better to rely on string
98
103
  XDIFF_PATCH_NORMAL: 1,
99
104
  XDIFF_PATCH_REVERSE: 2,
100
- XDIFF_PATCH_IGNORESPACE: 4
105
+ XDIFF_PATCH_IGNORESPACE: 4,
106
+ }
101
107
 
102
- // Input defaulting & sanitation
103
- };if (typeof originalStr !== 'string' || !patch) {
104
- return false;
108
+ // Input defaulting & sanitation
109
+ if (typeof originalStr !== 'string' || !patch) {
110
+ return false
105
111
  }
106
112
  if (!flags) {
107
- flags = 'XDIFF_PATCH_NORMAL';
113
+ flags = 'XDIFF_PATCH_NORMAL'
108
114
  }
109
115
 
110
116
  if (typeof flags !== 'number') {
111
117
  // Allow for a single string or an array of string flags
112
- flags = [].concat(flags);
118
+ flags = [].concat(flags)
113
119
  for (i = 0; i < flags.length; i++) {
114
120
  // Resolve string input to bitwise e.g. 'XDIFF_PATCH_NORMAL' becomes 1
115
121
  if (OPTS[flags[i]]) {
116
- optTemp = optTemp | OPTS[flags[i]];
122
+ optTemp = optTemp | OPTS[flags[i]]
117
123
  }
118
124
  }
119
- flags = optTemp;
125
+ flags = optTemp
120
126
  }
121
127
 
122
128
  if (flags & OPTS.XDIFF_PATCH_NORMAL) {
123
129
  for (i = 0, ll = lines.length; i < ll; i++) {
124
- ranges = lines[i].match(rangeExp);
130
+ ranges = lines[i].match(rangeExp)
125
131
  if (ranges) {
126
- lastLinePos = linePos;
127
- linePos = ranges[1] - 1;
132
+ lastLinePos = linePos
133
+ linePos = ranges[1] - 1
128
134
  while (lastLinePos < linePos) {
129
- newStrArr[newStrArr.length] = origLines[lastLinePos++];
135
+ newStrArr[newStrArr.length] = origLines[lastLinePos++]
130
136
  }
131
137
  while (lines[++i] && rangeExp.exec(lines[i]) === null) {
132
- firstChar = lines[i].charAt(0);
138
+ firstChar = lines[i].charAt(0)
133
139
  switch (firstChar) {
134
140
  case '-':
135
141
  // Skip including that line
136
- ++linePos;
137
- break;
142
+ ++linePos
143
+ break
138
144
  case '+':
139
- newStrArr[newStrArr.length] = lines[i].slice(1);
140
- break;
145
+ newStrArr[newStrArr.length] = lines[i].slice(1)
146
+ break
141
147
  case ' ':
142
- newStrArr[newStrArr.length] = origLines[linePos++];
143
- break;
148
+ newStrArr[newStrArr.length] = origLines[linePos++]
149
+ break
144
150
  default:
145
151
  // Reconcile with returning errrors arg?
146
- throw new Error('Unrecognized initial character in unidiff line');
152
+ throw new Error('Unrecognized initial character in unidiff line')
147
153
  }
148
154
  }
149
155
  if (lines[i]) {
150
- i--;
156
+ i--
151
157
  }
152
158
  }
153
159
  }
154
160
  while (linePos > 0 && linePos < origLines.length) {
155
- newStrArr[newStrArr.length] = origLines[linePos++];
161
+ newStrArr[newStrArr.length] = origLines[linePos++]
156
162
  }
157
163
  } else if (flags & OPTS.XDIFF_PATCH_REVERSE) {
158
164
  // Only differs from above by a few lines
159
165
  for (i = 0, ll = lines.length; i < ll; i++) {
160
- ranges = lines[i].match(rangeExp);
166
+ ranges = lines[i].match(rangeExp)
161
167
  if (ranges) {
162
- lastLinePos = linePos;
163
- linePos = ranges[3] - 1;
168
+ lastLinePos = linePos
169
+ linePos = ranges[3] - 1
164
170
  while (lastLinePos < linePos) {
165
- newStrArr[newStrArr.length] = origLines[lastLinePos++];
171
+ newStrArr[newStrArr.length] = origLines[lastLinePos++]
166
172
  }
167
173
  while (lines[++i] && rangeExp.exec(lines[i]) === null) {
168
- firstChar = lines[i].charAt(0);
174
+ firstChar = lines[i].charAt(0)
169
175
  switch (firstChar) {
170
176
  case '-':
171
- newStrArr[newStrArr.length] = lines[i].slice(1);
172
- break;
177
+ newStrArr[newStrArr.length] = lines[i].slice(1)
178
+ break
173
179
  case '+':
174
180
  // Skip including that line
175
- ++linePos;
176
- break;
181
+ ++linePos
182
+ break
177
183
  case ' ':
178
- newStrArr[newStrArr.length] = origLines[linePos++];
179
- break;
184
+ newStrArr[newStrArr.length] = origLines[linePos++]
185
+ break
180
186
  default:
181
187
  // Reconcile with returning errrors arg?
182
- throw new Error('Unrecognized initial character in unidiff line');
188
+ throw new Error('Unrecognized initial character in unidiff line')
183
189
  }
184
190
  }
185
191
  if (lines[i]) {
186
- i--;
192
+ i--
187
193
  }
188
194
  }
189
195
  }
190
196
  while (linePos > 0 && linePos < origLines.length) {
191
- newStrArr[newStrArr.length] = origLines[linePos++];
197
+ newStrArr[newStrArr.length] = origLines[linePos++]
192
198
  }
193
199
  }
194
200
 
195
201
  if (errorObj) {
196
- errorObj.value = errors;
202
+ errorObj.value = errors
197
203
  }
198
204
 
199
- return newStrArr.join('\n');
200
- };
201
- //# sourceMappingURL=xdiff_string_patch.js.map
205
+ return newStrArr.join('\n')
206
+ }
package/php/xml/index.js CHANGED
@@ -1,5 +1,2 @@
1
- 'use strict';
2
-
3
- module.exports.utf8_decode = require('./utf8_decode');
4
- module.exports.utf8_encode = require('./utf8_encode');
5
- //# sourceMappingURL=index.js.map
1
+ module.exports.utf8_decode = require('./utf8_decode')
2
+ module.exports.utf8_encode = require('./utf8_encode')
@@ -1,61 +1,59 @@
1
- 'use strict';
2
-
3
1
  module.exports = function utf8_decode(strData) {
4
- // discuss at: https://locutus.io/php/utf8_decode/
5
- // original by: Webtoolkit.info (https://www.webtoolkit.info/)
6
- // input by: Aman Gupta
7
- // input by: Brett Zamir (https://brett-zamir.me)
8
- // improved by: Kevin van Zonneveld (https://kvz.io)
9
- // improved by: Norman "zEh" Fuchs
10
- // bugfixed by: hitwork
11
- // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
12
- // bugfixed by: Kevin van Zonneveld (https://kvz.io)
13
- // bugfixed by: kirilloid
14
- // bugfixed by: w35l3y (https://www.wesley.eti.br)
15
- // example 1: utf8_decode('Kevin van Zonneveld')
16
- // returns 1: 'Kevin van Zonneveld'
17
-
18
- var tmpArr = [];
19
- var i = 0;
20
- var c1 = 0;
21
- var seqlen = 0;
22
-
23
- strData += '';
2
+ // discuss at: https://locutus.io/php/utf8_decode/
3
+ // parity verified: PHP 8.3
4
+ // original by: Webtoolkit.info (https://www.webtoolkit.info/)
5
+ // input by: Aman Gupta
6
+ // input by: Brett Zamir (https://brett-zamir.me)
7
+ // improved by: Kevin van Zonneveld (https://kvz.io)
8
+ // improved by: Norman "zEh" Fuchs
9
+ // bugfixed by: hitwork
10
+ // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
11
+ // bugfixed by: Kevin van Zonneveld (https://kvz.io)
12
+ // bugfixed by: kirilloid
13
+ // bugfixed by: w35l3y (https://www.wesley.eti.br)
14
+ // example 1: utf8_decode('Kevin van Zonneveld')
15
+ // returns 1: 'Kevin van Zonneveld'
16
+
17
+ const tmpArr = []
18
+ let i = 0
19
+ let c1 = 0
20
+ let seqlen = 0
21
+
22
+ strData += ''
24
23
 
25
24
  while (i < strData.length) {
26
- c1 = strData.charCodeAt(i) & 0xff;
27
- seqlen = 0;
25
+ c1 = strData.charCodeAt(i) & 0xff
26
+ seqlen = 0
28
27
 
29
28
  // https://en.wikipedia.org/wiki/UTF-8#Codepage_layout
30
29
  if (c1 <= 0xbf) {
31
- c1 = c1 & 0x7f;
32
- seqlen = 1;
30
+ c1 = c1 & 0x7f
31
+ seqlen = 1
33
32
  } else if (c1 <= 0xdf) {
34
- c1 = c1 & 0x1f;
35
- seqlen = 2;
33
+ c1 = c1 & 0x1f
34
+ seqlen = 2
36
35
  } else if (c1 <= 0xef) {
37
- c1 = c1 & 0x0f;
38
- seqlen = 3;
36
+ c1 = c1 & 0x0f
37
+ seqlen = 3
39
38
  } else {
40
- c1 = c1 & 0x07;
41
- seqlen = 4;
39
+ c1 = c1 & 0x07
40
+ seqlen = 4
42
41
  }
43
42
 
44
- for (var ai = 1; ai < seqlen; ++ai) {
45
- c1 = c1 << 0x06 | strData.charCodeAt(ai + i) & 0x3f;
43
+ for (let ai = 1; ai < seqlen; ++ai) {
44
+ c1 = (c1 << 0x06) | (strData.charCodeAt(ai + i) & 0x3f)
46
45
  }
47
46
 
48
47
  if (seqlen === 4) {
49
- c1 -= 0x10000;
50
- tmpArr.push(String.fromCharCode(0xd800 | c1 >> 10 & 0x3ff));
51
- tmpArr.push(String.fromCharCode(0xdc00 | c1 & 0x3ff));
48
+ c1 -= 0x10000
49
+ tmpArr.push(String.fromCharCode(0xd800 | ((c1 >> 10) & 0x3ff)))
50
+ tmpArr.push(String.fromCharCode(0xdc00 | (c1 & 0x3ff)))
52
51
  } else {
53
- tmpArr.push(String.fromCharCode(c1));
52
+ tmpArr.push(String.fromCharCode(c1))
54
53
  }
55
54
 
56
- i += seqlen;
55
+ i += seqlen
57
56
  }
58
57
 
59
- return tmpArr.join('');
60
- };
61
- //# sourceMappingURL=utf8_decode.js.map
58
+ return tmpArr.join('')
59
+ }
@@ -1,69 +1,67 @@
1
- 'use strict';
2
-
3
1
  module.exports = function utf8_encode(argString) {
4
- // discuss at: https://locutus.io/php/utf8_encode/
5
- // original by: Webtoolkit.info (https://www.webtoolkit.info/)
6
- // improved by: Kevin van Zonneveld (https://kvz.io)
7
- // improved by: sowberry
8
- // improved by: Jack
9
- // improved by: Yves Sucaet
10
- // improved by: kirilloid
11
- // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
12
- // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
13
- // bugfixed by: Ulrich
14
- // bugfixed by: Rafał Kukawski (https://blog.kukawski.pl)
15
- // bugfixed by: kirilloid
16
- // example 1: utf8_encode('Kevin van Zonneveld')
17
- // returns 1: 'Kevin van Zonneveld'
2
+ // discuss at: https://locutus.io/php/utf8_encode/
3
+ // parity verified: PHP 8.3
4
+ // original by: Webtoolkit.info (https://www.webtoolkit.info/)
5
+ // improved by: Kevin van Zonneveld (https://kvz.io)
6
+ // improved by: sowberry
7
+ // improved by: Jack
8
+ // improved by: Yves Sucaet
9
+ // improved by: kirilloid
10
+ // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
11
+ // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)
12
+ // bugfixed by: Ulrich
13
+ // bugfixed by: Rafał Kukawski (https://blog.kukawski.pl)
14
+ // bugfixed by: kirilloid
15
+ // example 1: utf8_encode('Kevin van Zonneveld')
16
+ // returns 1: 'Kevin van Zonneveld'
18
17
 
19
18
  if (argString === null || typeof argString === 'undefined') {
20
- return '';
19
+ return ''
21
20
  }
22
21
 
23
22
  // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
24
- var string = argString + '';
25
- var utftext = '';
26
- var start = void 0;
27
- var end = void 0;
28
- var stringl = 0;
23
+ const string = argString + ''
24
+ let utftext = ''
25
+ let start
26
+ let end
27
+ let stringl = 0
29
28
 
30
- start = end = 0;
31
- stringl = string.length;
32
- for (var n = 0; n < stringl; n++) {
33
- var c1 = string.charCodeAt(n);
34
- var enc = null;
29
+ start = end = 0
30
+ stringl = string.length
31
+ for (let n = 0; n < stringl; n++) {
32
+ let c1 = string.charCodeAt(n)
33
+ let enc = null
35
34
 
36
35
  if (c1 < 128) {
37
- end++;
36
+ end++
38
37
  } else if (c1 > 127 && c1 < 2048) {
39
- enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128);
38
+ enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)
40
39
  } else if ((c1 & 0xf800) !== 0xd800) {
41
- enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);
40
+ enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)
42
41
  } else {
43
42
  // surrogate pairs
44
43
  if ((c1 & 0xfc00) !== 0xd800) {
45
- throw new RangeError('Unmatched trail surrogate at ' + n);
44
+ throw new RangeError('Unmatched trail surrogate at ' + n)
46
45
  }
47
- var c2 = string.charCodeAt(++n);
46
+ const c2 = string.charCodeAt(++n)
48
47
  if ((c2 & 0xfc00) !== 0xdc00) {
49
- throw new RangeError('Unmatched lead surrogate at ' + (n - 1));
48
+ throw new RangeError('Unmatched lead surrogate at ' + (n - 1))
50
49
  }
51
- c1 = ((c1 & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;
52
- enc = String.fromCharCode(c1 >> 18 | 240, c1 >> 12 & 63 | 128, c1 >> 6 & 63 | 128, c1 & 63 | 128);
50
+ c1 = ((c1 & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000
51
+ enc = String.fromCharCode((c1 >> 18) | 240, ((c1 >> 12) & 63) | 128, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)
53
52
  }
54
53
  if (enc !== null) {
55
54
  if (end > start) {
56
- utftext += string.slice(start, end);
55
+ utftext += string.slice(start, end)
57
56
  }
58
- utftext += enc;
59
- start = end = n + 1;
57
+ utftext += enc
58
+ start = end = n + 1
60
59
  }
61
60
  }
62
61
 
63
62
  if (end > start) {
64
- utftext += string.slice(start, stringl);
63
+ utftext += string.slice(start, stringl)
65
64
  }
66
65
 
67
- return utftext;
68
- };
69
- //# sourceMappingURL=utf8_encode.js.map
66
+ return utftext
67
+ }
package/python/index.js CHANGED
@@ -1,4 +1 @@
1
- 'use strict';
2
-
3
- module.exports.string = require('./string');
4
- //# sourceMappingURL=index.js.map
1
+ module.exports.string = require('./string')
@@ -0,0 +1,17 @@
1
+ module.exports = function ceil(x) {
2
+ // discuss at: https://locutus.io/python/ceil/
3
+ // parity verified: Python 3.12
4
+ // original by: Kevin van Zonneveld (https://kvz.io)
5
+ // note 1: Returns the smallest integer >= x
6
+ // note 2: JS Math.ceil(-0.5) returns -0, but Python returns 0
7
+ // example 1: ceil(4.2)
8
+ // returns 1: 5
9
+ // example 2: ceil(-0.5)
10
+ // returns 2: 0
11
+ // example 3: ceil(3)
12
+ // returns 3: 3
13
+
14
+ const result = Math.ceil(x)
15
+ // Convert -0 to 0 for Python compatibility
16
+ return Object.is(result, -0) ? 0 : result
17
+ }
@@ -0,0 +1,12 @@
1
+ module.exports = function exp(x) {
2
+ // discuss at: https://locutus.io/python/exp/
3
+ // parity verified: Python 3.12
4
+ // original by: Kevin van Zonneveld (https://kvz.io)
5
+ // note 1: Returns e raised to the power of x
6
+ // example 1: exp(0)
7
+ // returns 1: 1
8
+ // example 2: exp(1)
9
+ // returns 2: 2.718281828459045
10
+
11
+ return Math.exp(x)
12
+ }
@@ -0,0 +1,14 @@
1
+ module.exports = function fabs(x) {
2
+ // discuss at: https://locutus.io/python/fabs/
3
+ // parity verified: Python 3.12
4
+ // original by: Kevin van Zonneveld (https://kvz.io)
5
+ // note 1: Returns the absolute value of x as a float
6
+ // example 1: fabs(-5)
7
+ // returns 1: 5
8
+ // example 2: fabs(3.14)
9
+ // returns 2: 3.14
10
+ // example 3: fabs(-2.5)
11
+ // returns 3: 2.5
12
+
13
+ return Math.abs(x)
14
+ }
@@ -0,0 +1,29 @@
1
+ module.exports = function factorial(n) {
2
+ // discuss at: https://locutus.io/python/factorial/
3
+ // parity verified: Python 3.12
4
+ // original by: Kevin van Zonneveld (https://kvz.io)
5
+ // note 1: Returns n! (n factorial)
6
+ // example 1: factorial(5)
7
+ // returns 1: 120
8
+ // example 2: factorial(0)
9
+ // returns 2: 1
10
+ // example 3: factorial(1)
11
+ // returns 3: 1
12
+
13
+ n = parseInt(n, 10)
14
+
15
+ if (n < 0) {
16
+ throw new Error('factorial() not defined for negative values')
17
+ }
18
+
19
+ if (n === 0 || n === 1) {
20
+ return 1
21
+ }
22
+
23
+ let result = 1
24
+ for (let i = 2; i <= n; i++) {
25
+ result *= i
26
+ }
27
+
28
+ return result
29
+ }
@@ -0,0 +1,14 @@
1
+ module.exports = function floor(x) {
2
+ // discuss at: https://locutus.io/python/floor/
3
+ // parity verified: Python 3.12
4
+ // original by: Kevin van Zonneveld (https://kvz.io)
5
+ // note 1: Returns the largest integer <= x
6
+ // example 1: floor(4.9)
7
+ // returns 1: 4
8
+ // example 2: floor(-0.5)
9
+ // returns 2: -1
10
+ // example 3: floor(3)
11
+ // returns 3: 3
12
+
13
+ return Math.floor(x)
14
+ }
@@ -0,0 +1,23 @@
1
+ module.exports = function gcd(a, b) {
2
+ // discuss at: https://locutus.io/python/gcd/
3
+ // parity verified: Python 3.12
4
+ // original by: Kevin van Zonneveld (https://kvz.io)
5
+ // note 1: Returns the greatest common divisor of a and b
6
+ // example 1: gcd(48, 18)
7
+ // returns 1: 6
8
+ // example 2: gcd(0, 5)
9
+ // returns 2: 5
10
+ // example 3: gcd(7, 0)
11
+ // returns 3: 7
12
+
13
+ a = Math.abs(parseInt(a, 10))
14
+ b = Math.abs(parseInt(b, 10))
15
+
16
+ while (b !== 0) {
17
+ const temp = b
18
+ b = a % b
19
+ a = temp
20
+ }
21
+
22
+ return a
23
+ }