locutus 2.0.32 → 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 (880) hide show
  1. package/README.md +18 -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 +9 -11
  209. package/php/filesystem/file_get_contents.js +3 -6
  210. package/php/filesystem/index.js +6 -9
  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_exists.js.map +0 -1
  642. package/php/filesystem/file_get_contents.js.map +0 -1
  643. package/php/filesystem/index.js.map +0 -1
  644. package/php/filesystem/pathinfo.js.map +0 -1
  645. package/php/filesystem/realpath.js.map +0 -1
  646. package/php/funchand/call_user_func.js.map +0 -1
  647. package/php/funchand/call_user_func_array.js.map +0 -1
  648. package/php/funchand/create_function.js.map +0 -1
  649. package/php/funchand/function_exists.js.map +0 -1
  650. package/php/funchand/get_defined_functions.js.map +0 -1
  651. package/php/funchand/index.js.map +0 -1
  652. package/php/i18n/i18n_loc_get_default.js.map +0 -1
  653. package/php/i18n/i18n_loc_set_default.js.map +0 -1
  654. package/php/i18n/index.js.map +0 -1
  655. package/php/index.js.map +0 -1
  656. package/php/info/assert_options.js.map +0 -1
  657. package/php/info/getenv.js.map +0 -1
  658. package/php/info/index.js.map +0 -1
  659. package/php/info/ini_get.js.map +0 -1
  660. package/php/info/ini_set.js.map +0 -1
  661. package/php/info/set_time_limit.js.map +0 -1
  662. package/php/info/version_compare.js.map +0 -1
  663. package/php/json/index.js.map +0 -1
  664. package/php/json/json_decode.js.map +0 -1
  665. package/php/json/json_encode.js.map +0 -1
  666. package/php/json/json_last_error.js.map +0 -1
  667. package/php/math/abs.js.map +0 -1
  668. package/php/math/acos.js.map +0 -1
  669. package/php/math/acosh.js.map +0 -1
  670. package/php/math/asin.js.map +0 -1
  671. package/php/math/asinh.js.map +0 -1
  672. package/php/math/atan.js.map +0 -1
  673. package/php/math/atan2.js.map +0 -1
  674. package/php/math/atanh.js.map +0 -1
  675. package/php/math/base_convert.js.map +0 -1
  676. package/php/math/bindec.js.map +0 -1
  677. package/php/math/ceil.js.map +0 -1
  678. package/php/math/cos.js.map +0 -1
  679. package/php/math/cosh.js.map +0 -1
  680. package/php/math/decbin.js.map +0 -1
  681. package/php/math/dechex.js.map +0 -1
  682. package/php/math/decoct.js.map +0 -1
  683. package/php/math/deg2rad.js.map +0 -1
  684. package/php/math/exp.js.map +0 -1
  685. package/php/math/expm1.js.map +0 -1
  686. package/php/math/floor.js.map +0 -1
  687. package/php/math/fmod.js.map +0 -1
  688. package/php/math/getrandmax.js.map +0 -1
  689. package/php/math/hexdec.js.map +0 -1
  690. package/php/math/hypot.js.map +0 -1
  691. package/php/math/index.js.map +0 -1
  692. package/php/math/is_finite.js.map +0 -1
  693. package/php/math/is_infinite.js.map +0 -1
  694. package/php/math/is_nan.js.map +0 -1
  695. package/php/math/lcg_value.js.map +0 -1
  696. package/php/math/log.js.map +0 -1
  697. package/php/math/log10.js.map +0 -1
  698. package/php/math/log1p.js.map +0 -1
  699. package/php/math/max.js.map +0 -1
  700. package/php/math/min.js.map +0 -1
  701. package/php/math/mt_getrandmax.js.map +0 -1
  702. package/php/math/mt_rand.js.map +0 -1
  703. package/php/math/octdec.js.map +0 -1
  704. package/php/math/pi.js.map +0 -1
  705. package/php/math/pow.js.map +0 -1
  706. package/php/math/rad2deg.js.map +0 -1
  707. package/php/math/rand.js.map +0 -1
  708. package/php/math/round.js.map +0 -1
  709. package/php/math/sin.js.map +0 -1
  710. package/php/math/sinh.js.map +0 -1
  711. package/php/math/sqrt.js.map +0 -1
  712. package/php/math/tan.js.map +0 -1
  713. package/php/math/tanh.js.map +0 -1
  714. package/php/misc/index.js.map +0 -1
  715. package/php/misc/pack.js.map +0 -1
  716. package/php/misc/uniqid.js.map +0 -1
  717. package/php/net-gopher/gopher_parsedir.js.map +0 -1
  718. package/php/net-gopher/index.js.map +0 -1
  719. package/php/network/index.js.map +0 -1
  720. package/php/network/inet_ntop.js.map +0 -1
  721. package/php/network/inet_pton.js.map +0 -1
  722. package/php/network/ip2long.js.map +0 -1
  723. package/php/network/long2ip.js.map +0 -1
  724. package/php/network/setcookie.js.map +0 -1
  725. package/php/network/setrawcookie.js.map +0 -1
  726. package/php/pcre/index.js.map +0 -1
  727. package/php/pcre/preg_match.js.map +0 -1
  728. package/php/pcre/preg_quote.js.map +0 -1
  729. package/php/pcre/preg_replace.js.map +0 -1
  730. package/php/pcre/sql_regcase.js.map +0 -1
  731. package/php/strings/addcslashes.js.map +0 -1
  732. package/php/strings/addslashes.js.map +0 -1
  733. package/php/strings/bin2hex.js.map +0 -1
  734. package/php/strings/chop.js.map +0 -1
  735. package/php/strings/chr.js.map +0 -1
  736. package/php/strings/chunk_split.js.map +0 -1
  737. package/php/strings/convert_cyr_string.js.map +0 -1
  738. package/php/strings/convert_uuencode.js.map +0 -1
  739. package/php/strings/count_chars.js.map +0 -1
  740. package/php/strings/crc32.js.map +0 -1
  741. package/php/strings/echo.js.map +0 -1
  742. package/php/strings/explode.js.map +0 -1
  743. package/php/strings/get_html_translation_table.js.map +0 -1
  744. package/php/strings/hex2bin.js.map +0 -1
  745. package/php/strings/html_entity_decode.js.map +0 -1
  746. package/php/strings/htmlentities.js.map +0 -1
  747. package/php/strings/htmlspecialchars.js.map +0 -1
  748. package/php/strings/htmlspecialchars_decode.js.map +0 -1
  749. package/php/strings/implode.js.map +0 -1
  750. package/php/strings/index.js.map +0 -1
  751. package/php/strings/join.js.map +0 -1
  752. package/php/strings/lcfirst.js.map +0 -1
  753. package/php/strings/levenshtein.js.map +0 -1
  754. package/php/strings/localeconv.js.map +0 -1
  755. package/php/strings/ltrim.js.map +0 -1
  756. package/php/strings/md5.js.map +0 -1
  757. package/php/strings/md5_file.js.map +0 -1
  758. package/php/strings/metaphone.js.map +0 -1
  759. package/php/strings/money_format.js.map +0 -1
  760. package/php/strings/nl2br.js.map +0 -1
  761. package/php/strings/nl_langinfo.js.map +0 -1
  762. package/php/strings/number_format.js.map +0 -1
  763. package/php/strings/ord.js.map +0 -1
  764. package/php/strings/parse_str.js.map +0 -1
  765. package/php/strings/printf.js.map +0 -1
  766. package/php/strings/quoted_printable_decode.js.map +0 -1
  767. package/php/strings/quoted_printable_encode.js.map +0 -1
  768. package/php/strings/quotemeta.js.map +0 -1
  769. package/php/strings/rtrim.js.map +0 -1
  770. package/php/strings/setlocale.js.map +0 -1
  771. package/php/strings/sha1.js.map +0 -1
  772. package/php/strings/sha1_file.js.map +0 -1
  773. package/php/strings/similar_text.js.map +0 -1
  774. package/php/strings/soundex.js.map +0 -1
  775. package/php/strings/split.js.map +0 -1
  776. package/php/strings/sprintf.js.map +0 -1
  777. package/php/strings/sscanf.js.map +0 -1
  778. package/php/strings/str_getcsv.js.map +0 -1
  779. package/php/strings/str_ireplace.js.map +0 -1
  780. package/php/strings/str_pad.js.map +0 -1
  781. package/php/strings/str_repeat.js.map +0 -1
  782. package/php/strings/str_replace.js.map +0 -1
  783. package/php/strings/str_rot13.js.map +0 -1
  784. package/php/strings/str_shuffle.js.map +0 -1
  785. package/php/strings/str_split.js.map +0 -1
  786. package/php/strings/str_word_count.js.map +0 -1
  787. package/php/strings/strcasecmp.js.map +0 -1
  788. package/php/strings/strchr.js.map +0 -1
  789. package/php/strings/strcmp.js.map +0 -1
  790. package/php/strings/strcoll.js.map +0 -1
  791. package/php/strings/strcspn.js.map +0 -1
  792. package/php/strings/strip_tags.js.map +0 -1
  793. package/php/strings/stripos.js.map +0 -1
  794. package/php/strings/stripslashes.js.map +0 -1
  795. package/php/strings/stristr.js.map +0 -1
  796. package/php/strings/strlen.js.map +0 -1
  797. package/php/strings/strnatcasecmp.js.map +0 -1
  798. package/php/strings/strnatcmp.js.map +0 -1
  799. package/php/strings/strncasecmp.js.map +0 -1
  800. package/php/strings/strncmp.js.map +0 -1
  801. package/php/strings/strpbrk.js.map +0 -1
  802. package/php/strings/strpos.js.map +0 -1
  803. package/php/strings/strrchr.js.map +0 -1
  804. package/php/strings/strrev.js.map +0 -1
  805. package/php/strings/strripos.js.map +0 -1
  806. package/php/strings/strrpos.js.map +0 -1
  807. package/php/strings/strspn.js.map +0 -1
  808. package/php/strings/strstr.js.map +0 -1
  809. package/php/strings/strtok.js.map +0 -1
  810. package/php/strings/strtolower.js.map +0 -1
  811. package/php/strings/strtoupper.js.map +0 -1
  812. package/php/strings/strtr.js.map +0 -1
  813. package/php/strings/substr.js.map +0 -1
  814. package/php/strings/substr_compare.js.map +0 -1
  815. package/php/strings/substr_count.js.map +0 -1
  816. package/php/strings/substr_replace.js.map +0 -1
  817. package/php/strings/trim.js.map +0 -1
  818. package/php/strings/ucfirst.js.map +0 -1
  819. package/php/strings/ucwords.js.map +0 -1
  820. package/php/strings/vprintf.js.map +0 -1
  821. package/php/strings/vsprintf.js.map +0 -1
  822. package/php/strings/wordwrap.js.map +0 -1
  823. package/php/url/base64_decode.js.map +0 -1
  824. package/php/url/base64_encode.js.map +0 -1
  825. package/php/url/http_build_query.js.map +0 -1
  826. package/php/url/index.js.map +0 -1
  827. package/php/url/parse_url.js.map +0 -1
  828. package/php/url/rawurldecode.js.map +0 -1
  829. package/php/url/rawurlencode.js.map +0 -1
  830. package/php/url/urldecode.js.map +0 -1
  831. package/php/url/urlencode.js.map +0 -1
  832. package/php/var/boolval.js.map +0 -1
  833. package/php/var/doubleval.js.map +0 -1
  834. package/php/var/empty.js.map +0 -1
  835. package/php/var/floatval.js.map +0 -1
  836. package/php/var/gettype.js.map +0 -1
  837. package/php/var/index.js.map +0 -1
  838. package/php/var/intval.js.map +0 -1
  839. package/php/var/is_array.js.map +0 -1
  840. package/php/var/is_binary.js.map +0 -1
  841. package/php/var/is_bool.js.map +0 -1
  842. package/php/var/is_buffer.js.map +0 -1
  843. package/php/var/is_callable.js.map +0 -1
  844. package/php/var/is_double.js.map +0 -1
  845. package/php/var/is_float.js.map +0 -1
  846. package/php/var/is_int.js.map +0 -1
  847. package/php/var/is_integer.js.map +0 -1
  848. package/php/var/is_long.js.map +0 -1
  849. package/php/var/is_null.js.map +0 -1
  850. package/php/var/is_numeric.js.map +0 -1
  851. package/php/var/is_object.js.map +0 -1
  852. package/php/var/is_real.js.map +0 -1
  853. package/php/var/is_scalar.js.map +0 -1
  854. package/php/var/is_string.js.map +0 -1
  855. package/php/var/is_unicode.js.map +0 -1
  856. package/php/var/isset.js.map +0 -1
  857. package/php/var/print_r.js.map +0 -1
  858. package/php/var/serialize.js.map +0 -1
  859. package/php/var/serialize.mocha.js +0 -14
  860. package/php/var/serialize.mocha.js.map +0 -1
  861. package/php/var/strval.js.map +0 -1
  862. package/php/var/unserialize.js.map +0 -1
  863. package/php/var/var_dump.js.map +0 -1
  864. package/php/var/var_export.js.map +0 -1
  865. package/php/xdiff/index.js.map +0 -1
  866. package/php/xdiff/xdiff_string_diff.js.map +0 -1
  867. package/php/xdiff/xdiff_string_patch.js.map +0 -1
  868. package/php/xml/index.js.map +0 -1
  869. package/php/xml/utf8_decode.js.map +0 -1
  870. package/php/xml/utf8_encode.js.map +0 -1
  871. package/python/index.js.map +0 -1
  872. package/python/string/ascii_letters.js.map +0 -1
  873. package/python/string/ascii_lowercase.js.map +0 -1
  874. package/python/string/ascii_uppercase.js.map +0 -1
  875. package/python/string/capwords.js.map +0 -1
  876. package/python/string/index.js.map +0 -1
  877. package/python/string/punctuation.js.map +0 -1
  878. package/ruby/Math/acos.js.map +0 -1
  879. package/ruby/Math/index.js.map +0 -1
  880. package/ruby/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/quoted_printable_decode.js"],"names":["module","exports","quoted_printable_decode","str","RFC2045Decode1","RFC2045Decode2IN","RFC2045Decode2OUT","sMatch","sHex","String","fromCharCode","parseInt","replace"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,uBAAT,CAAiCC,GAAjC,EAAsC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMC,iBAAiB,SAAvB;;AAEA;AACA,MAAMC,mBAAmB,mBAAzB;AACA;;AAEA,MAAMC,oBAAoB,SAApBA,iBAAoB,CAAUC,MAAV,EAAkBC,IAAlB,EAAwB;AAChD,WAAOC,OAAOC,YAAP,CAAoBC,SAASH,IAAT,EAAe,EAAf,CAApB,CAAP;AACD,GAFD;;AAIA,SAAOL,IAAIS,OAAJ,CAAYR,cAAZ,EAA4B,EAA5B,EAAgCQ,OAAhC,CAAwCP,gBAAxC,EAA0DC,iBAA1D,CAAP;AACD,CA5BD","file":"quoted_printable_decode.js","sourcesContent":["module.exports = function quoted_printable_decode(str) {\n // discuss at: https://locutus.io/php/quoted_printable_decode/\n // original by: Ole Vrijenhoek\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Theriault (https://github.com/Theriault)\n // reimplemented by: Theriault (https://github.com/Theriault)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: quoted_printable_decode('a=3Db=3Dc')\n // returns 1: 'a=b=c'\n // example 2: quoted_printable_decode('abc =20\\r\\n123 =20\\r\\n')\n // returns 2: 'abc \\r\\n123 \\r\\n'\n // example 3: quoted_printable_decode('012345678901234567890123456789012345678901234567890123456789012345678901234=\\r\\n56789')\n // returns 3: '01234567890123456789012345678901234567890123456789012345678901234567890123456789'\n // example 4: quoted_printable_decode(\"Lorem ipsum dolor sit amet=23, consectetur adipisicing elit\")\n // returns 4: 'Lorem ipsum dolor sit amet#, consectetur adipisicing elit'\n\n // Decodes all equal signs followed by two hex digits\n const RFC2045Decode1 = /=\\r\\n/gm\n\n // the RFC states against decoding lower case encodings, but following apparent PHP behavior\n const RFC2045Decode2IN = /=([0-9A-F]{2})/gim\n // RFC2045Decode2IN = /=([0-9A-F]{2})/gm,\n\n const RFC2045Decode2OUT = function (sMatch, sHex) {\n return String.fromCharCode(parseInt(sHex, 16))\n }\n\n return str.replace(RFC2045Decode1, '').replace(RFC2045Decode2IN, RFC2045Decode2OUT)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/quoted_printable_encode.js"],"names":["module","exports","quoted_printable_encode","str","hexChars","RFC2045Encode1IN","RFC2045Encode1OUT","sMatch","length","replace","chr","charCodeAt","RFC2045Encode2IN","RFC2045Encode2OUT","substr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,uBAAT,CAAiCC,GAAjC,EAAsC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAW,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,EAAwD,GAAxD,EAA6D,GAA7D,EAAkE,GAAlE,EAAuE,GAAvE,EAA4E,GAA5E,CAAjB;AACA,MAAMC,mBAAmB,yBAAzB;AACA,MAAMC,oBAAoB,SAApBA,iBAAoB,CAAUC,MAAV,EAAkB;AAC1C;AACA;AACA,QAAIA,OAAOC,MAAP,GAAgB,CAApB,EAAuB;AACrB,aAAOD,OAAOE,OAAP,CAAe,GAAf,EAAoB,KAApB,CAAP;AACD;AACD;AACA,QAAMC,MAAMH,OAAOI,UAAP,CAAkB,CAAlB,CAAZ;AACA,WAAO,MAAMP,SAAUM,QAAQ,CAAT,GAAc,EAAvB,CAAN,GAAmCN,SAASM,MAAM,EAAf,CAA1C;AACD,GATD;;AAWA;AACA;AACA;AACA;;AAEA,MAAME,mBAAmB,2BAAzB;AACA,MAAMC,oBAAoB,SAApBA,iBAAoB,CAAUN,MAAV,EAAkB;AAC1C,QAAIA,OAAOO,MAAP,CAAcP,OAAOC,MAAP,GAAgB,CAA9B,MAAqC,MAAzC,EAAiD;AAC/C,aAAOD,MAAP;AACD;AACD,WAAOA,SAAS,OAAhB;AACD,GALD;;AAOAJ,QAAMA,IAAIM,OAAJ,CAAYJ,gBAAZ,EAA8BC,iBAA9B,EAAiDG,OAAjD,CAAyDG,gBAAzD,EAA2EC,iBAA3E,CAAN;;AAEA;AACA,SAAOV,IAAIW,MAAJ,CAAW,CAAX,EAAcX,IAAIK,MAAJ,GAAa,CAA3B,CAAP;AACD,CA3CD","file":"quoted_printable_encode.js","sourcesContent":["module.exports = function quoted_printable_encode(str) {\n // discuss at: https://locutus.io/php/quoted_printable_encode/\n // original by: Theriault (https://github.com/Theriault)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Theriault (https://github.com/Theriault)\n // example 1: quoted_printable_encode('a=b=c')\n // returns 1: 'a=3Db=3Dc'\n // example 2: quoted_printable_encode('abc \\r\\n123 \\r\\n')\n // returns 2: 'abc =20\\r\\n123 =20\\r\\n'\n // example 3: quoted_printable_encode('0123456789012345678901234567890123456789012345678901234567890123456789012345')\n // returns 3: '012345678901234567890123456789012345678901234567890123456789012345678901234=\\r\\n5'\n // test: skip-2\n\n const hexChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']\n const RFC2045Encode1IN = / \\r\\n|\\r\\n|[^!-<>-~ ]/gm\n const RFC2045Encode1OUT = function (sMatch) {\n // Encode space before CRLF sequence to prevent spaces from being stripped\n // Keep hard line breaks intact; CRLF sequences\n if (sMatch.length > 1) {\n return sMatch.replace(' ', '=20')\n }\n // Encode matching character\n const chr = sMatch.charCodeAt(0)\n return '=' + hexChars[(chr >>> 4) & 15] + hexChars[chr & 15]\n }\n\n // Split lines to 75 characters; the reason it's 75 and not 76 is because softline breaks are\n // preceeded by an equal sign; which would be the 76th character. However, if the last line/string\n // was exactly 76 characters, then a softline would not be needed. PHP currently softbreaks\n // anyway; so this function replicates PHP.\n\n const RFC2045Encode2IN = /.{1,72}(?!\\r\\n)[^=]{0,3}/g\n const RFC2045Encode2OUT = function (sMatch) {\n if (sMatch.substr(sMatch.length - 2) === '\\r\\n') {\n return sMatch\n }\n return sMatch + '=\\r\\n'\n }\n\n str = str.replace(RFC2045Encode1IN, RFC2045Encode1OUT).replace(RFC2045Encode2IN, RFC2045Encode2OUT)\n\n // Strip last softline break\n return str.substr(0, str.length - 3)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/quotemeta.js"],"names":["module","exports","quotemeta","str","replace"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,GAAnB,EAAwB;AACvC;AACA;AACA;AACA;;AAEA,SAAO,CAACA,MAAM,EAAP,EAAWC,OAAX,CAAmB,oBAAnB,EAAyC,MAAzC,CAAP;AACD,CAPD","file":"quotemeta.js","sourcesContent":["module.exports = function quotemeta(str) {\n // discuss at: https://locutus.io/php/quotemeta/\n // original by: Paulo Freitas\n // example 1: quotemeta(\". + * ? ^ ( $ )\")\n // returns 1: '\\\\. \\\\+ \\\\* \\\\? \\\\^ \\\\( \\\\$ \\\\)'\n\n return (str + '').replace(/([.\\\\+*?[^\\]$()])/g, '\\\\$1')\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/rtrim.js"],"names":["module","exports","rtrim","str","charlist","replace","re","RegExp"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAeC,GAAf,EAAoBC,QAApB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,aAAW,CAACA,QAAD,GAAY,UAAZ,GAA2B,CAACA,WAAW,EAAZ,EAAgBC,OAAhB,CAAwB,sBAAxB,EAAgD,MAAhD,CAAtC;;AAEA,MAAMC,KAAK,IAAIC,MAAJ,CAAW,MAAMH,QAAN,GAAiB,KAA5B,EAAmC,GAAnC,CAAX;;AAEA,SAAO,CAACD,MAAM,EAAP,EAAWE,OAAX,CAAmBC,EAAnB,EAAuB,EAAvB,CAAP;AACD,CAhBD","file":"rtrim.js","sourcesContent":["module.exports = function rtrim(str, charlist) {\n // discuss at: https://locutus.io/php/rtrim/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: Erkekjetter\n // input by: rem\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: rtrim(' Kevin van Zonneveld ')\n // returns 1: ' Kevin van Zonneveld'\n\n charlist = !charlist ? ' \\\\s\\u00A0' : (charlist + '').replace(/([[\\]().?/*{}+$^:])/g, '\\\\$1')\n\n const re = new RegExp('[' + charlist + ']+$', 'g')\n\n return (str + '').replace(re, '')\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/setlocale.js"],"names":["module","exports","setlocale","category","locale","getenv","require","categ","cats","i","_copy","orig","RegExp","Date","newObj","_nplurals2a","n","_nplurals2b","$global","window","global","$locutus","php","locales","fr_CA","LC_TIME","x","en","LC_COLLATE","str1","str2","LC_CTYPE","an","al","ct","dg","gr","lw","pr","pu","sp","up","xd","CODESET","lower","upper","a","A","b","B","c","p","P","r","X","alt_digits","ERA","ERA_YEAR","ERA_D_T_FMT","ERA_D_FMT","ERA_T_FMT","LC_MONETARY","int_curr_symbol","currency_symbol","mon_decimal_point","mon_thousands_sep","mon_grouping","positive_sign","negative_sign","int_frac_digits","frac_digits","p_cs_precedes","p_sep_by_space","n_cs_precedes","n_sep_by_space","p_sign_posn","n_sign_posn","LC_NUMERIC","decimal_point","thousands_sep","grouping","LC_MESSAGES","YESEXPR","NOEXPR","YESSTR","NOSTR","nplurals","en_US","en_GB","en_AU","C","fr","document","d","NS_XHTML","NS_XML","getElementsByTagNameNS","getAttributeNS","getElementsByTagName","lang","replace","localeCategories","Object","prototype","toString","call","length","push","join"],"mappings":"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","file":"setlocale.js","sourcesContent":["module.exports = function setlocale(category, locale) {\n // discuss at: https://locutus.io/php/setlocale/\n // original by: Brett Zamir (https://brett-zamir.me)\n // original by: Blues (https://hacks.bluesmoon.info/strftime/strftime.js)\n // original by: YUI Library (https://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html)\n // note 1: Is extensible, but currently only implements locales en,\n // note 1: en_US, en_GB, en_AU, fr, and fr_CA for LC_TIME only; C for LC_CTYPE;\n // note 1: C and en for LC_MONETARY/LC_NUMERIC; en for LC_COLLATE\n // note 1: Uses global: locutus to store locale info\n // note 1: Consider using https://demo.icu-project.org/icu-bin/locexp as basis for localization (as in i18n_loc_set_default())\n // note 2: This function tries to establish the locale via the `window` global.\n // note 2: This feature will not work in Node and hence is Browser-only\n // example 1: setlocale('LC_ALL', 'en_US')\n // returns 1: 'en_US'\n\n const getenv = require('../info/getenv')\n\n let categ = ''\n const cats = []\n let i = 0\n\n const _copy = function _copy(orig) {\n if (orig instanceof RegExp) {\n return new RegExp(orig)\n } else if (orig instanceof Date) {\n return new Date(orig)\n }\n const newObj = {}\n for (const i in orig) {\n if (typeof orig[i] === 'object') {\n newObj[i] = _copy(orig[i])\n } else {\n newObj[i] = orig[i]\n }\n }\n return newObj\n }\n\n // Function usable by a ngettext implementation (apparently not an accessible part of setlocale(),\n // but locale-specific) See https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms\n // though amended with others from https://developer.mozilla.org/En/Localization_and_Plurals (new\n // categories noted with \"MDC\" below, though not sure of whether there is a convention for the\n // relative order of these newer groups as far as ngettext) The function name indicates the number\n // of plural forms (nplural) Need to look into https://cldr.unicode.org/ (maybe future JavaScript);\n // Dojo has some functions (under new BSD), including JSON conversions of LDML XML from CLDR:\n // https://bugs.dojotoolkit.org/browser/dojo/trunk/cldr and docs at\n // https://api.dojotoolkit.org/jsdoc/HEAD/dojo.cldr\n\n // var _nplurals1 = function (n) {\n // // e.g., Japanese\n // return 0\n // }\n const _nplurals2a = function (n) {\n // e.g., English\n return n !== 1 ? 1 : 0\n }\n const _nplurals2b = function (n) {\n // e.g., French\n return n > 1 ? 1 : 0\n }\n\n const $global = typeof window !== 'undefined' ? window : global\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n // Reconcile Windows vs. *nix locale names?\n // Allow different priority orders of languages, esp. if implement gettext as in\n // LANGUAGE env. var.? (e.g., show German if French is not available)\n if (\n !$locutus.php.locales ||\n !$locutus.php.locales.fr_CA ||\n !$locutus.php.locales.fr_CA.LC_TIME ||\n !$locutus.php.locales.fr_CA.LC_TIME.x\n ) {\n // Can add to the locales\n $locutus.php.locales = {}\n\n $locutus.php.locales.en = {\n LC_COLLATE: function (str1, str2) {\n // @todo: This one taken from strcmp, but need for other locales; we don't use localeCompare\n // since its locale is not settable\n return str1 === str2 ? 0 : str1 > str2 ? 1 : -1\n },\n LC_CTYPE: {\n // Need to change any of these for English as opposed to C?\n an: /^[A-Za-z\\d]+$/g,\n al: /^[A-Za-z]+$/g,\n ct: /^[\\u0000-\\u001F\\u007F]+$/g,\n dg: /^[\\d]+$/g,\n gr: /^[\\u0021-\\u007E]+$/g,\n lw: /^[a-z]+$/g,\n pr: /^[\\u0020-\\u007E]+$/g,\n pu: /^[\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E]+$/g,\n sp: /^[\\f\\n\\r\\t\\v ]+$/g,\n up: /^[A-Z]+$/g,\n xd: /^[A-Fa-f\\d]+$/g,\n CODESET: 'UTF-8',\n // Used by sql_regcase\n lower: 'abcdefghijklmnopqrstuvwxyz',\n upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',\n },\n LC_TIME: {\n // Comments include nl_langinfo() constant equivalents and any\n // changes from Blues' implementation\n a: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n // ABDAY_\n A: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n // DAY_\n b: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n // ABMON_\n B: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n // MON_\n c: '%a %d %b %Y %r %Z',\n // D_T_FMT // changed %T to %r per results\n p: ['AM', 'PM'],\n // AM_STR/PM_STR\n P: ['am', 'pm'],\n // Not available in nl_langinfo()\n r: '%I:%M:%S %p',\n // T_FMT_AMPM (Fixed for all locales)\n x: '%m/%d/%Y',\n // D_FMT // switched order of %m and %d; changed %y to %Y (C uses %y)\n X: '%r',\n // T_FMT // changed from %T to %r (%T is default for C, not English US)\n // Following are from nl_langinfo() or https://www.cptec.inpe.br/sx4/sx4man2/g1ab02e/strftime.4.html\n alt_digits: '',\n // e.g., ordinal\n ERA: '',\n ERA_YEAR: '',\n ERA_D_T_FMT: '',\n ERA_D_FMT: '',\n ERA_T_FMT: '',\n },\n // Assuming distinction between numeric and monetary is thus:\n // See below for C locale\n LC_MONETARY: {\n // based on Windows \"english\" (English_United States.1252) locale\n int_curr_symbol: 'USD',\n currency_symbol: '$',\n mon_decimal_point: '.',\n mon_thousands_sep: ',',\n mon_grouping: [3],\n // use mon_thousands_sep; \"\" for no grouping; additional array members\n // indicate successive group lengths after first group\n // (e.g., if to be 1,23,456, could be [3, 2])\n positive_sign: '',\n negative_sign: '-',\n int_frac_digits: 2,\n // Fractional digits only for money defaults?\n frac_digits: 2,\n p_cs_precedes: 1,\n // positive currency symbol follows value = 0; precedes value = 1\n p_sep_by_space: 0,\n // 0: no space between curr. symbol and value; 1: space sep. them unless symb.\n // and sign are adjacent then space sep. them from value; 2: space sep. sign\n // and value unless symb. and sign are adjacent then space separates\n n_cs_precedes: 1,\n // see p_cs_precedes\n n_sep_by_space: 0,\n // see p_sep_by_space\n p_sign_posn: 3,\n // 0: parentheses surround quantity and curr. symbol; 1: sign precedes them;\n // 2: sign follows them; 3: sign immed. precedes curr. symbol; 4: sign immed.\n // succeeds curr. symbol\n n_sign_posn: 0, // see p_sign_posn\n },\n LC_NUMERIC: {\n // based on Windows \"english\" (English_United States.1252) locale\n decimal_point: '.',\n thousands_sep: ',',\n grouping: [3], // see mon_grouping, but for non-monetary values (use thousands_sep)\n },\n LC_MESSAGES: {\n YESEXPR: '^[yY].*',\n NOEXPR: '^[nN].*',\n YESSTR: '',\n NOSTR: '',\n },\n nplurals: _nplurals2a,\n }\n $locutus.php.locales.en_US = _copy($locutus.php.locales.en)\n $locutus.php.locales.en_US.LC_TIME.c = '%a %d %b %Y %r %Z'\n $locutus.php.locales.en_US.LC_TIME.x = '%D'\n $locutus.php.locales.en_US.LC_TIME.X = '%r'\n // The following are based on *nix settings\n $locutus.php.locales.en_US.LC_MONETARY.int_curr_symbol = 'USD '\n $locutus.php.locales.en_US.LC_MONETARY.p_sign_posn = 1\n $locutus.php.locales.en_US.LC_MONETARY.n_sign_posn = 1\n $locutus.php.locales.en_US.LC_MONETARY.mon_grouping = [3, 3]\n $locutus.php.locales.en_US.LC_NUMERIC.thousands_sep = ''\n $locutus.php.locales.en_US.LC_NUMERIC.grouping = []\n\n $locutus.php.locales.en_GB = _copy($locutus.php.locales.en)\n $locutus.php.locales.en_GB.LC_TIME.r = '%l:%M:%S %P %Z'\n\n $locutus.php.locales.en_AU = _copy($locutus.php.locales.en_GB)\n // Assume C locale is like English (?) (We need C locale for LC_CTYPE)\n $locutus.php.locales.C = _copy($locutus.php.locales.en)\n $locutus.php.locales.C.LC_CTYPE.CODESET = 'ANSI_X3.4-1968'\n $locutus.php.locales.C.LC_MONETARY = {\n int_curr_symbol: '',\n currency_symbol: '',\n mon_decimal_point: '',\n mon_thousands_sep: '',\n mon_grouping: [],\n p_cs_precedes: 127,\n p_sep_by_space: 127,\n n_cs_precedes: 127,\n n_sep_by_space: 127,\n p_sign_posn: 127,\n n_sign_posn: 127,\n positive_sign: '',\n negative_sign: '',\n int_frac_digits: 127,\n frac_digits: 127,\n }\n $locutus.php.locales.C.LC_NUMERIC = {\n decimal_point: '.',\n thousands_sep: '',\n grouping: [],\n }\n // D_T_FMT\n $locutus.php.locales.C.LC_TIME.c = '%a %b %e %H:%M:%S %Y'\n // D_FMT\n $locutus.php.locales.C.LC_TIME.x = '%m/%d/%y'\n // T_FMT\n $locutus.php.locales.C.LC_TIME.X = '%H:%M:%S'\n $locutus.php.locales.C.LC_MESSAGES.YESEXPR = '^[yY]'\n $locutus.php.locales.C.LC_MESSAGES.NOEXPR = '^[nN]'\n\n $locutus.php.locales.fr = _copy($locutus.php.locales.en)\n $locutus.php.locales.fr.nplurals = _nplurals2b\n $locutus.php.locales.fr.LC_TIME.a = ['dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam']\n $locutus.php.locales.fr.LC_TIME.A = ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n $locutus.php.locales.fr.LC_TIME.b = [\n 'jan',\n 'f\\u00E9v',\n 'mar',\n 'avr',\n 'mai',\n 'jun',\n 'jui',\n 'ao\\u00FB',\n 'sep',\n 'oct',\n 'nov',\n 'd\\u00E9c',\n ]\n $locutus.php.locales.fr.LC_TIME.B = [\n 'janvier',\n 'f\\u00E9vrier',\n 'mars',\n 'avril',\n 'mai',\n 'juin',\n 'juillet',\n 'ao\\u00FBt',\n 'septembre',\n 'octobre',\n 'novembre',\n 'd\\u00E9cembre',\n ]\n $locutus.php.locales.fr.LC_TIME.c = '%a %d %b %Y %T %Z'\n $locutus.php.locales.fr.LC_TIME.p = ['', '']\n $locutus.php.locales.fr.LC_TIME.P = ['', '']\n $locutus.php.locales.fr.LC_TIME.x = '%d.%m.%Y'\n $locutus.php.locales.fr.LC_TIME.X = '%T'\n\n $locutus.php.locales.fr_CA = _copy($locutus.php.locales.fr)\n $locutus.php.locales.fr_CA.LC_TIME.x = '%Y-%m-%d'\n }\n if (!$locutus.php.locale) {\n $locutus.php.locale = 'en_US'\n // Try to establish the locale via the `window` global\n if (typeof window !== 'undefined' && window.document) {\n const d = window.document\n const NS_XHTML = 'https://www.w3.org/1999/xhtml'\n const NS_XML = 'https://www.w3.org/XML/1998/namespace'\n if (d.getElementsByTagNameNS && d.getElementsByTagNameNS(NS_XHTML, 'html')[0]) {\n if (\n d.getElementsByTagNameNS(NS_XHTML, 'html')[0].getAttributeNS &&\n d.getElementsByTagNameNS(NS_XHTML, 'html')[0].getAttributeNS(NS_XML, 'lang')\n ) {\n $locutus.php.locale = d.getElementsByTagName(NS_XHTML, 'html')[0].getAttributeNS(NS_XML, 'lang')\n } else if (d.getElementsByTagNameNS(NS_XHTML, 'html')[0].lang) {\n // XHTML 1.0 only\n $locutus.php.locale = d.getElementsByTagNameNS(NS_XHTML, 'html')[0].lang\n }\n } else if (d.getElementsByTagName('html')[0] && d.getElementsByTagName('html')[0].lang) {\n $locutus.php.locale = d.getElementsByTagName('html')[0].lang\n }\n }\n }\n // PHP-style\n $locutus.php.locale = $locutus.php.locale.replace('-', '_')\n // @todo: locale if declared locale hasn't been defined\n if (!($locutus.php.locale in $locutus.php.locales)) {\n if ($locutus.php.locale.replace(/_[a-zA-Z]+$/, '') in $locutus.php.locales) {\n $locutus.php.locale = $locutus.php.locale.replace(/_[a-zA-Z]+$/, '')\n }\n }\n\n if (!$locutus.php.localeCategories) {\n $locutus.php.localeCategories = {\n LC_COLLATE: $locutus.php.locale,\n // for string comparison, see strcoll()\n LC_CTYPE: $locutus.php.locale,\n // for character classification and conversion, for example strtoupper()\n LC_MONETARY: $locutus.php.locale,\n // for localeconv()\n LC_NUMERIC: $locutus.php.locale,\n // for decimal separator (See also localeconv())\n LC_TIME: $locutus.php.locale,\n // for date and time formatting with strftime()\n // for system responses (available if PHP was compiled with libintl):\n LC_MESSAGES: $locutus.php.locale,\n }\n }\n\n if (locale === null || locale === '') {\n locale = getenv(category) || getenv('LANG')\n } else if (Object.prototype.toString.call(locale) === '[object Array]') {\n for (i = 0; i < locale.length; i++) {\n if (!(locale[i] in $locutus.php.locales)) {\n if (i === locale.length - 1) {\n // none found\n return false\n }\n continue\n }\n locale = locale[i]\n break\n }\n }\n\n // Just get the locale\n if (locale === '0' || locale === 0) {\n if (category === 'LC_ALL') {\n for (categ in $locutus.php.localeCategories) {\n // Add \".UTF-8\" or allow \".@latint\", etc. to the end?\n cats.push(categ + '=' + $locutus.php.localeCategories[categ])\n }\n return cats.join(';')\n }\n return $locutus.php.localeCategories[category]\n }\n\n if (!(locale in $locutus.php.locales)) {\n // Locale not found\n return false\n }\n\n // Set and get locale\n if (category === 'LC_ALL') {\n for (categ in $locutus.php.localeCategories) {\n $locutus.php.localeCategories[categ] = locale\n }\n } else {\n $locutus.php.localeCategories[category] = locale\n }\n\n return locale\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/sha1.js"],"names":["module","exports","sha1","str","hash","crypto","require","sha1sum","createHash","update","digest","e","undefined","_rotLeft","n","s","t4","_cvtHex","val","i","v","toString","blockstart","j","W","Array","H0","H1","H2","H3","H4","A","B","C","D","E","temp","unescape","encodeURIComponent","strLen","length","wordArray","charCodeAt","push","toLowerCase"],"mappings":"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","file":"sha1.js","sourcesContent":["module.exports = function sha1(str) {\n // discuss at: https://locutus.io/php/sha1/\n // original by: Webtoolkit.info (https://www.webtoolkit.info/)\n // improved by: Michael White (https://getsprink.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // input by: Brett Zamir (https://brett-zamir.me)\n // note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then\n // note 1: hashed. If available, we'd recommend using Node's native crypto modules directly\n // note 1: in a steaming fashion for faster and more efficient hashing\n // example 1: sha1('Kevin van Zonneveld')\n // returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'\n\n let hash\n try {\n const crypto = require('crypto')\n const sha1sum = crypto.createHash('sha1')\n sha1sum.update(str)\n hash = sha1sum.digest('hex')\n } catch (e) {\n hash = undefined\n }\n\n if (hash !== undefined) {\n return hash\n }\n\n const _rotLeft = function (n, s) {\n const t4 = (n << s) | (n >>> (32 - s))\n return t4\n }\n\n const _cvtHex = function (val) {\n let str = ''\n let i\n let v\n\n for (i = 7; i >= 0; i--) {\n v = (val >>> (i * 4)) & 0x0f\n str += v.toString(16)\n }\n return str\n }\n\n let blockstart\n let i, j\n const W = new Array(80)\n let H0 = 0x67452301\n let H1 = 0xefcdab89\n let H2 = 0x98badcfe\n let H3 = 0x10325476\n let H4 = 0xc3d2e1f0\n let A, B, C, D, E\n let temp\n\n // utf8_encode\n str = unescape(encodeURIComponent(str))\n const strLen = str.length\n\n const wordArray = []\n for (i = 0; i < strLen - 3; i += 4) {\n j = (str.charCodeAt(i) << 24) | (str.charCodeAt(i + 1) << 16) | (str.charCodeAt(i + 2) << 8) | str.charCodeAt(i + 3)\n wordArray.push(j)\n }\n\n switch (strLen % 4) {\n case 0:\n i = 0x080000000\n break\n case 1:\n i = (str.charCodeAt(strLen - 1) << 24) | 0x0800000\n break\n case 2:\n i = (str.charCodeAt(strLen - 2) << 24) | (str.charCodeAt(strLen - 1) << 16) | 0x08000\n break\n case 3:\n i =\n (str.charCodeAt(strLen - 3) << 24) |\n (str.charCodeAt(strLen - 2) << 16) |\n (str.charCodeAt(strLen - 1) << 8) |\n 0x80\n break\n }\n\n wordArray.push(i)\n\n while (wordArray.length % 16 !== 14) {\n wordArray.push(0)\n }\n\n wordArray.push(strLen >>> 29)\n wordArray.push((strLen << 3) & 0x0ffffffff)\n\n for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) {\n for (i = 0; i < 16; i++) {\n W[i] = wordArray[blockstart + i]\n }\n for (i = 16; i <= 79; i++) {\n W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1)\n }\n\n A = H0\n B = H1\n C = H2\n D = H3\n E = H4\n\n for (i = 0; i <= 19; i++) {\n temp = (_rotLeft(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5a827999) & 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 20; i <= 39; i++) {\n temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ed9eba1) & 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 40; i <= 59; i++) {\n temp = (_rotLeft(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8f1bbcdc) & 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n for (i = 60; i <= 79; i++) {\n temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xca62c1d6) & 0x0ffffffff\n E = D\n D = C\n C = _rotLeft(B, 30)\n B = A\n A = temp\n }\n\n H0 = (H0 + A) & 0x0ffffffff\n H1 = (H1 + B) & 0x0ffffffff\n H2 = (H2 + C) & 0x0ffffffff\n H3 = (H3 + D) & 0x0ffffffff\n H4 = (H4 + E) & 0x0ffffffff\n }\n\n temp = _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4)\n return temp.toLowerCase()\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/sha1_file.js"],"names":["module","exports","sha1_file","str_filename","fileGetContents","require","sha1","buf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,YAAnB,EAAiC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,kBAAkBC,QAAQ,iCAAR,CAAxB;AACA,MAAMC,OAAOD,QAAQ,iBAAR,CAAb;AACA,MAAME,MAAMH,gBAAgBD,YAAhB,CAAZ;;AAEA,MAAII,QAAQ,KAAZ,EAAmB;AACjB,WAAO,KAAP;AACD;;AAED,SAAOD,KAAKC,GAAL,CAAP;AACD,CAnBD","file":"sha1_file.js","sourcesContent":["module.exports = function sha1_file(str_filename) {\n // discuss at: https://locutus.io/php/sha1_file/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // note 1: Relies on file_get_contents which does not work in the browser, so Node only.\n // note 2: Keep in mind that in accordance with PHP, the whole file is buffered and then\n // note 2: hashed. We'd recommend Node's native crypto modules for faster and more\n // note 2: efficient hashing\n // example 1: sha1_file('test/never-change.txt')\n // returns 1: '0ea65a1f4b4d69712affc58240932f3eb8a2af66'\n\n const fileGetContents = require('../filesystem/file_get_contents')\n const sha1 = require('../strings/sha1')\n const buf = fileGetContents(str_filename)\n\n if (buf === false) {\n return false\n }\n\n return sha1(buf)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/similar_text.js"],"names":["module","exports","similar_text","first","second","percent","pos1","pos2","max","firstLength","length","secondLength","p","q","l","sum","charAt","substr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,YAAT,CAAsBC,KAAtB,EAA6BC,MAA7B,EAAqCC,OAArC,EAA8C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIF,UAAU,IAAV,IAAkBC,WAAW,IAA7B,IAAqC,OAAOD,KAAP,KAAiB,WAAtD,IAAqE,OAAOC,MAAP,KAAkB,WAA3F,EAAwG;AACtG,WAAO,CAAP;AACD;;AAEDD,WAAS,EAAT;AACAC,YAAU,EAAV;;AAEA,MAAIE,OAAO,CAAX;AACA,MAAIC,OAAO,CAAX;AACA,MAAIC,MAAM,CAAV;AACA,MAAMC,cAAcN,MAAMO,MAA1B;AACA,MAAMC,eAAeP,OAAOM,MAA5B;AACA,MAAIE,UAAJ;AACA,MAAIC,UAAJ;AACA,MAAIC,UAAJ;AACA,MAAIC,YAAJ;;AAEA,OAAKH,IAAI,CAAT,EAAYA,IAAIH,WAAhB,EAA6BG,GAA7B,EAAkC;AAChC,SAAKC,IAAI,CAAT,EAAYA,IAAIF,YAAhB,EAA8BE,GAA9B,EAAmC;AACjC,WAAKC,IAAI,CAAT,EAAYF,IAAIE,CAAJ,GAAQL,WAAR,IAAuBI,IAAIC,CAAJ,GAAQH,YAA/B,IAA+CR,MAAMa,MAAN,CAAaJ,IAAIE,CAAjB,MAAwBV,OAAOY,MAAP,CAAcH,IAAIC,CAAlB,CAAnF,EAAyGA,GAAzG,EAA8G;AAC5G;AACD;AACD,UAAIA,IAAIN,GAAR,EAAa;AACXA,cAAMM,CAAN;AACAR,eAAOM,CAAP;AACAL,eAAOM,CAAP;AACD;AACF;AACF;;AAEDE,QAAMP,GAAN;;AAEA,MAAIO,GAAJ,EAAS;AACP,QAAIT,QAAQC,IAAZ,EAAkB;AAChBQ,aAAOb,aAAaC,MAAMc,MAAN,CAAa,CAAb,EAAgBX,IAAhB,CAAb,EAAoCF,OAAOa,MAAP,CAAc,CAAd,EAAiBV,IAAjB,CAApC,CAAP;AACD;;AAED,QAAID,OAAOE,GAAP,GAAaC,WAAb,IAA4BF,OAAOC,GAAP,GAAaG,YAA7C,EAA2D;AACzDI,aAAOb,aACLC,MAAMc,MAAN,CAAaX,OAAOE,GAApB,EAAyBC,cAAcH,IAAd,GAAqBE,GAA9C,CADK,EAELJ,OAAOa,MAAP,CAAcV,OAAOC,GAArB,EAA0BG,eAAeJ,IAAf,GAAsBC,GAAhD,CAFK,CAAP;AAID;AACF;;AAED,MAAI,CAACH,OAAL,EAAc;AACZ,WAAOU,GAAP;AACD;;AAED,SAAQA,MAAM,GAAP,IAAeN,cAAcE,YAA7B,CAAP;AACD,CA7DD","file":"similar_text.js","sourcesContent":["module.exports = function similar_text(first, second, percent) {\n // discuss at: https://locutus.io/php/similar_text/\n // original by: Rafał Kukawski (https://blog.kukawski.pl)\n // bugfixed by: Chris McMacken\n // bugfixed by: Jarkko Rantavuori original by findings in stackoverflow (https://stackoverflow.com/questions/14136349/how-does-similar-text-work)\n // improved by: Markus Padourek (taken from https://www.kevinhq.com/2012/06/php-similartext-function-in-javascript_16.html)\n // example 1: similar_text('Hello World!', 'Hello locutus!')\n // returns 1: 8\n // example 2: similar_text('Hello World!', null)\n // returns 2: 0\n\n if (first === null || second === null || typeof first === 'undefined' || typeof second === 'undefined') {\n return 0\n }\n\n first += ''\n second += ''\n\n let pos1 = 0\n let pos2 = 0\n let max = 0\n const firstLength = first.length\n const secondLength = second.length\n let p\n let q\n let l\n let sum\n\n for (p = 0; p < firstLength; p++) {\n for (q = 0; q < secondLength; q++) {\n for (l = 0; p + l < firstLength && q + l < secondLength && first.charAt(p + l) === second.charAt(q + l); l++) {\n // @todo: ^-- break up this crazy for loop and put the logic in its body\n }\n if (l > max) {\n max = l\n pos1 = p\n pos2 = q\n }\n }\n }\n\n sum = max\n\n if (sum) {\n if (pos1 && pos2) {\n sum += similar_text(first.substr(0, pos1), second.substr(0, pos2))\n }\n\n if (pos1 + max < firstLength && pos2 + max < secondLength) {\n sum += similar_text(\n first.substr(pos1 + max, firstLength - pos1 - max),\n second.substr(pos2 + max, secondLength - pos2 - max),\n )\n }\n }\n\n if (!percent) {\n return sum\n }\n\n return (sum * 200) / (firstLength + secondLength)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/soundex.js"],"names":["module","exports","soundex","str","toUpperCase","sdx","m","B","F","P","V","C","G","J","K","Q","S","X","Z","D","T","L","M","N","R","i","j","s","c","p","charAt","join"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,GAAjB,EAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,QAAM,CAACA,MAAM,EAAP,EAAWC,WAAX,EAAN;AACA,MAAI,CAACD,GAAL,EAAU;AACR,WAAO,EAAP;AACD;;AAED,MAAME,MAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAZ;AACA,MAAMC,IAAI;AACRC,OAAG,CADK;AAERC,OAAG,CAFK;AAGRC,OAAG,CAHK;AAIRC,OAAG,CAJK;AAKRC,OAAG,CALK;AAMRC,OAAG,CANK;AAORC,OAAG,CAPK;AAQRC,OAAG,CARK;AASRC,OAAG,CATK;AAURC,OAAG,CAVK;AAWRC,OAAG,CAXK;AAYRC,OAAG,CAZK;AAaRC,OAAG,CAbK;AAcRC,OAAG,CAdK;AAeRC,OAAG,CAfK;AAgBRC,OAAG,CAhBK;AAiBRC,OAAG,CAjBK;AAkBRC,OAAG;AAlBK,GAAV;AAoBA,MAAIC,IAAI,CAAR;AACA,MAAIC,UAAJ;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,UAAJ;AACA,MAAIC,UAAJ;;AAEA,SAAO,CAACD,IAAIzB,IAAI2B,MAAJ,CAAWL,GAAX,CAAL,KAAyBE,IAAI,CAApC,EAAuC;AACrC,QAAKD,IAAIpB,EAAEsB,CAAF,CAAT,EAAgB;AACd,UAAIF,MAAMG,CAAV,EAAa;AACXxB,YAAIsB,GAAJ,IAAWE,IAAIH,CAAf;AACD;AACF,KAJD,MAIO;AACLC,WAAKF,MAAM,CAAX;AACAI,UAAI,CAAJ;AACD;AACF;;AAEDxB,MAAI,CAAJ,IAASF,IAAI2B,MAAJ,CAAW,CAAX,CAAT;;AAEA,SAAOzB,IAAI0B,IAAJ,CAAS,EAAT,CAAP;AACD,CA/DD","file":"soundex.js","sourcesContent":["module.exports = function soundex(str) {\n // discuss at: https://locutus.io/php/soundex/\n // original by: Jonas Raoni Soares Silva (https://www.jsfromhell.com)\n // original by: Arnout Kazemier (https://www.3rd-Eden.com)\n // improved by: Jack\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // input by: Brett Zamir (https://brett-zamir.me)\n // revised by: Rafał Kukawski (https://blog.kukawski.pl)\n // example 1: soundex('Kevin')\n // returns 1: 'K150'\n // example 2: soundex('Ellery')\n // returns 2: 'E460'\n // example 3: soundex('Euler')\n // returns 3: 'E460'\n\n str = (str + '').toUpperCase()\n if (!str) {\n return ''\n }\n\n const sdx = [0, 0, 0, 0]\n const m = {\n B: 1,\n F: 1,\n P: 1,\n V: 1,\n C: 2,\n G: 2,\n J: 2,\n K: 2,\n Q: 2,\n S: 2,\n X: 2,\n Z: 2,\n D: 3,\n T: 3,\n L: 4,\n M: 5,\n N: 5,\n R: 6,\n }\n let i = 0\n let j\n let s = 0\n let c\n let p\n\n while ((c = str.charAt(i++)) && s < 4) {\n if ((j = m[c])) {\n if (j !== p) {\n sdx[s++] = p = j\n }\n } else {\n s += i === 1\n p = 0\n }\n }\n\n sdx[0] = str.charAt(0)\n\n return sdx.join('')\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/split.js"],"names":["module","exports","split","delimiter","string","explode","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAeC,SAAf,EAA0BC,MAA1B,EAAkC;AACjD;AACA;AACA;AACA;;AAEA,MAAMC,UAAUC,QAAQ,oBAAR,CAAhB;AACA,SAAOD,QAAQF,SAAR,EAAmBC,MAAnB,CAAP;AACD,CARD","file":"split.js","sourcesContent":["module.exports = function split(delimiter, string) {\n // discuss at: https://locutus.io/php/split/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: split(' ', 'Kevin van Zonneveld')\n // returns 1: ['Kevin', 'van', 'Zonneveld']\n\n const explode = require('../strings/explode')\n return explode(delimiter, string)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/sprintf.js"],"names":["module","exports","sprintf","regex","args","arguments","i","format","_pad","str","len","chr","leftJustify","padding","length","Array","join","justify","value","prefix","minWidth","padChar","diff","slice","_formatBaseX","base","precision","number","toString","_formatString","customPadChar","undefined","doFormat","substring","argIndex","modifiers","specifier","method","textTransform","positiveNumberPrefix","j","l","charAt","isFinite","Error","indexOf","String","fromCharCode","toUpperCase","Math","round","abs","toLowerCase","replace","err"],"mappings":"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","file":"sprintf.js","sourcesContent":["module.exports = function sprintf() {\n // discuss at: https://locutus.io/php/sprintf/\n // original by: Ash Searle (https://hexmen.com/blog/)\n // improved by: Michael White (https://getsprink.com)\n // improved by: Jack\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Dj\n // improved by: Allidylls\n // input by: Paulo Freitas\n // input by: Brett Zamir (https://brett-zamir.me)\n // improved by: Rafał Kukawski (https://kukawski.pl)\n // example 1: sprintf(\"%01.2f\", 123.1)\n // returns 1: '123.10'\n // example 2: sprintf(\"[%10s]\", 'monkey')\n // returns 2: '[ monkey]'\n // example 3: sprintf(\"[%'#10s]\", 'monkey')\n // returns 3: '[####monkey]'\n // example 4: sprintf(\"%d\", 123456789012345)\n // returns 4: '123456789012345'\n // example 5: sprintf('%-03s', 'E')\n // returns 5: 'E00'\n // example 6: sprintf('%+010d', 9)\n // returns 6: '+000000009'\n // example 7: sprintf('%+0\\'@10d', 9)\n // returns 7: '@@@@@@@@+9'\n // example 8: sprintf('%.f', 3.14)\n // returns 8: '3.140000'\n // example 9: sprintf('%% %2$d', 1, 2)\n // returns 9: '% 2'\n\n const regex = /%%|%(?:(\\d+)\\$)?((?:[-+#0 ]|'[\\s\\S])*)(\\d+)?(?:\\.(\\d*))?([\\s\\S])/g\n const args = arguments\n let i = 0\n const format = args[i++]\n\n const _pad = function (str, len, chr, leftJustify) {\n if (!chr) {\n chr = ' '\n }\n const padding = str.length >= len ? '' : new Array((1 + len - str.length) >>> 0).join(chr)\n return leftJustify ? str + padding : padding + str\n }\n\n const justify = function (value, prefix, leftJustify, minWidth, padChar) {\n const diff = minWidth - value.length\n if (diff > 0) {\n // when padding with zeros\n // on the left side\n // keep sign (+ or -) in front\n if (!leftJustify && padChar === '0') {\n value = [value.slice(0, prefix.length), _pad('', diff, '0', true), value.slice(prefix.length)].join('')\n } else {\n value = _pad(value, minWidth, padChar, leftJustify)\n }\n }\n return value\n }\n\n const _formatBaseX = function (value, base, leftJustify, minWidth, precision, padChar) {\n // Note: casts negative numbers to positive ones\n const number = value >>> 0\n value = _pad(number.toString(base), precision || 0, '0', false)\n return justify(value, '', leftJustify, minWidth, padChar)\n }\n\n // _formatString()\n const _formatString = function (value, leftJustify, minWidth, precision, customPadChar) {\n if (precision !== null && precision !== undefined) {\n value = value.slice(0, precision)\n }\n return justify(value, '', leftJustify, minWidth, customPadChar)\n }\n\n // doFormat()\n const doFormat = function (substring, argIndex, modifiers, minWidth, precision, specifier) {\n let number, prefix, method, textTransform, value\n\n if (substring === '%%') {\n return '%'\n }\n\n // parse modifiers\n let padChar = ' ' // pad with spaces by default\n let leftJustify = false\n let positiveNumberPrefix = ''\n let j, l\n\n for (j = 0, l = modifiers.length; j < l; j++) {\n switch (modifiers.charAt(j)) {\n case ' ':\n case '0':\n padChar = modifiers.charAt(j)\n break\n case '+':\n positiveNumberPrefix = '+'\n break\n case '-':\n leftJustify = true\n break\n case \"'\":\n if (j + 1 < l) {\n padChar = modifiers.charAt(j + 1)\n j++\n }\n break\n }\n }\n\n if (!minWidth) {\n minWidth = 0\n } else {\n minWidth = +minWidth\n }\n\n if (!isFinite(minWidth)) {\n throw new Error('Width must be finite')\n }\n\n if (!precision) {\n precision = specifier === 'd' ? 0 : 'fFeE'.indexOf(specifier) > -1 ? 6 : undefined\n } else {\n precision = +precision\n }\n\n if (argIndex && +argIndex === 0) {\n throw new Error('Argument number must be greater than zero')\n }\n\n if (argIndex && +argIndex >= args.length) {\n throw new Error('Too few arguments')\n }\n\n value = argIndex ? args[+argIndex] : args[i++]\n\n switch (specifier) {\n case '%':\n return '%'\n case 's':\n return _formatString(value + '', leftJustify, minWidth, precision, padChar)\n case 'c':\n return _formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, padChar)\n case 'b':\n return _formatBaseX(value, 2, leftJustify, minWidth, precision, padChar)\n case 'o':\n return _formatBaseX(value, 8, leftJustify, minWidth, precision, padChar)\n case 'x':\n return _formatBaseX(value, 16, leftJustify, minWidth, precision, padChar)\n case 'X':\n return _formatBaseX(value, 16, leftJustify, minWidth, precision, padChar).toUpperCase()\n case 'u':\n return _formatBaseX(value, 10, leftJustify, minWidth, precision, padChar)\n case 'i':\n case 'd':\n number = +value || 0\n // Plain Math.round doesn't just truncate\n number = Math.round(number - (number % 1))\n prefix = number < 0 ? '-' : positiveNumberPrefix\n value = prefix + _pad(String(Math.abs(number)), precision, '0', false)\n\n if (leftJustify && padChar === '0') {\n // can't right-pad 0s on integers\n padChar = ' '\n }\n return justify(value, prefix, leftJustify, minWidth, padChar)\n case 'e':\n case 'E':\n case 'f': // @todo: Should handle locales (as per setlocale)\n case 'F':\n case 'g':\n case 'G':\n number = +value\n prefix = number < 0 ? '-' : positiveNumberPrefix\n method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(specifier.toLowerCase())]\n textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(specifier) % 2]\n value = prefix + Math.abs(number)[method](precision)\n return justify(value, prefix, leftJustify, minWidth, padChar)[textTransform]()\n default:\n // unknown specifier, consume that char and return empty\n return ''\n }\n }\n\n try {\n return format.replace(regex, doFormat)\n } catch (err) {\n return false\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/sscanf.js"],"names":["module","exports","sscanf","str","format","retArr","_NWS","args","arguments","digit","_setExtraConversionSpecs","offset","matches","slice","match","lgth","length","push","_finish","i","value","_addNext","j","regex","cb","assign","remaining","check","width","substr","exec","key","undefined","testNull","apply","Error","charAt","prePattern","preConvs","tmpDigit","msg","parseInt","sizeCode","lastIndex","pattern","num","sign","hex","oct","dec","RegExp","decInt","parseFloat","e","test"],"mappings":"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","file":"sscanf.js","sourcesContent":["module.exports = function sscanf(str, format) {\n // discuss at: https://locutus.io/php/sscanf/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: sscanf('SN/2350001', 'SN/%d')\n // returns 1: [2350001]\n // example 2: var myVar = {}\n // example 2: sscanf('SN/2350001', 'SN/%d', myVar)\n // example 2: var $result = myVar.value\n // returns 2: 2350001\n // example 3: sscanf(\"10--20\", \"%2$d--%1$d\") // Must escape '$' in PHP, but not JS\n // returns 3: [20, 10]\n\n const retArr = []\n const _NWS = /\\S/\n const args = arguments\n let digit\n\n const _setExtraConversionSpecs = function (offset) {\n // Since a mismatched character sets us off track from future\n // legitimate finds, we just scan\n // to the end for any other conversion specifications (besides a percent literal),\n // setting them to null\n // sscanf seems to disallow all conversion specification components (of sprintf)\n // except for type specifiers\n // Do not allow % in last char. class\n // var matches = format.match(/%[+-]?([ 0]|'.)?-?\\d*(\\.\\d+)?[bcdeufFosxX]/g);\n // Do not allow % in last char. class:\n const matches = format.slice(offset).match(/%[cdeEufgosxX]/g)\n // b, F,G give errors in PHP, but 'g', though also disallowed, doesn't\n if (matches) {\n let lgth = matches.length\n while (lgth--) {\n retArr.push(null)\n }\n }\n return _finish()\n }\n\n var _finish = function () {\n if (args.length === 2) {\n return retArr\n }\n for (var i = 0; i < retArr.length; ++i) {\n args[i + 2].value = retArr[i]\n }\n return i\n }\n\n const _addNext = function (j, regex, cb) {\n if (assign) {\n const remaining = str.slice(j)\n const check = width ? remaining.substr(0, width) : remaining\n const match = regex.exec(check)\n // @todo: Make this more readable\n const key = digit !== undefined ? digit : retArr.length\n const testNull = (retArr[key] = match ? (cb ? cb.apply(null, match) : match[0]) : null)\n if (testNull === null) {\n throw new Error('No match in string')\n }\n return j + match[0].length\n }\n return j\n }\n\n if (arguments.length < 2) {\n throw new Error('Not enough arguments passed to sscanf')\n }\n\n // PROCESS\n for (let i = 0, j = 0; i < format.length; i++) {\n var width = 0\n var assign = true\n\n if (format.charAt(i) === '%') {\n if (format.charAt(i + 1) === '%') {\n if (str.charAt(j) === '%') {\n // a matched percent literal\n // skip beyond duplicated percent\n ++i\n ++j\n continue\n }\n // Format indicated a percent literal, but not actually present\n return _setExtraConversionSpecs(i + 2)\n }\n\n // CHARACTER FOLLOWING PERCENT IS NOT A PERCENT\n\n // We need 'g' set to get lastIndex\n const prePattern = /^(?:(\\d+)\\$)?(\\*)?(\\d*)([hlL]?)/g\n\n const preConvs = prePattern.exec(format.slice(i + 1))\n\n const tmpDigit = digit\n if (tmpDigit && preConvs[1] === undefined) {\n let msg = 'All groups in sscanf() must be expressed as numeric if '\n msg += 'any have already been used'\n throw new Error(msg)\n }\n digit = preConvs[1] ? parseInt(preConvs[1], 10) - 1 : undefined\n\n assign = !preConvs[2]\n width = parseInt(preConvs[3], 10)\n const sizeCode = preConvs[4]\n i += prePattern.lastIndex\n\n // @todo: Does PHP do anything with these? Seems not to matter\n if (sizeCode) {\n // This would need to be processed later\n switch (sizeCode) {\n case 'h':\n case 'l':\n case 'L':\n // Treats subsequent as short int (for d,i,n) or unsigned short int (for o,u,x)\n // Treats subsequent as long int (for d,i,n), or unsigned long int (for o,u,x);\n // or as double (for e,f,g) instead of float or wchar_t instead of char\n // Treats subsequent as long double (for e,f,g)\n break\n default:\n throw new Error('Unexpected size specifier in sscanf()!')\n }\n }\n // PROCESS CHARACTER\n try {\n // For detailed explanations, see https://web.archive.org/web/20031128125047/https://www.uwm.edu/cgi-bin/IMT/wwwman?topic=scanf%283%29&msection=\n // Also https://www.mathworks.com/access/helpdesk/help/techdoc/ref/sscanf.html\n // p, S, C arguments in C function not available\n // DOCUMENTED UNDER SSCANF\n switch (format.charAt(i + 1)) {\n case 'F':\n // Not supported in PHP sscanf; the argument is treated as a float, and\n // presented as a floating-point number (non-locale aware)\n // sscanf doesn't support locales, so no need for two (see %f)\n break\n case 'g':\n // Not supported in PHP sscanf; shorter of %e and %f\n // Irrelevant to input conversion\n break\n case 'G':\n // Not supported in PHP sscanf; shorter of %E and %f\n // Irrelevant to input conversion\n break\n case 'b':\n // Not supported in PHP sscanf; the argument is treated as an integer,\n // and presented as a binary number\n // Not supported - couldn't distinguish from other integers\n break\n case 'i':\n // Integer with base detection (Equivalent of 'd', but base 0 instead of 10)\n var pattern = /([+-])?(?:(?:0x([\\da-fA-F]+))|(?:0([0-7]+))|(\\d+))/\n j = _addNext(j, pattern, function (num, sign, hex, oct, dec) {\n return hex ? parseInt(num, 16) : oct ? parseInt(num, 8) : parseInt(num, 10)\n })\n break\n case 'n':\n // Number of characters processed so far\n retArr[digit !== undefined ? digit : retArr.length - 1] = j\n break\n // DOCUMENTED UNDER SPRINTF\n case 'c':\n // Get character; suppresses skipping over whitespace!\n // (but shouldn't be whitespace in format anyways, so no difference here)\n // Non-greedy match\n j = _addNext(j, new RegExp('.{1,' + (width || 1) + '}'))\n break\n case 'D':\n case 'd':\n // sscanf documented decimal number; equivalent of 'd';\n // Optionally signed decimal integer\n j = _addNext(j, /([+-])?(?:0*)(\\d+)/, function (num, sign, dec) {\n // Ignores initial zeroes, unlike %i and parseInt()\n const decInt = parseInt((sign || '') + dec, 10)\n if (decInt < 0) {\n // PHP also won't allow less than -2147483648\n // integer overflow with negative\n return decInt < -2147483648 ? -2147483648 : decInt\n } else {\n // PHP also won't allow greater than -2147483647\n return decInt < 2147483647 ? decInt : 2147483647\n }\n })\n break\n case 'f':\n case 'E':\n case 'e':\n // Although sscanf doesn't support locales,\n // this is used instead of '%F'; seems to be same as %e\n // These don't discriminate here as both allow exponential float of either case\n j = _addNext(j, /([+-])?(?:0*)(\\d*\\.?\\d*(?:[eE]?\\d+)?)/, function (num, sign, dec) {\n if (dec === '.') {\n return null\n }\n // Ignores initial zeroes, unlike %i and parseFloat()\n return parseFloat((sign || '') + dec)\n })\n break\n case 'u':\n // unsigned decimal integer\n // We won't deal with integer overflows due to signs\n j = _addNext(j, /([+-])?(?:0*)(\\d+)/, function (num, sign, dec) {\n // Ignores initial zeroes, unlike %i and parseInt()\n const decInt = parseInt(dec, 10)\n if (sign === '-') {\n // PHP also won't allow greater than 4294967295\n // integer overflow with negative\n return 4294967296 - decInt\n } else {\n return decInt < 4294967295 ? decInt : 4294967295\n }\n })\n break\n case 'o':\n // Octal integer // @todo: add overflows as above?\n j = _addNext(j, /([+-])?(?:0([0-7]+))/, function (num, sign, oct) {\n return parseInt(num, 8)\n })\n break\n case 's':\n // Greedy match\n j = _addNext(j, /\\S+/)\n break\n case 'X':\n case 'x':\n // Same as 'x'?\n // @todo: add overflows as above?\n // Initial 0x not necessary here\n j = _addNext(j, /([+-])?(?:(?:0x)?([\\da-fA-F]+))/, function (num, sign, hex) {\n return parseInt(num, 16)\n })\n break\n case '':\n // If no character left in expression\n throw new Error('Missing character after percent mark in sscanf() format argument')\n default:\n throw new Error('Unrecognized character after percent mark in sscanf() format argument')\n }\n } catch (e) {\n if (e === 'No match in string') {\n // Allow us to exit\n return _setExtraConversionSpecs(i + 2)\n }\n // Calculate skipping beyond initial percent too\n }\n ++i\n } else if (format.charAt(i) !== str.charAt(j)) {\n // @todo: Double-check i whitespace ignored in string and/or formats\n _NWS.lastIndex = 0\n if (_NWS.test(str.charAt(j)) || str.charAt(j) === '') {\n // Whitespace doesn't need to be an exact match)\n return _setExtraConversionSpecs(i + 1)\n } else {\n // Adjust strings when encounter non-matching whitespace,\n // so they align in future checks above\n // Ok to replace with j++;?\n str = str.slice(0, j) + str.slice(j + 1)\n i--\n }\n } else {\n j++\n }\n }\n\n // POST-PROCESSING\n return _finish()\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_getcsv.js"],"names":["module","exports","str_getcsv","input","delimiter","enclosure","escape","i","inpLen","output","_backwards","str","split","reverse","join","_pq","String","replace","pqEnc","pqEsc","RegExp","length","push"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,KAApB,EAA2BC,SAA3B,EAAsCC,SAAtC,EAAiDC,MAAjD,EAAyD;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AAiBA,MAAIC,UAAJ;AACA,MAAIC,eAAJ;AACA,MAAMC,SAAS,EAAf;AACA,MAAMC,aAAa,SAAbA,UAAa,CAAUC,GAAV,EAAe;AAChC;AACA;AACA,WAAOA,IAAIC,KAAJ,CAAU,EAAV,EAAcC,OAAd,GAAwBC,IAAxB,CAA6B,EAA7B,CAAP;AACD,GAJD;AAKA,MAAMC,MAAM,SAANA,GAAM,CAAUJ,GAAV,EAAe;AACzB;AACA,WAAOK,OAAOL,GAAP,EAAYM,OAAZ,CAAoB,4BAApB,EAAkD,MAAlD,CAAP;AACD,GAHD;;AAKAb,cAAYA,aAAa,GAAzB;AACAC,cAAYA,aAAa,GAAzB;AACAC,WAASA,UAAU,IAAnB;AACA,MAAMY,QAAQH,IAAIV,SAAJ,CAAd;AACA,MAAMc,QAAQJ,IAAIT,MAAJ,CAAd;;AAEAH,UAAQA,MAAMc,OAAN,CAAc,IAAIG,MAAJ,CAAW,UAAUF,KAArB,CAAd,EAA2C,EAA3C,EAA+CD,OAA/C,CAAuD,IAAIG,MAAJ,CAAWF,QAAQ,OAAnB,CAAvD,EAAoF,EAApF,CAAR;;AAEA;AACAf,UAAQO,WAAWP,KAAX,EACLS,KADK,CACC,IAAIQ,MAAJ,CAAWF,QAAQ,MAAR,GAAiBH,IAAIX,SAAJ,CAAjB,GAAkC,MAAlC,GAA2Cc,KAA3C,GAAmD,KAAnD,GAA2DC,KAA3D,GAAmE,GAA9E,EAAmF,GAAnF,CADD,EAELN,OAFK,EAAR;;AAIA,OAAKN,IAAI,CAAJ,EAAOC,SAASL,MAAMkB,MAA3B,EAAmCd,IAAIC,MAAvC,EAA+CD,GAA/C,EAAoD;AAClDE,WAAOa,IAAP,CAAYZ,WAAWP,MAAMI,CAAN,CAAX,EAAqBU,OAArB,CAA6B,IAAIG,MAAJ,CAAWD,QAAQD,KAAnB,EAA0B,GAA1B,CAA7B,EAA6Db,SAA7D,CAAZ;AACD;;AAED,SAAOI,MAAP;AACD,CAxDD","file":"str_getcsv.js","sourcesContent":["module.exports = function str_getcsv(input, delimiter, enclosure, escape) {\n // discuss at: https://locutus.io/php/str_getcsv/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: str_getcsv('\"abc\",\"def\",\"ghi\"')\n // returns 1: ['abc', 'def', 'ghi']\n // example 2: str_getcsv('\"row2\"\"cell1\",\"row2cell2\",\"row2cell3\"', null, null, '\"')\n // returns 2: ['row2\"cell1', 'row2cell2', 'row2cell3']\n\n /*\n // These test cases allowing for missing delimiters are not currently supported\n str_getcsv('\"row2\"\"cell1\",row2cell2,row2cell3', null, null, '\"');\n ['row2\"cell1', 'row2cell2', 'row2cell3']\n\n str_getcsv('row1cell1,\"row1,cell2\",row1cell3', null, null, '\"');\n ['row1cell1', 'row1,cell2', 'row1cell3']\n\n str_getcsv('\"row2\"\"cell1\",row2cell2,\"row2\"\"\"\"cell3\"');\n ['row2\"cell1', 'row2cell2', 'row2\"\"cell3']\n\n str_getcsv('row1cell1,\"row1,cell2\",\"row1\"\",\"\"cell3\"', null, null, '\"');\n ['row1cell1', 'row1,cell2', 'row1\",\"cell3'];\n\n Should also test newlines within\n */\n\n let i\n let inpLen\n const output = []\n const _backwards = function (str) {\n // We need to go backwards to simulate negative look-behind (don't split on\n // an escaped enclosure even if followed by the delimiter and another enclosure mark)\n return str.split('').reverse().join('')\n }\n const _pq = function (str) {\n // preg_quote()\n return String(str).replace(/([\\\\.+*?[^\\]$(){}=!<>|:])/g, '\\\\$1')\n }\n\n delimiter = delimiter || ','\n enclosure = enclosure || '\"'\n escape = escape || '\\\\'\n const pqEnc = _pq(enclosure)\n const pqEsc = _pq(escape)\n\n input = input.replace(new RegExp('^\\\\s*' + pqEnc), '').replace(new RegExp(pqEnc + '\\\\s*$'), '')\n\n // PHP behavior may differ by including whitespace even outside of the enclosure\n input = _backwards(input)\n .split(new RegExp(pqEnc + '\\\\s*' + _pq(delimiter) + '\\\\s*' + pqEnc + '(?!' + pqEsc + ')', 'g'))\n .reverse()\n\n for (i = 0, inpLen = input.length; i < inpLen; i++) {\n output.push(_backwards(input[i]).replace(new RegExp(pqEsc + pqEnc, 'g'), enclosure))\n }\n\n return output\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_ireplace.js"],"names":["module","exports","str_ireplace","search","replace","subject","countObj","i","j","temp","repl","sl","fl","f","r","s","ra","otemp","oi","ofjl","os","osa","Object","prototype","toString","call","length","toLowerCase","concat","value","undefined","split","join","indexOf","substr"],"mappings":"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","file":"str_ireplace.js","sourcesContent":["module.exports = function str_ireplace(search, replace, subject, countObj) {\n // discuss at: https://locutus.io/php/str_ireplace/\n // original by: Glen Arason (https://CanadianDomainRegistry.ca)\n // bugfixed by: Mahmoud Saeed\n // note 1: Case-insensitive version of str_replace()\n // note 1: Compliant with PHP 5.0 str_ireplace() Full details at:\n // note 1: https://ca3.php.net/manual/en/function.str-ireplace.php\n // note 2: The countObj parameter (optional) if used must be passed in as a\n // note 2: object. The count will then be written by reference into it's `value` property\n // example 1: str_ireplace('M', 'e', 'name')\n // returns 1: 'naee'\n // example 2: var $countObj = {}\n // example 2: str_ireplace('M', 'e', 'name', $countObj)\n // example 2: var $result = $countObj.value\n // returns 2: 1\n // example 3: str_ireplace('', '.', 'aaa')\n // returns 3: 'aaa'\n\n let i = 0\n let j = 0\n let temp = ''\n let repl = ''\n let sl = 0\n let fl = 0\n let f = ''\n let r = ''\n let s = ''\n let ra = ''\n let otemp = ''\n let oi = ''\n let ofjl = ''\n let os = subject\n const osa = Object.prototype.toString.call(os) === '[object Array]'\n // var sa = ''\n\n if (typeof search === 'object') {\n temp = search\n search = []\n for (i = 0; i < temp.length; i += 1) {\n search[i] = temp[i].toLowerCase()\n }\n } else {\n search = search.toLowerCase()\n }\n\n if (typeof subject === 'object') {\n temp = subject\n subject = []\n for (i = 0; i < temp.length; i += 1) {\n subject[i] = temp[i].toLowerCase()\n }\n } else {\n subject = subject.toLowerCase()\n }\n\n if (typeof search === 'object' && typeof replace === 'string') {\n temp = replace\n replace = []\n for (i = 0; i < search.length; i += 1) {\n replace[i] = temp\n }\n }\n\n temp = ''\n f = [].concat(search)\n r = [].concat(replace)\n ra = Object.prototype.toString.call(r) === '[object Array]'\n s = subject\n // sa = Object.prototype.toString.call(s) === '[object Array]'\n s = [].concat(s)\n os = [].concat(os)\n\n if (countObj) {\n countObj.value = 0\n }\n\n for (i = 0, sl = s.length; i < sl; i++) {\n if (s[i] === '') {\n continue\n }\n for (j = 0, fl = f.length; j < fl; j++) {\n if (f[j] === '') {\n continue\n }\n temp = s[i] + ''\n repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0]\n s[i] = temp.split(f[j]).join(repl)\n otemp = os[i] + ''\n oi = temp.indexOf(f[j])\n ofjl = f[j].length\n if (oi >= 0) {\n os[i] = otemp.split(otemp.substr(oi, ofjl)).join(repl)\n }\n\n if (countObj) {\n countObj.value += temp.split(f[j]).length - 1\n }\n }\n }\n\n return osa ? os : os[0]\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_pad.js"],"names":["module","exports","str_pad","input","padLength","padString","padType","half","padToGo","_strPadRepeater","s","len","collect","length","substr","undefined","Math","ceil"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,KAAjB,EAAwBC,SAAxB,EAAmCC,SAAnC,EAA8CC,OAA9C,EAAuD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,OAAO,EAAX;AACA,MAAIC,gBAAJ;;AAEA,MAAMC,kBAAkB,SAAlBA,eAAkB,CAAUC,CAAV,EAAaC,GAAb,EAAkB;AACxC,QAAIC,UAAU,EAAd;;AAEA,WAAOA,QAAQC,MAAR,GAAiBF,GAAxB,EAA6B;AAC3BC,iBAAWF,CAAX;AACD;AACDE,cAAUA,QAAQE,MAAR,CAAe,CAAf,EAAkBH,GAAlB,CAAV;;AAEA,WAAOC,OAAP;AACD,GATD;;AAWAT,WAAS,EAAT;AACAE,cAAYA,cAAcU,SAAd,GAA0BV,SAA1B,GAAsC,GAAlD;;AAEA,MAAIC,YAAY,cAAZ,IAA8BA,YAAY,eAA1C,IAA6DA,YAAY,cAA7E,EAA6F;AAC3FA,cAAU,eAAV;AACD;AACD,MAAI,CAACE,UAAUJ,YAAYD,MAAMU,MAA7B,IAAuC,CAA3C,EAA8C;AAC5C,QAAIP,YAAY,cAAhB,EAAgC;AAC9BH,cAAQM,gBAAgBJ,SAAhB,EAA2BG,OAA3B,IAAsCL,KAA9C;AACD,KAFD,MAEO,IAAIG,YAAY,eAAhB,EAAiC;AACtCH,cAAQA,QAAQM,gBAAgBJ,SAAhB,EAA2BG,OAA3B,CAAhB;AACD,KAFM,MAEA,IAAIF,YAAY,cAAhB,EAAgC;AACrCC,aAAOE,gBAAgBJ,SAAhB,EAA2BW,KAAKC,IAAL,CAAUT,UAAU,CAApB,CAA3B,CAAP;AACAL,cAAQI,OAAOJ,KAAP,GAAeI,IAAvB;AACAJ,cAAQA,MAAMW,MAAN,CAAa,CAAb,EAAgBV,SAAhB,CAAR;AACD;AACF;;AAED,SAAOD,KAAP;AACD,CA5CD","file":"str_pad.js","sourcesContent":["module.exports = function str_pad(input, padLength, padString, padType) {\n // discuss at: https://locutus.io/php/str_pad/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Michael White (https://getsprink.com)\n // input by: Marco van Oort\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT')\n // returns 1: '-=-=-=-=-=-Kevin van Zonneveld'\n // example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH')\n // returns 2: '------Kevin van Zonneveld-----'\n\n let half = ''\n let padToGo\n\n const _strPadRepeater = function (s, len) {\n let collect = ''\n\n while (collect.length < len) {\n collect += s\n }\n collect = collect.substr(0, len)\n\n return collect\n }\n\n input += ''\n padString = padString !== undefined ? padString : ' '\n\n if (padType !== 'STR_PAD_LEFT' && padType !== 'STR_PAD_RIGHT' && padType !== 'STR_PAD_BOTH') {\n padType = 'STR_PAD_RIGHT'\n }\n if ((padToGo = padLength - input.length) > 0) {\n if (padType === 'STR_PAD_LEFT') {\n input = _strPadRepeater(padString, padToGo) + input\n } else if (padType === 'STR_PAD_RIGHT') {\n input = input + _strPadRepeater(padString, padToGo)\n } else if (padType === 'STR_PAD_BOTH') {\n half = _strPadRepeater(padString, Math.ceil(padToGo / 2))\n input = half + input + half\n input = input.substr(0, padLength)\n }\n }\n\n return input\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_repeat.js"],"names":["module","exports","str_repeat","input","multiplier","y"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,KAApB,EAA2BC,UAA3B,EAAuC;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,IAAI,EAAR;AACA,SAAO,IAAP,EAAa;AACX,QAAID,aAAa,CAAjB,EAAoB;AAClBC,WAAKF,KAAL;AACD;AACDC,mBAAe,CAAf;AACA,QAAIA,UAAJ,EAAgB;AACdD,eAASA,KAAT;AACD,KAFD,MAEO;AACL;AACD;AACF;AACD,SAAOE,CAAP;AACD,CArBD","file":"str_repeat.js","sourcesContent":["module.exports = function str_repeat(input, multiplier) {\n // discuss at: https://locutus.io/php/str_repeat/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Jonas Raoni Soares Silva (https://www.jsfromhell.com)\n // improved by: Ian Carter (https://euona.com/)\n // example 1: str_repeat('-=', 10)\n // returns 1: '-=-=-=-=-=-=-=-=-=-='\n\n let y = ''\n while (true) {\n if (multiplier & 1) {\n y += input\n }\n multiplier >>= 1\n if (multiplier) {\n input += input\n } else {\n break\n }\n }\n return y\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_replace.js"],"names":["module","exports","str_replace","search","replace","subject","countObj","i","j","temp","repl","sl","fl","f","concat","r","s","ra","Object","prototype","toString","call","sa","$global","window","global","$locutus","php","length","value","undefined","split","join"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAqBC,MAArB,EAA6BC,OAA7B,EAAsCC,OAAtC,EAA+CC,QAA/C,EAAyD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,OAAO,EAAX;AACA,MAAIC,OAAO,EAAX;AACA,MAAIC,KAAK,CAAT;AACA,MAAIC,KAAK,CAAT;AACA,MAAMC,IAAI,GAAGC,MAAH,CAAUX,MAAV,CAAV;AACA,MAAIY,IAAI,GAAGD,MAAH,CAAUV,OAAV,CAAR;AACA,MAAIY,IAAIX,OAAR;AACA,MAAIY,KAAKC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BN,CAA/B,MAAsC,gBAA/C;AACA,MAAMO,KAAKJ,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BL,CAA/B,MAAsC,gBAAjD;AACAA,MAAI,GAAGF,MAAH,CAAUE,CAAV,CAAJ;;AAEA,MAAMO,UAAU,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAzD;AACAF,UAAQG,QAAR,GAAmBH,QAAQG,QAAR,IAAoB,EAAvC;AACA,MAAMA,WAAWH,QAAQG,QAAzB;AACAA,WAASC,GAAT,GAAeD,SAASC,GAAT,IAAgB,EAA/B;;AAEA,MAAI,QAAOxB,MAAP,yCAAOA,MAAP,OAAkB,QAAlB,IAA8B,OAAOC,OAAP,KAAmB,QAArD,EAA+D;AAC7DK,WAAOL,OAAP;AACAA,cAAU,EAAV;AACA,SAAKG,IAAI,CAAT,EAAYA,IAAIJ,OAAOyB,MAAvB,EAA+BrB,KAAK,CAApC,EAAuC;AACrCH,cAAQG,CAAR,IAAaE,IAAb;AACD;AACDA,WAAO,EAAP;AACAM,QAAI,GAAGD,MAAH,CAAUV,OAAV,CAAJ;AACAa,SAAKC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BN,CAA/B,MAAsC,gBAA3C;AACD;;AAED,MAAI,OAAOT,QAAP,KAAoB,WAAxB,EAAqC;AACnCA,aAASuB,KAAT,GAAiB,CAAjB;AACD;;AAED,OAAKtB,IAAI,CAAJ,EAAOI,KAAKK,EAAEY,MAAnB,EAA2BrB,IAAII,EAA/B,EAAmCJ,GAAnC,EAAwC;AACtC,QAAIS,EAAET,CAAF,MAAS,EAAb,EAAiB;AACf;AACD;AACD,SAAKC,IAAI,CAAJ,EAAOI,KAAKC,EAAEe,MAAnB,EAA2BpB,IAAII,EAA/B,EAAmCJ,GAAnC,EAAwC;AACtC,UAAIK,EAAEL,CAAF,MAAS,EAAb,EAAiB;AACf;AACD;AACDC,aAAOO,EAAET,CAAF,IAAO,EAAd;AACAG,aAAOO,KAAMF,EAAEP,CAAF,MAASsB,SAAT,GAAqBf,EAAEP,CAAF,CAArB,GAA4B,EAAlC,GAAwCO,EAAE,CAAF,CAA/C;AACAC,QAAET,CAAF,IAAOE,KAAKsB,KAAL,CAAWlB,EAAEL,CAAF,CAAX,EAAiBwB,IAAjB,CAAsBtB,IAAtB,CAAP;AACA,UAAI,OAAOJ,QAAP,KAAoB,WAAxB,EAAqC;AACnCA,iBAASuB,KAAT,IAAkBpB,KAAKsB,KAAL,CAAWlB,EAAEL,CAAF,CAAX,EAAiBoB,MAAjB,GAA0B,CAA5C;AACD;AACF;AACF;AACD,SAAON,KAAKN,CAAL,GAASA,EAAE,CAAF,CAAhB;AACD,CApFD","file":"str_replace.js","sourcesContent":["module.exports = function str_replace(search, replace, subject, countObj) {\n // discuss at: https://locutus.io/php/str_replace/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Gabriel Paderni\n // improved by: Philip Peterson\n // improved by: Simon Willison (https://simonwillison.net)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Onno Marsman (https://twitter.com/onnomarsman)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // revised by: Jonas Raoni Soares Silva (https://www.jsfromhell.com)\n // bugfixed by: Anton Ongson\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Oleg Eremeev\n // bugfixed by: Glen Arason (https://CanadianDomainRegistry.ca)\n // bugfixed by: Glen Arason (https://CanadianDomainRegistry.ca)\n // bugfixed by: Mahmoud Saeed\n // input by: Onno Marsman (https://twitter.com/onnomarsman)\n // input by: Brett Zamir (https://brett-zamir.me)\n // input by: Oleg Eremeev\n // note 1: The countObj parameter (optional) if used must be passed in as a\n // note 1: object. The count will then be written by reference into it's `value` property\n // example 1: str_replace(' ', '.', 'Kevin van Zonneveld')\n // returns 1: 'Kevin.van.Zonneveld'\n // example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars')\n // returns 2: 'hemmo, mars'\n // example 3: str_replace(Array('S','F'),'x','ASDFASDF')\n // returns 3: 'AxDxAxDx'\n // example 4: var countObj = {}\n // example 4: str_replace(['A','D'], ['x','y'] , 'ASDFASDF' , countObj)\n // example 4: var $result = countObj.value\n // returns 4: 4\n // example 5: str_replace('', '.', 'aaa')\n // returns 5: 'aaa'\n\n let i = 0\n let j = 0\n let temp = ''\n let repl = ''\n let sl = 0\n let fl = 0\n const f = [].concat(search)\n let r = [].concat(replace)\n let s = subject\n let ra = Object.prototype.toString.call(r) === '[object Array]'\n const sa = Object.prototype.toString.call(s) === '[object Array]'\n s = [].concat(s)\n\n const $global = typeof window !== 'undefined' ? window : global\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n if (typeof search === 'object' && typeof replace === 'string') {\n temp = replace\n replace = []\n for (i = 0; i < search.length; i += 1) {\n replace[i] = temp\n }\n temp = ''\n r = [].concat(replace)\n ra = Object.prototype.toString.call(r) === '[object Array]'\n }\n\n if (typeof countObj !== 'undefined') {\n countObj.value = 0\n }\n\n for (i = 0, sl = s.length; i < sl; i++) {\n if (s[i] === '') {\n continue\n }\n for (j = 0, fl = f.length; j < fl; j++) {\n if (f[j] === '') {\n continue\n }\n temp = s[i] + ''\n repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0]\n s[i] = temp.split(f[j]).join(repl)\n if (typeof countObj !== 'undefined') {\n countObj.value += temp.split(f[j]).length - 1\n }\n }\n }\n return sa ? s : s[0]\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_rot13.js"],"names":["module","exports","str_rot13","str","replace","s","String","fromCharCode","charCodeAt","toLowerCase"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,GAAnB,EAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAO,CAACA,MAAM,EAAP,EAAWC,OAAX,CAAmB,SAAnB,EAA8B,UAAUC,CAAV,EAAa;AAChD,WAAOC,OAAOC,YAAP,CAAoBF,EAAEG,UAAF,CAAa,CAAb,KAAmBH,EAAEI,WAAF,KAAkB,GAAlB,GAAwB,EAAxB,GAA6B,CAAC,EAAjD,CAApB,CAAP;AACD,GAFM,CAAP;AAGD,CAhBD","file":"str_rot13.js","sourcesContent":["module.exports = function str_rot13(str) {\n // discuss at: https://locutus.io/php/str_rot13/\n // original by: Jonas Raoni Soares Silva (https://www.jsfromhell.com)\n // improved by: Ates Goral (https://magnetiq.com)\n // improved by: Rafał Kukawski (https://blog.kukawski.pl)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: str_rot13('Kevin van Zonneveld')\n // returns 1: 'Xriva ina Mbaariryq'\n // example 2: str_rot13('Xriva ina Mbaariryq')\n // returns 2: 'Kevin van Zonneveld'\n // example 3: str_rot13(33)\n // returns 3: '33'\n\n return (str + '').replace(/[a-z]/gi, function (s) {\n return String.fromCharCode(s.charCodeAt(0) + (s.toLowerCase() < 'n' ? 13 : -13))\n })\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_shuffle.js"],"names":["module","exports","str_shuffle","str","arguments","length","Error","newStr","rand","i","Math","floor","random","charAt","substring","substr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAqBC,GAArB,EAA0B;AACzC;AACA;AACA;AACA;AACA;;AAEA,MAAIC,UAAUC,MAAV,KAAqB,CAAzB,EAA4B;AAC1B,UAAM,IAAIC,KAAJ,CAAU,yCAAV,CAAN;AACD;;AAED,MAAIH,QAAQ,IAAZ,EAAkB;AAChB,WAAO,EAAP;AACD;;AAEDA,SAAO,EAAP;;AAEA,MAAII,SAAS,EAAb;AACA,MAAIC,aAAJ;AACA,MAAIC,IAAIN,IAAIE,MAAZ;;AAEA,SAAOI,CAAP,EAAU;AACRD,WAAOE,KAAKC,KAAL,CAAWD,KAAKE,MAAL,KAAgBH,CAA3B,CAAP;AACAF,cAAUJ,IAAIU,MAAJ,CAAWL,IAAX,CAAV;AACAL,UAAMA,IAAIW,SAAJ,CAAc,CAAd,EAAiBN,IAAjB,IAAyBL,IAAIY,MAAJ,CAAWP,OAAO,CAAlB,CAA/B;AACAC;AACD;;AAED,SAAOF,MAAP;AACD,CA7BD","file":"str_shuffle.js","sourcesContent":["module.exports = function str_shuffle(str) {\n // discuss at: https://locutus.io/php/str_shuffle/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: var $shuffled = str_shuffle(\"abcdef\")\n // example 1: var $result = $shuffled.length\n // returns 1: 6\n\n if (arguments.length === 0) {\n throw new Error('Wrong parameter count for str_shuffle()')\n }\n\n if (str === null) {\n return ''\n }\n\n str += ''\n\n let newStr = ''\n let rand\n let i = str.length\n\n while (i) {\n rand = Math.floor(Math.random() * i)\n newStr += str.charAt(rand)\n str = str.substring(0, rand) + str.substr(rand + 1)\n i--\n }\n\n return newStr\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_split.js"],"names":["module","exports","str_split","string","splitLength","chunks","pos","len","length","push","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,MAAnB,EAA2BC,WAA3B,EAAwC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIA,gBAAgB,IAApB,EAA0B;AACxBA,kBAAc,CAAd;AACD;AACD,MAAID,WAAW,IAAX,IAAmBC,cAAc,CAArC,EAAwC;AACtC,WAAO,KAAP;AACD;;AAEDD,YAAU,EAAV;AACA,MAAME,SAAS,EAAf;AACA,MAAIC,MAAM,CAAV;AACA,MAAMC,MAAMJ,OAAOK,MAAnB;;AAEA,SAAOF,MAAMC,GAAb,EAAkB;AAChBF,WAAOI,IAAP,CAAYN,OAAOO,KAAP,CAAaJ,GAAb,EAAmBA,OAAOF,WAA1B,CAAZ;AACD;;AAED,SAAOC,MAAP;AACD,CA5BD","file":"str_split.js","sourcesContent":["module.exports = function str_split(string, splitLength) {\n // discuss at: https://locutus.io/php/str_split/\n // original by: Martijn Wieringa\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // revised by: Theriault (https://github.com/Theriault)\n // revised by: Rafał Kukawski (https://blog.kukawski.pl)\n // input by: Bjorn Roesbeke (https://www.bjornroesbeke.be/)\n // example 1: str_split('Hello Friend', 3)\n // returns 1: ['Hel', 'lo ', 'Fri', 'end']\n\n if (splitLength === null) {\n splitLength = 1\n }\n if (string === null || splitLength < 1) {\n return false\n }\n\n string += ''\n const chunks = []\n let pos = 0\n const len = string.length\n\n while (pos < len) {\n chunks.push(string.slice(pos, (pos += splitLength)))\n }\n\n return chunks\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/str_word_count.js"],"names":["module","exports","str_word_count","str","format","charlist","ctypeAlpha","require","len","length","cl","chr","tmpStr","i","c","wArr","wC","assoc","aC","reg","match","_pregQuote","replace","_getWholeChar","code","charCodeAt","charAt","Error","next","prev","RegExp","search"],"mappings":"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","file":"str_word_count.js","sourcesContent":["module.exports = function str_word_count(str, format, charlist) {\n // discuss at: https://locutus.io/php/str_word_count/\n // original by: Ole Vrijenhoek\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // input by: Bug?\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: str_word_count(\"Hello fri3nd, you're\\r\\n looking good today!\", 1)\n // returns 1: ['Hello', 'fri', 'nd', \"you're\", 'looking', 'good', 'today']\n // example 2: str_word_count(\"Hello fri3nd, you're\\r\\n looking good today!\", 2)\n // returns 2: {0: 'Hello', 6: 'fri', 10: 'nd', 14: \"you're\", 29: 'looking', 46: 'good', 51: 'today'}\n // example 3: str_word_count(\"Hello fri3nd, you're\\r\\n looking good today!\", 1, '\\u00e0\\u00e1\\u00e3\\u00e73')\n // returns 3: ['Hello', 'fri3nd', \"you're\", 'looking', 'good', 'today']\n // example 4: str_word_count('hey', 2)\n // returns 4: {0: 'hey'}\n\n const ctypeAlpha = require('../ctype/ctype_alpha')\n const len = str.length\n const cl = charlist && charlist.length\n let chr = ''\n let tmpStr = ''\n let i = 0\n let c = ''\n const wArr = []\n let wC = 0\n const assoc = {}\n let aC = 0\n let reg = ''\n let match = false\n\n const _pregQuote = function (str) {\n return (str + '').replace(/([\\\\.+*?[^\\]$(){}=!<>|:])/g, '\\\\$1')\n }\n const _getWholeChar = function (str, i) {\n // Use for rare cases of non-BMP characters\n const code = str.charCodeAt(i)\n if (code < 0xd800 || code > 0xdfff) {\n return str.charAt(i)\n }\n if (code >= 0xd800 && code <= 0xdbff) {\n // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single\n // characters)\n if (str.length <= i + 1) {\n throw new Error('High surrogate without following low surrogate')\n }\n const next = str.charCodeAt(i + 1)\n if (next < 0xdc00 || next > 0xdfff) {\n throw new Error('High surrogate without following low surrogate')\n }\n return str.charAt(i) + str.charAt(i + 1)\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw new Error('Low surrogate without preceding high surrogate')\n }\n const prev = str.charCodeAt(i - 1)\n if (prev < 0xd800 || prev > 0xdbff) {\n // (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n throw new Error('Low surrogate without preceding high surrogate')\n }\n // We can pass over low surrogates now as the second component in a pair which we have already\n // processed\n return false\n }\n\n if (cl) {\n reg = '^(' + _pregQuote(_getWholeChar(charlist, 0))\n for (i = 1; i < cl; i++) {\n if ((chr = _getWholeChar(charlist, i)) === false) {\n continue\n }\n reg += '|' + _pregQuote(chr)\n }\n reg += ')$'\n reg = new RegExp(reg)\n }\n\n for (i = 0; i < len; i++) {\n if ((c = _getWholeChar(str, i)) === false) {\n continue\n }\n // No hyphen at beginning or end unless allowed in charlist (or locale)\n // No apostrophe at beginning unless allowed in charlist (or locale)\n // @todo: Make this more readable\n match =\n ctypeAlpha(c) ||\n (reg && c.search(reg) !== -1) ||\n (i !== 0 && i !== len - 1 && c === '-') ||\n (i !== 0 && c === \"'\")\n if (match) {\n if (tmpStr === '' && format === 2) {\n aC = i\n }\n tmpStr = tmpStr + c\n }\n if (i === len - 1 || (!match && tmpStr !== '')) {\n if (format !== 2) {\n wArr[wArr.length] = tmpStr\n } else {\n assoc[aC] = tmpStr\n }\n tmpStr = ''\n wC++\n }\n }\n\n if (!format) {\n return wC\n } else if (format === 1) {\n return wArr\n } else if (format === 2) {\n return assoc\n }\n\n throw new Error('You have supplied an incorrect format')\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strcasecmp.js"],"names":["module","exports","strcasecmp","fString1","fString2","string1","toLowerCase","string2"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,QAApB,EAA8BC,QAA9B,EAAwC;AACvD;AACA;AACA;AACA;AACA;;AAEA,MAAMC,UAAU,CAACF,WAAW,EAAZ,EAAgBG,WAAhB,EAAhB;AACA,MAAMC,UAAU,CAACH,WAAW,EAAZ,EAAgBE,WAAhB,EAAhB;;AAEA,MAAID,UAAUE,OAAd,EAAuB;AACrB,WAAO,CAAP;AACD,GAFD,MAEO,IAAIF,YAAYE,OAAhB,EAAyB;AAC9B,WAAO,CAAP;AACD;;AAED,SAAO,CAAC,CAAR;AACD,CAjBD","file":"strcasecmp.js","sourcesContent":["module.exports = function strcasecmp(fString1, fString2) {\n // discuss at: https://locutus.io/php/strcasecmp/\n // original by: Martijn Wieringa\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: strcasecmp('Hello', 'hello')\n // returns 1: 0\n\n const string1 = (fString1 + '').toLowerCase()\n const string2 = (fString2 + '').toLowerCase()\n\n if (string1 > string2) {\n return 1\n } else if (string1 === string2) {\n return 0\n }\n\n return -1\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strchr.js"],"names":["module","exports","strchr","haystack","needle","bool","strstr","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,QAAhB,EAA0BC,MAA1B,EAAkCC,IAAlC,EAAwC;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAASC,QAAQ,mBAAR,CAAf;AACA,SAAOD,OAAOH,QAAP,EAAiBC,MAAjB,EAAyBC,IAAzB,CAAP;AACD,CAVD","file":"strchr.js","sourcesContent":["module.exports = function strchr(haystack, needle, bool) {\n // discuss at: https://locutus.io/php/strchr/\n // original by: Philip Peterson\n // example 1: strchr('Kevin van Zonneveld', 'van')\n // returns 1: 'van Zonneveld'\n // example 2: strchr('Kevin van Zonneveld', 'van', true)\n // returns 2: 'Kevin '\n\n const strstr = require('../strings/strstr')\n return strstr(haystack, needle, bool)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strcmp.js"],"names":["module","exports","strcmp","str1","str2"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,IAAhB,EAAsBC,IAAtB,EAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOD,SAASC,IAAT,GAAgB,CAAhB,GAAoBD,OAAOC,IAAP,GAAc,CAAd,GAAkB,CAAC,CAA9C;AACD,CAZD","file":"strcmp.js","sourcesContent":["module.exports = function strcmp(str1, str2) {\n // discuss at: https://locutus.io/php/strcmp/\n // original by: Waldo Malqui Silva (https://waldo.malqui.info)\n // input by: Steve Hilder\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // revised by: gorthaur\n // example 1: strcmp( 'waldo', 'owald' )\n // returns 1: 1\n // example 2: strcmp( 'owald', 'waldo' )\n // returns 2: -1\n\n return str1 === str2 ? 0 : str1 > str2 ? 1 : -1\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strcoll.js"],"names":["module","exports","strcoll","str1","str2","setlocale","require","$global","window","global","$locutus","php","cmp","locales","localeCategories","LC_COLLATE"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,IAAjB,EAAuBC,IAAvB,EAA6B;AAC5C;AACA;AACA;AACA;AACA;;AAEA,MAAMC,YAAYC,QAAQ,sBAAR,CAAlB;;AAEA,MAAMC,UAAU,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAzD;AACAF,UAAQG,QAAR,GAAmBH,QAAQG,QAAR,IAAoB,EAAvC;AACA,MAAMA,WAAWH,QAAQG,QAAzB;AACAA,WAASC,GAAT,GAAeD,SAASC,GAAT,IAAgB,EAA/B;;AAEAN,YAAU,QAAV,EAAoB,CAApB,EAd4C,CAcrB;;AAEvB,MAAMO,MAAMF,SAASC,GAAT,CAAaE,OAAb,CAAqBH,SAASC,GAAT,CAAaG,gBAAb,CAA8BC,UAAnD,EAA+DA,UAA3E;;AAEA,SAAOH,IAAIT,IAAJ,EAAUC,IAAV,CAAP;AACD,CAnBD","file":"strcoll.js","sourcesContent":["module.exports = function strcoll(str1, str2) {\n // discuss at: https://locutus.io/php/strcoll/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: strcoll('a', 'b')\n // returns 1: -1\n\n const setlocale = require('../strings/setlocale')\n\n const $global = typeof window !== 'undefined' ? window : global\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n setlocale('LC_ALL', 0) // ensure setup of localization variables takes place\n\n const cmp = $locutus.php.locales[$locutus.php.localeCategories.LC_COLLATE].LC_COLLATE\n\n return cmp(str1, str2)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strcspn.js"],"names":["module","exports","strcspn","str","mask","start","length","e","Math","min","i","lgth","indexOf","charAt"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,GAAjB,EAAsBC,IAAtB,EAA4BC,KAA5B,EAAmCC,MAAnC,EAA2C;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAD,UAAQA,SAAS,CAAjB;AACAC,WAAS,OAAOA,MAAP,KAAkB,WAAlB,GAAgCH,IAAIG,MAApC,GAA6CA,UAAU,CAAhE;AACA,MAAID,QAAQ,CAAZ,EAAeA,QAAQF,IAAIG,MAAJ,GAAaD,KAArB;AACf,MAAIC,SAAS,CAAb,EAAgBA,SAASH,IAAIG,MAAJ,GAAaD,KAAb,GAAqBC,MAA9B;AAChB,MAAID,QAAQ,CAAR,IAAaA,SAASF,IAAIG,MAA1B,IAAoCA,UAAU,CAA9C,IAAmDC,KAAKJ,IAAIG,MAAhE,EAAwE,OAAO,CAAP;AACxE,MAAIC,IAAIC,KAAKC,GAAL,CAASN,IAAIG,MAAb,EAAqBD,QAAQC,MAA7B,CAAR;AACA,OAAK,IAAII,IAAIL,KAAR,EAAeM,OAAO,CAA3B,EAA8BD,IAAIH,CAAlC,EAAqCG,GAArC,EAA0C;AACxC,QAAIN,KAAKQ,OAAL,CAAaT,IAAIU,MAAJ,CAAWH,CAAX,CAAb,MAAgC,CAAC,CAArC,EAAwC;AACtC;AACD;AACD,MAAEC,IAAF;AACD;AACD,SAAOA,IAAP;AACD,CA1BD","file":"strcspn.js","sourcesContent":["module.exports = function strcspn(str, mask, start, length) {\n // discuss at: https://locutus.io/php/strcspn/\n // original by: Brett Zamir (https://brett-zamir.me)\n // revised by: Theriault\n // example 1: strcspn('abcdefg123', '1234567890')\n // returns 1: 7\n // example 2: strcspn('123abc', '1234567890')\n // returns 2: 0\n // example 3: strcspn('abcdefg123', '1234567890', 1)\n // returns 3: 6\n // example 4: strcspn('abcdefg123', '1234567890', -6, -5)\n // returns 4: 1\n\n start = start || 0\n length = typeof length === 'undefined' ? str.length : length || 0\n if (start < 0) start = str.length + start\n if (length < 0) length = str.length - start + length\n if (start < 0 || start >= str.length || length <= 0 || e >= str.length) return 0\n var e = Math.min(str.length, start + length)\n for (var i = start, lgth = 0; i < e; i++) {\n if (mask.indexOf(str.charAt(i)) !== -1) {\n break\n }\n ++lgth\n }\n return lgth\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strip_tags.js"],"names":["module","exports","strip_tags","input","allowed","_phpCastString","require","toLowerCase","match","join","tags","commentsAndPhpTags","after","substring","length","before","replace","$0","$1","indexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,KAApB,EAA2BC,OAA3B,EAAoC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,iBAAiBC,QAAQ,4BAAR,CAAvB;;AAEA;AACAF,YAAU,CAAC,CAAC,CAACA,WAAW,EAAZ,IAAkB,EAAnB,EAAuBG,WAAvB,GAAqCC,KAArC,CAA2C,mBAA3C,KAAmE,EAApE,EAAwEC,IAAxE,CAA6E,EAA7E,CAAV;;AAEA,MAAMC,OAAO,4BAAb;AACA,MAAMC,qBAAqB,0CAA3B;;AAEA,MAAIC,QAAQP,eAAeF,KAAf,CAAZ;AACA;AACAS,UAAQA,MAAMC,SAAN,CAAgBD,MAAME,MAAN,GAAe,CAA/B,MAAsC,GAAtC,GAA4CF,MAAMC,SAAN,CAAgB,CAAhB,EAAmBD,MAAME,MAAN,GAAe,CAAlC,CAA5C,GAAmFF,KAA3F;;AAEA;AACA,SAAO,IAAP,EAAa;AACX,QAAMG,SAASH,KAAf;AACAA,YAAQG,OAAOC,OAAP,CAAeL,kBAAf,EAAmC,EAAnC,EAAuCK,OAAvC,CAA+CN,IAA/C,EAAqD,UAAUO,EAAV,EAAcC,EAAd,EAAkB;AAC7E,aAAOd,QAAQe,OAAR,CAAgB,MAAMD,GAAGX,WAAH,EAAN,GAAyB,GAAzC,IAAgD,CAAC,CAAjD,GAAqDU,EAArD,GAA0D,EAAjE;AACD,KAFO,CAAR;;AAIA;AACA,QAAIF,WAAWH,KAAf,EAAsB;AACpB,aAAOA,KAAP;AACD;AACF;AACF,CAhED","file":"strip_tags.js","sourcesContent":["module.exports = function strip_tags(input, allowed) {\n // discuss at: https://locutus.io/php/strip_tags/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Luke Godfrey\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // input by: Pul\n // input by: Alex\n // input by: Marc Palau\n // input by: Brett Zamir (https://brett-zamir.me)\n // input by: Bobby Drake\n // input by: Evertjan Garretsen\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Eric Nagel\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Tomasz Wesolowski\n // bugfixed by: Tymon Sturgeon (https://scryptonite.com)\n // bugfixed by: Tim de Koning (https://www.kingsquare.nl)\n // revised by: Rafał Kukawski (https://blog.kukawski.pl)\n // example 1: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>')\n // returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'\n // example 2: strip_tags('<p>Kevin <img src=\"someimage.png\" onmouseover=\"someFunction()\">van <i>Zonneveld</i></p>', '<p>')\n // returns 2: '<p>Kevin van Zonneveld</p>'\n // example 3: strip_tags(\"<a href='https://kvz.io'>Kevin van Zonneveld</a>\", \"<a>\")\n // returns 3: \"<a href='https://kvz.io'>Kevin van Zonneveld</a>\"\n // example 4: strip_tags('1 < 5 5 > 1')\n // returns 4: '1 < 5 5 > 1'\n // example 5: strip_tags('1 <br/> 1')\n // returns 5: '1 1'\n // example 6: strip_tags('1 <br/> 1', '<br>')\n // returns 6: '1 <br/> 1'\n // example 7: strip_tags('1 <br/> 1', '<br><br/>')\n // returns 7: '1 <br/> 1'\n // example 8: strip_tags('<i>hello</i> <<foo>script>world<</foo>/script>')\n // returns 8: 'hello world'\n // example 9: strip_tags(4)\n // returns 9: '4'\n\n const _phpCastString = require('../_helpers/_phpCastString')\n\n // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)\n allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('')\n\n const tags = /<\\/?([a-z0-9]*)\\b[^>]*>?/gi\n const commentsAndPhpTags = /<!--[\\s\\S]*?-->|<\\?(?:php)?[\\s\\S]*?\\?>/gi\n\n let after = _phpCastString(input)\n // removes tha '<' char at the end of the string to replicate PHP's behaviour\n after = after.substring(after.length - 1) === '<' ? after.substring(0, after.length - 1) : after\n\n // recursively remove tags to ensure that the returned string doesn't contain forbidden tags after previous passes (e.g. '<<bait/>switch/>')\n while (true) {\n const before = after\n after = before.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {\n return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : ''\n })\n\n // return once no more tags are removed\n if (before === after) {\n return after\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/stripos.js"],"names":["module","exports","stripos","fHaystack","fNeedle","fOffset","haystack","toLowerCase","needle","index","indexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,SAAjB,EAA4BC,OAA5B,EAAqCC,OAArC,EAA8C;AAC7D;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAW,CAACH,YAAY,EAAb,EAAiBI,WAAjB,EAAjB;AACA,MAAMC,SAAS,CAACJ,UAAU,EAAX,EAAeG,WAAf,EAAf;AACA,MAAIE,QAAQ,CAAZ;;AAEA,MAAI,CAACA,QAAQH,SAASI,OAAT,CAAiBF,MAAjB,EAAyBH,OAAzB,CAAT,MAAgD,CAAC,CAArD,EAAwD;AACtD,WAAOI,KAAP;AACD;;AAED,SAAO,KAAP;AACD,CAhBD","file":"stripos.js","sourcesContent":["module.exports = function stripos(fHaystack, fNeedle, fOffset) {\n // discuss at: https://locutus.io/php/stripos/\n // original by: Martijn Wieringa\n // revised by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: stripos('ABC', 'a')\n // returns 1: 0\n\n const haystack = (fHaystack + '').toLowerCase()\n const needle = (fNeedle + '').toLowerCase()\n let index = 0\n\n if ((index = haystack.indexOf(needle, fOffset)) !== -1) {\n return index\n }\n\n return false\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/stripslashes.js"],"names":["module","exports","stripslashes","str","replace","s","n1"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,YAAT,CAAsBC,GAAtB,EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAO,CAACA,MAAM,EAAP,EAAWC,OAAX,CAAmB,SAAnB,EAA8B,UAAUC,CAAV,EAAaC,EAAb,EAAiB;AACpD,YAAQA,EAAR;AACE,WAAK,IAAL;AACE,eAAO,IAAP;AACF,WAAK,GAAL;AACE,eAAO,IAAP;AACF,WAAK,EAAL;AACE,eAAO,EAAP;AACF;AACE,eAAOA,EAAP;AARJ;AAUD,GAXM,CAAP;AAYD,CA7BD","file":"stripslashes.js","sourcesContent":["module.exports = function stripslashes(str) {\n // discuss at: https://locutus.io/php/stripslashes/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Ates Goral (https://magnetiq.com)\n // improved by: marrtins\n // improved by: rezna\n // fixed by: Mick@el\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // input by: Rick Waldron\n // input by: Brant Messenger (https://www.brantmessenger.com/)\n // reimplemented by: Brett Zamir (https://brett-zamir.me)\n // example 1: stripslashes('Kevin\\'s code')\n // returns 1: \"Kevin's code\"\n // example 2: stripslashes('Kevin\\\\\\'s code')\n // returns 2: \"Kevin\\'s code\"\n\n return (str + '').replace(/\\\\(.?)/g, function (s, n1) {\n switch (n1) {\n case '\\\\':\n return '\\\\'\n case '0':\n return '\\u0000'\n case '':\n return ''\n default:\n return n1\n }\n })\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/stristr.js"],"names":["module","exports","stristr","haystack","needle","bool","pos","toLowerCase","indexOf","substr","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2BC,MAA3B,EAAmCC,IAAnC,EAAyC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,MAAM,CAAV;;AAEAH,cAAY,EAAZ;AACAG,QAAMH,SAASI,WAAT,GAAuBC,OAAvB,CAA+B,CAACJ,SAAS,EAAV,EAAcG,WAAd,EAA/B,CAAN;AACA,MAAID,QAAQ,CAAC,CAAb,EAAgB;AACd,WAAO,KAAP;AACD,GAFD,MAEO;AACL,QAAID,IAAJ,EAAU;AACR,aAAOF,SAASM,MAAT,CAAgB,CAAhB,EAAmBH,GAAnB,CAAP;AACD,KAFD,MAEO;AACL,aAAOH,SAASO,KAAT,CAAeJ,GAAf,CAAP;AACD;AACF;AACF,CAtBD","file":"stristr.js","sourcesContent":["module.exports = function stristr(haystack, needle, bool) {\n // discuss at: https://locutus.io/php/stristr/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: stristr('Kevin van Zonneveld', 'Van')\n // returns 1: 'van Zonneveld'\n // example 2: stristr('Kevin van Zonneveld', 'VAN', true)\n // returns 2: 'Kevin '\n\n let pos = 0\n\n haystack += ''\n pos = haystack.toLowerCase().indexOf((needle + '').toLowerCase())\n if (pos === -1) {\n return false\n } else {\n if (bool) {\n return haystack.substr(0, pos)\n } else {\n return haystack.slice(pos)\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strlen.js"],"names":["module","exports","strlen","string","str","iniVal","require","undefined","length","i","lgth","getWholeChar","code","charCodeAt","next","prev","Error","charAt"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,MAAhB,EAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,MAAMD,SAAS,EAArB;;AAEA,MAAME,SAAS,CAAC,OAAOC,OAAP,KAAmB,WAAnB,GAAiCA,QAAQ,iBAAR,EAA2B,mBAA3B,CAAjC,GAAmFC,SAApF,KAAkG,KAAjH;AACA,MAAIF,WAAW,KAAf,EAAsB;AACpB,WAAOD,IAAII,MAAX;AACD;;AAED,MAAIC,IAAI,CAAR;AACA,MAAIC,OAAO,CAAX;;AAEA,MAAMC,eAAe,SAAfA,YAAe,CAAUP,GAAV,EAAeK,CAAf,EAAkB;AACrC,QAAMG,OAAOR,IAAIS,UAAJ,CAAeJ,CAAf,CAAb;AACA,QAAIK,OAAO,EAAX;AACA,QAAIC,OAAO,EAAX;AACA,QAAIH,QAAQ,MAAR,IAAkBA,QAAQ,MAA9B,EAAsC;AACpC;AACA;AACA,UAAIR,IAAII,MAAJ,IAAcC,IAAI,CAAtB,EAAyB;AACvB,cAAM,IAAIO,KAAJ,CAAU,gDAAV,CAAN;AACD;AACDF,aAAOV,IAAIS,UAAJ,CAAeJ,IAAI,CAAnB,CAAP;AACA,UAAIK,OAAO,MAAP,IAAiBA,OAAO,MAA5B,EAAoC;AAClC,cAAM,IAAIE,KAAJ,CAAU,gDAAV,CAAN;AACD;AACD,aAAOZ,IAAIa,MAAJ,CAAWR,CAAX,IAAgBL,IAAIa,MAAJ,CAAWR,IAAI,CAAf,CAAvB;AACD,KAXD,MAWO,IAAIG,QAAQ,MAAR,IAAkBA,QAAQ,MAA9B,EAAsC;AAC3C;AACA,UAAIH,MAAM,CAAV,EAAa;AACX,cAAM,IAAIO,KAAJ,CAAU,gDAAV,CAAN;AACD;AACDD,aAAOX,IAAIS,UAAJ,CAAeJ,IAAI,CAAnB,CAAP;AACA,UAAIM,OAAO,MAAP,IAAiBA,OAAO,MAA5B,EAAoC;AAClC;AACA;AACA,cAAM,IAAIC,KAAJ,CAAU,gDAAV,CAAN;AACD;AACD;AACA;AACA,aAAO,KAAP;AACD;AACD,WAAOZ,IAAIa,MAAJ,CAAWR,CAAX,CAAP;AACD,GA/BD;;AAiCA,OAAKA,IAAI,CAAJ,EAAOC,OAAO,CAAnB,EAAsBD,IAAIL,IAAII,MAA9B,EAAsCC,GAAtC,EAA2C;AACzC,QAAIE,aAAaP,GAAb,EAAkBK,CAAlB,MAAyB,KAA7B,EAAoC;AAClC;AACD;AACD;AACA;AACA;AACA;AACAC;AACD;;AAED,SAAOA,IAAP;AACD,CAxED","file":"strlen.js","sourcesContent":["module.exports = function strlen(string) {\n // discuss at: https://locutus.io/php/strlen/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Sakimori\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // input by: Kirk Strobeck\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // revised by: Brett Zamir (https://brett-zamir.me)\n // note 1: May look like overkill, but in order to be truly faithful to handling all Unicode\n // note 1: characters and to this function in PHP which does not count the number of bytes\n // note 1: but counts the number of characters, something like this is really necessary.\n // example 1: strlen('Kevin van Zonneveld')\n // returns 1: 19\n // example 2: ini_set('unicode.semantics', 'on')\n // example 2: strlen('A\\ud87e\\udc04Z')\n // returns 2: 3\n\n const str = string + ''\n\n const iniVal = (typeof require !== 'undefined' ? require('../info/ini_get')('unicode.semantics') : undefined) || 'off'\n if (iniVal === 'off') {\n return str.length\n }\n\n let i = 0\n let lgth = 0\n\n const getWholeChar = function (str, i) {\n const code = str.charCodeAt(i)\n let next = ''\n let prev = ''\n if (code >= 0xd800 && code <= 0xdbff) {\n // High surrogate (could change last hex to 0xDB7F to\n // treat high private surrogates as single characters)\n if (str.length <= i + 1) {\n throw new Error('High surrogate without following low surrogate')\n }\n next = str.charCodeAt(i + 1)\n if (next < 0xdc00 || next > 0xdfff) {\n throw new Error('High surrogate without following low surrogate')\n }\n return str.charAt(i) + str.charAt(i + 1)\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n // Low surrogate\n if (i === 0) {\n throw new Error('Low surrogate without preceding high surrogate')\n }\n prev = str.charCodeAt(i - 1)\n if (prev < 0xd800 || prev > 0xdbff) {\n // (could change last hex to 0xDB7F to treat high private surrogates\n // as single characters)\n throw new Error('Low surrogate without preceding high surrogate')\n }\n // We can pass over low surrogates now as the second\n // component in a pair which we have already processed\n return false\n }\n return str.charAt(i)\n }\n\n for (i = 0, lgth = 0; i < str.length; i++) {\n if (getWholeChar(str, i) === false) {\n continue\n }\n // Adapt this line at the top of any loop, passing in the whole string and\n // the current iteration and returning a variable to represent the individual character;\n // purpose is to treat the first part of a surrogate pair as the whole character and then\n // ignore the second part\n lgth++\n }\n\n return lgth\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strnatcasecmp.js"],"names":["module","exports","strnatcasecmp","a","b","strnatcmp","require","_phpCastString","arguments","length","toLowerCase"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,aAAT,CAAuBC,CAAvB,EAA0BC,CAA1B,EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,YAAYC,QAAQ,sBAAR,CAAlB;AACA,MAAMC,iBAAiBD,QAAQ,4BAAR,CAAvB;;AAEA,MAAIE,UAAUC,MAAV,KAAqB,CAAzB,EAA4B;AAC1B,WAAO,IAAP;AACD;;AAED,SAAOJ,UAAUE,eAAeJ,CAAf,EAAkBO,WAAlB,EAAV,EAA2CH,eAAeH,CAAf,EAAkBM,WAAlB,EAA3C,CAAP;AACD,CAvBD","file":"strnatcasecmp.js","sourcesContent":["module.exports = function strnatcasecmp(a, b) {\n // discuss at: https://locutus.io/php/strnatcasecmp/\n // original by: Martin Pool\n // reimplemented by: Pierre-Luc Paour\n // reimplemented by: Kristof Coomans (SCK-CEN (Belgian Nucleair Research Centre))\n // reimplemented by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // input by: Devan Penner-Woelk\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // reimplemented by: Rafał Kukawski\n // example 1: strnatcasecmp(10, 1)\n // returns 1: 1\n // example 2: strnatcasecmp('1', '10')\n // returns 2: -1\n\n const strnatcmp = require('../strings/strnatcmp')\n const _phpCastString = require('../_helpers/_phpCastString')\n\n if (arguments.length !== 2) {\n return null\n }\n\n return strnatcmp(_phpCastString(a).toLowerCase(), _phpCastString(b).toLowerCase())\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strnatcmp.js"],"names":["module","exports","strnatcmp","a","b","_phpCastString","require","leadingZeros","whitespace","digit","arguments","length","i","j","replace","test","charAt","ac","bc","aIsDigit","bIsDigit","bias","fractional","iBeforeStrEnd","jBeforeStrEnd"],"mappings":"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","file":"strnatcmp.js","sourcesContent":["module.exports = function strnatcmp(a, b) {\n // discuss at: https://locutus.io/php/strnatcmp/\n // original by: Martijn Wieringa\n // improved by: Michael White (https://getsprink.com)\n // improved by: Jack\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // reimplemented by: Rafał Kukawski\n // example 1: strnatcmp('abc', 'abc')\n // returns 1: 0\n // example 2: strnatcmp('a', 'b')\n // returns 2: -1\n // example 3: strnatcmp('10', '1')\n // returns 3: 1\n // example 4: strnatcmp('0000abc', '0abc')\n // returns 4: 0\n // example 5: strnatcmp('1239', '12345')\n // returns 5: -1\n // example 6: strnatcmp('t01239', 't012345')\n // returns 6: 1\n // example 7: strnatcmp('0A', '5N')\n // returns 7: -1\n\n const _phpCastString = require('../_helpers/_phpCastString')\n\n const leadingZeros = /^0+(?=\\d)/\n const whitespace = /^\\s/\n const digit = /^\\d/\n\n if (arguments.length !== 2) {\n return null\n }\n\n a = _phpCastString(a)\n b = _phpCastString(b)\n\n if (!a.length || !b.length) {\n return a.length - b.length\n }\n\n let i = 0\n let j = 0\n\n a = a.replace(leadingZeros, '')\n b = b.replace(leadingZeros, '')\n\n while (i < a.length && j < b.length) {\n // skip consecutive whitespace\n while (whitespace.test(a.charAt(i))) i++\n while (whitespace.test(b.charAt(j))) j++\n\n let ac = a.charAt(i)\n let bc = b.charAt(j)\n let aIsDigit = digit.test(ac)\n let bIsDigit = digit.test(bc)\n\n if (aIsDigit && bIsDigit) {\n let bias = 0\n const fractional = ac === '0' || bc === '0'\n\n do {\n if (!aIsDigit) {\n return -1\n } else if (!bIsDigit) {\n return 1\n } else if (ac < bc) {\n if (!bias) {\n bias = -1\n }\n\n if (fractional) {\n return -1\n }\n } else if (ac > bc) {\n if (!bias) {\n bias = 1\n }\n\n if (fractional) {\n return 1\n }\n }\n\n ac = a.charAt(++i)\n bc = b.charAt(++j)\n\n aIsDigit = digit.test(ac)\n bIsDigit = digit.test(bc)\n } while (aIsDigit || bIsDigit)\n\n if (!fractional && bias) {\n return bias\n }\n\n continue\n }\n\n if (!ac || !bc) {\n continue\n } else if (ac < bc) {\n return -1\n } else if (ac > bc) {\n return 1\n }\n\n i++\n j++\n }\n\n const iBeforeStrEnd = i < a.length\n const jBeforeStrEnd = j < b.length\n\n // Check which string ended first\n // return -1 if a, 1 if b, 0 otherwise\n return (iBeforeStrEnd > jBeforeStrEnd) - (iBeforeStrEnd < jBeforeStrEnd)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strncasecmp.js"],"names":["module","exports","strncasecmp","argStr1","argStr2","len","diff","i","str1","toLowerCase","substr","str2","length","charCodeAt"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAqBC,OAArB,EAA8BC,OAA9B,EAAuCC,GAAvC,EAA4C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,aAAJ;AACA,MAAIC,IAAI,CAAR;AACA,MAAMC,OAAO,CAACL,UAAU,EAAX,EAAeM,WAAf,GAA6BC,MAA7B,CAAoC,CAApC,EAAuCL,GAAvC,CAAb;AACA,MAAMM,OAAO,CAACP,UAAU,EAAX,EAAeK,WAAf,GAA6BC,MAA7B,CAAoC,CAApC,EAAuCL,GAAvC,CAAb;;AAEA,MAAIG,KAAKI,MAAL,KAAgBD,KAAKC,MAAzB,EAAiC;AAC/B,QAAIJ,KAAKI,MAAL,GAAcD,KAAKC,MAAvB,EAA+B;AAC7BP,YAAMG,KAAKI,MAAX;AACA,UAAID,KAAKD,MAAL,CAAY,CAAZ,EAAeF,KAAKI,MAApB,MAAgCJ,IAApC,EAA0C;AACxC;AACA,eAAOA,KAAKI,MAAL,GAAcD,KAAKC,MAA1B;AACD;AACF,KAND,MAMO;AACLP,YAAMM,KAAKC,MAAX;AACA;AACA,UAAIJ,KAAKE,MAAL,CAAY,CAAZ,EAAeC,KAAKC,MAApB,MAAgCD,IAApC,EAA0C;AACxC;AACA,eAAOH,KAAKI,MAAL,GAAcD,KAAKC,MAA1B;AACD;AACF;AACF,GAfD,MAeO;AACL;AACAP,UAAMG,KAAKI,MAAX;AACD;;AAED,OAAKN,OAAO,CAAP,EAAUC,IAAI,CAAnB,EAAsBA,IAAIF,GAA1B,EAA+BE,GAA/B,EAAoC;AAClCD,WAAOE,KAAKK,UAAL,CAAgBN,CAAhB,IAAqBI,KAAKE,UAAL,CAAgBN,CAAhB,CAA5B;AACA,QAAID,SAAS,CAAb,EAAgB;AACd,aAAOA,IAAP;AACD;AACF;;AAED,SAAO,CAAP;AACD,CAnDD","file":"strncasecmp.js","sourcesContent":["module.exports = function strncasecmp(argStr1, argStr2, len) {\n // discuss at: https://locutus.io/php/strncasecmp/\n // original by: Saulo Vallory\n // input by: Nate\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // note 1: Returns < 0 if str1 is less than str2 ; > 0\n // note 1: if str1 is greater than str2, and 0 if they are equal.\n // example 1: strncasecmp('Price 12.9', 'Price 12.15', 2)\n // returns 1: 0\n // example 2: strncasecmp('Price 12.09', 'Price 12.15', 10)\n // returns 2: -1\n // example 3: strncasecmp('Price 12.90', 'Price 12.15', 30)\n // returns 3: 8\n // example 4: strncasecmp('Version 12.9', 'Version 12.15', 20)\n // returns 4: 8\n // example 5: strncasecmp('Version 12.15', 'Version 12.9', 20)\n // returns 5: -8\n\n let diff\n let i = 0\n const str1 = (argStr1 + '').toLowerCase().substr(0, len)\n const str2 = (argStr2 + '').toLowerCase().substr(0, len)\n\n if (str1.length !== str2.length) {\n if (str1.length < str2.length) {\n len = str1.length\n if (str2.substr(0, str1.length) === str1) {\n // return the difference of chars\n return str1.length - str2.length\n }\n } else {\n len = str2.length\n // str1 is longer than str2\n if (str1.substr(0, str2.length) === str2) {\n // return the difference of chars\n return str1.length - str2.length\n }\n }\n } else {\n // Avoids trying to get a char that does not exist\n len = str1.length\n }\n\n for (diff = 0, i = 0; i < len; i++) {\n diff = str1.charCodeAt(i) - str2.charCodeAt(i)\n if (diff !== 0) {\n return diff\n }\n }\n\n return 0\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strncmp.js"],"names":["module","exports","strncmp","str1","str2","lgth","s1","substr","s2"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,IAAjB,EAAuBC,IAAvB,EAA6BC,IAA7B,EAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,KAAK,CAACH,OAAO,EAAR,EAAYI,MAAZ,CAAmB,CAAnB,EAAsBF,IAAtB,CAAX;AACA,MAAMG,KAAK,CAACJ,OAAO,EAAR,EAAYG,MAAZ,CAAmB,CAAnB,EAAsBF,IAAtB,CAAX;;AAEA,SAAOC,OAAOE,EAAP,GAAY,CAAZ,GAAgBF,KAAKE,EAAL,GAAU,CAAV,GAAc,CAAC,CAAtC;AACD,CAhBD","file":"strncmp.js","sourcesContent":["module.exports = function strncmp(str1, str2, lgth) {\n // discuss at: https://locutus.io/php/strncmp/\n // original by: Waldo Malqui Silva (https://waldo.malqui.info)\n // input by: Steve Hilder\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // revised by: gorthaur\n // reimplemented by: Brett Zamir (https://brett-zamir.me)\n // example 1: strncmp('aaa', 'aab', 2)\n // returns 1: 0\n // example 2: strncmp('aaa', 'aab', 3 )\n // returns 2: -1\n\n const s1 = (str1 + '').substr(0, lgth)\n const s2 = (str2 + '').substr(0, lgth)\n\n return s1 === s2 ? 0 : s1 > s2 ? 1 : -1\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strpbrk.js"],"names":["module","exports","strpbrk","haystack","charList","i","len","length","indexOf","charAt","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2BC,QAA3B,EAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAK,IAAIC,IAAI,CAAR,EAAWC,MAAMH,SAASI,MAA/B,EAAuCF,IAAIC,GAA3C,EAAgD,EAAED,CAAlD,EAAqD;AACnD,QAAID,SAASI,OAAT,CAAiBL,SAASM,MAAT,CAAgBJ,CAAhB,CAAjB,KAAwC,CAA5C,EAA+C;AAC7C,aAAOF,SAASO,KAAT,CAAeL,CAAf,CAAP;AACD;AACF;AACD,SAAO,KAAP;AACD,CAfD","file":"strpbrk.js","sourcesContent":["module.exports = function strpbrk(haystack, charList) {\n // discuss at: https://locutus.io/php/strpbrk/\n // original by: Alfonso Jimenez (https://www.alfonsojimenez.com)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // revised by: Christoph\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: strpbrk('This is a Simple text.', 'is')\n // returns 1: 'is is a Simple text.'\n\n for (let i = 0, len = haystack.length; i < len; ++i) {\n if (charList.indexOf(haystack.charAt(i)) >= 0) {\n return haystack.slice(i)\n }\n }\n return false\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strpos.js"],"names":["module","exports","strpos","haystack","needle","offset","i","indexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,QAAhB,EAA0BC,MAA1B,EAAkCC,MAAlC,EAA0C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,IAAI,CAACH,WAAW,EAAZ,EAAgBI,OAAhB,CAAwBH,MAAxB,EAAgCC,UAAU,CAA1C,CAAV;AACA,SAAOC,MAAM,CAAC,CAAP,GAAW,KAAX,GAAmBA,CAA1B;AACD,CAXD","file":"strpos.js","sourcesContent":["module.exports = function strpos(haystack, needle, offset) {\n // discuss at: https://locutus.io/php/strpos/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Onno Marsman (https://twitter.com/onnomarsman)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Daniel Esteban\n // example 1: strpos('Kevin van Zonneveld', 'e', 5)\n // returns 1: 14\n\n const i = (haystack + '').indexOf(needle, offset || 0)\n return i === -1 ? false : i\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strrchr.js"],"names":["module","exports","strrchr","haystack","needle","pos","String","fromCharCode","parseInt","charAt","lastIndexOf","substr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2BC,MAA3B,EAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,MAAM,CAAV;;AAEA,MAAI,OAAOD,MAAP,KAAkB,QAAtB,EAAgC;AAC9BA,aAASE,OAAOC,YAAP,CAAoBC,SAASJ,MAAT,EAAiB,EAAjB,CAApB,CAAT;AACD;AACDA,WAASA,OAAOK,MAAP,CAAc,CAAd,CAAT;AACAJ,QAAMF,SAASO,WAAT,CAAqBN,MAArB,CAAN;AACA,MAAIC,QAAQ,CAAC,CAAb,EAAgB;AACd,WAAO,KAAP;AACD;;AAED,SAAOF,SAASQ,MAAT,CAAgBN,GAAhB,CAAP;AACD,CApBD","file":"strrchr.js","sourcesContent":["module.exports = function strrchr(haystack, needle) {\n // discuss at: https://locutus.io/php/strrchr/\n // original by: Brett Zamir (https://brett-zamir.me)\n // input by: Jason Wong (https://carrot.org/)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: strrchr(\"Line 1\\nLine 2\\nLine 3\", 10).substr(1)\n // returns 1: 'Line 3'\n\n let pos = 0\n\n if (typeof needle !== 'string') {\n needle = String.fromCharCode(parseInt(needle, 10))\n }\n needle = needle.charAt(0)\n pos = haystack.lastIndexOf(needle)\n if (pos === -1) {\n return false\n }\n\n return haystack.substr(pos)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strrev.js"],"names":["module","exports","strrev","string","chars","graphemeExtend","RegExp","join","replace","split","reverse"],"mappings":"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","file":"strrev.js","sourcesContent":["module.exports = function strrev(string) {\n // discuss at: https://locutus.io/php/strrev/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // reimplemented by: Brett Zamir (https://brett-zamir.me)\n // example 1: strrev('Kevin van Zonneveld')\n // returns 1: 'dlevennoZ nav niveK'\n // example 2: strrev('a\\u0301haB')\n // returns 2: 'Baha\\u0301' // combining\n // example 3: strrev('A\\uD87E\\uDC04Z')\n // returns 3: 'Z\\uD87E\\uDC04A' // surrogates\n // test: 'skip-3'\n\n string = string + ''\n\n // Performance will be enhanced with the next two lines of code commented\n // out if you don't care about combining characters\n // Keep Unicode combining characters together with the character preceding\n // them and which they are modifying (as in PHP 6)\n // See https://unicode.org/reports/tr44/#Property_Table (Me+Mn)\n // We also add the low surrogate range at the beginning here so it will be\n // maintained with its preceding high surrogate\n\n const chars = [\n '\\uDC00-\\uDFFF',\n '\\u0300-\\u036F',\n '\\u0483-\\u0489',\n '\\u0591-\\u05BD',\n '\\u05BF',\n '\\u05C1',\n '\\u05C2',\n '\\u05C4',\n '\\u05C5',\n '\\u05C7',\n '\\u0610-\\u061A',\n '\\u064B-\\u065E',\n '\\u0670',\n '\\u06D6-\\u06DC',\n '\\u06DE-\\u06E4',\n '\\u06E7\\u06E8',\n '\\u06EA-\\u06ED',\n '\\u0711',\n '\\u0730-\\u074A',\n '\\u07A6-\\u07B0',\n '\\u07EB-\\u07F3',\n '\\u0901-\\u0903',\n '\\u093C',\n '\\u093E-\\u094D',\n '\\u0951-\\u0954',\n '\\u0962',\n '\\u0963',\n '\\u0981-\\u0983',\n '\\u09BC',\n '\\u09BE-\\u09C4',\n '\\u09C7',\n '\\u09C8',\n '\\u09CB-\\u09CD',\n '\\u09D7',\n '\\u09E2',\n '\\u09E3',\n '\\u0A01-\\u0A03',\n '\\u0A3C',\n '\\u0A3E-\\u0A42',\n '\\u0A47',\n '\\u0A48',\n '\\u0A4B-\\u0A4D',\n '\\u0A51',\n '\\u0A70',\n '\\u0A71',\n '\\u0A75',\n '\\u0A81-\\u0A83',\n '\\u0ABC',\n '\\u0ABE-\\u0AC5',\n '\\u0AC7-\\u0AC9',\n '\\u0ACB-\\u0ACD',\n '\\u0AE2',\n '\\u0AE3',\n '\\u0B01-\\u0B03',\n '\\u0B3C',\n '\\u0B3E-\\u0B44',\n '\\u0B47',\n '\\u0B48',\n '\\u0B4B-\\u0B4D',\n '\\u0B56',\n '\\u0B57',\n '\\u0B62',\n '\\u0B63',\n '\\u0B82',\n '\\u0BBE-\\u0BC2',\n '\\u0BC6-\\u0BC8',\n '\\u0BCA-\\u0BCD',\n '\\u0BD7',\n '\\u0C01-\\u0C03',\n '\\u0C3E-\\u0C44',\n '\\u0C46-\\u0C48',\n '\\u0C4A-\\u0C4D',\n '\\u0C55',\n '\\u0C56',\n '\\u0C62',\n '\\u0C63',\n '\\u0C82',\n '\\u0C83',\n '\\u0CBC',\n '\\u0CBE-\\u0CC4',\n '\\u0CC6-\\u0CC8',\n '\\u0CCA-\\u0CCD',\n '\\u0CD5',\n '\\u0CD6',\n '\\u0CE2',\n '\\u0CE3',\n '\\u0D02',\n '\\u0D03',\n '\\u0D3E-\\u0D44',\n '\\u0D46-\\u0D48',\n '\\u0D4A-\\u0D4D',\n '\\u0D57',\n '\\u0D62',\n '\\u0D63',\n '\\u0D82',\n '\\u0D83',\n '\\u0DCA',\n '\\u0DCF-\\u0DD4',\n '\\u0DD6',\n '\\u0DD8-\\u0DDF',\n '\\u0DF2',\n '\\u0DF3',\n '\\u0E31',\n '\\u0E34-\\u0E3A',\n '\\u0E47-\\u0E4E',\n '\\u0EB1',\n '\\u0EB4-\\u0EB9',\n '\\u0EBB',\n '\\u0EBC',\n '\\u0EC8-\\u0ECD',\n '\\u0F18',\n '\\u0F19',\n '\\u0F35',\n '\\u0F37',\n '\\u0F39',\n '\\u0F3E',\n '\\u0F3F',\n '\\u0F71-\\u0F84',\n '\\u0F86',\n '\\u0F87',\n '\\u0F90-\\u0F97',\n '\\u0F99-\\u0FBC',\n '\\u0FC6',\n '\\u102B-\\u103E',\n '\\u1056-\\u1059',\n '\\u105E-\\u1060',\n '\\u1062-\\u1064',\n '\\u1067-\\u106D',\n '\\u1071-\\u1074',\n '\\u1082-\\u108D',\n '\\u108F',\n '\\u135F',\n '\\u1712-\\u1714',\n '\\u1732-\\u1734',\n '\\u1752',\n '\\u1753',\n '\\u1772',\n '\\u1773',\n '\\u17B6-\\u17D3',\n '\\u17DD',\n '\\u180B-\\u180D',\n '\\u18A9',\n '\\u1920-\\u192B',\n '\\u1930-\\u193B',\n '\\u19B0-\\u19C0',\n '\\u19C8',\n '\\u19C9',\n '\\u1A17-\\u1A1B',\n '\\u1B00-\\u1B04',\n '\\u1B34-\\u1B44',\n '\\u1B6B-\\u1B73',\n '\\u1B80-\\u1B82',\n '\\u1BA1-\\u1BAA',\n '\\u1C24-\\u1C37',\n '\\u1DC0-\\u1DE6',\n '\\u1DFE',\n '\\u1DFF',\n '\\u20D0-\\u20F0',\n '\\u2DE0-\\u2DFF',\n '\\u302A-\\u302F',\n '\\u3099',\n '\\u309A',\n '\\uA66F-\\uA672',\n '\\uA67C',\n '\\uA67D',\n '\\uA802',\n '\\uA806',\n '\\uA80B',\n '\\uA823-\\uA827',\n '\\uA880',\n '\\uA881',\n '\\uA8B4-\\uA8C4',\n '\\uA926-\\uA92D',\n '\\uA947-\\uA953',\n '\\uAA29-\\uAA36',\n '\\uAA43',\n '\\uAA4C',\n '\\uAA4D',\n '\\uFB1E',\n '\\uFE00-\\uFE0F',\n '\\uFE20-\\uFE26',\n ]\n\n const graphemeExtend = new RegExp('(.)([' + chars.join('') + ']+)', 'g')\n\n // Temporarily reverse\n string = string.replace(graphemeExtend, '$2$1')\n return string.split('').reverse().join('')\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strripos.js"],"names":["module","exports","strripos","haystack","needle","offset","toLowerCase","i","slice","lastIndexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,QAAT,CAAkBC,QAAlB,EAA4BC,MAA5B,EAAoCC,MAApC,EAA4C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAF,aAAW,CAACA,WAAW,EAAZ,EAAgBG,WAAhB,EAAX;AACAF,WAAS,CAACA,SAAS,EAAV,EAAcE,WAAd,EAAT;;AAEA,MAAIC,IAAI,CAAC,CAAT;AACA,MAAIF,MAAJ,EAAY;AACVE,QAAI,CAACJ,WAAW,EAAZ,EAAgBK,KAAhB,CAAsBH,MAAtB,EAA8BI,WAA9B,CAA0CL,MAA1C,CAAJ,CADU,CAC4C;AACtD;AACA,QAAIG,MAAM,CAAC,CAAX,EAAc;AACZA,WAAKF,MAAL;AACD;AACF,GAND,MAMO;AACLE,QAAI,CAACJ,WAAW,EAAZ,EAAgBM,WAAhB,CAA4BL,MAA5B,CAAJ;AACD;AACD,SAAOG,KAAK,CAAL,GAASA,CAAT,GAAa,KAApB;AACD,CAvBD","file":"strripos.js","sourcesContent":["module.exports = function strripos(haystack, needle, offset) {\n // discuss at: https://locutus.io/php/strripos/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // input by: saulius\n // example 1: strripos('Kevin van Zonneveld', 'E')\n // returns 1: 16\n\n haystack = (haystack + '').toLowerCase()\n needle = (needle + '').toLowerCase()\n\n let i = -1\n if (offset) {\n i = (haystack + '').slice(offset).lastIndexOf(needle) // strrpos' offset indicates starting point of range till end,\n // while lastIndexOf's optional 2nd argument indicates ending point of range from the beginning\n if (i !== -1) {\n i += offset\n }\n } else {\n i = (haystack + '').lastIndexOf(needle)\n }\n return i >= 0 ? i : false\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strrpos.js"],"names":["module","exports","strrpos","haystack","needle","offset","i","slice","lastIndexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2BC,MAA3B,EAAmCC,MAAnC,EAA2C;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,IAAI,CAAC,CAAT;AACA,MAAID,MAAJ,EAAY;AACVC,QAAI,CAACH,WAAW,EAAZ,EAAgBI,KAAhB,CAAsBF,MAAtB,EAA8BG,WAA9B,CAA0CJ,MAA1C,CAAJ,CADU,CAC4C;AACtD;AACA,QAAIE,MAAM,CAAC,CAAX,EAAc;AACZA,WAAKD,MAAL;AACD;AACF,GAND,MAMO;AACLC,QAAI,CAACH,WAAW,EAAZ,EAAgBK,WAAhB,CAA4BJ,MAA5B,CAAJ;AACD;AACD,SAAOE,KAAK,CAAL,GAASA,CAAT,GAAa,KAApB;AACD,CA1BD","file":"strrpos.js","sourcesContent":["module.exports = function strrpos(haystack, needle, offset) {\n // discuss at: https://locutus.io/php/strrpos/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // input by: saulius\n // example 1: strrpos('Kevin van Zonneveld', 'e')\n // returns 1: 16\n // example 2: strrpos('somepage.com', '.', false)\n // returns 2: 8\n // example 3: strrpos('baa', 'a', 3)\n // returns 3: false\n // example 4: strrpos('baa', 'a', 2)\n // returns 4: 2\n\n let i = -1\n if (offset) {\n i = (haystack + '').slice(offset).lastIndexOf(needle) // strrpos' offset indicates starting point of range till end,\n // while lastIndexOf's optional 2nd argument indicates ending point of range from the beginning\n if (i !== -1) {\n i += offset\n }\n } else {\n i = (haystack + '').lastIndexOf(needle)\n }\n return i >= 0 ? i : false\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strspn.js"],"names":["module","exports","strspn","str1","str2","start","lgth","found","stri","strj","j","i","length","substr","substring"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,IAAhB,EAAsBC,IAAtB,EAA4BC,KAA5B,EAAmCC,IAAnC,EAAyC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,cAAJ;AACA,MAAIC,aAAJ;AACA,MAAIC,aAAJ;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,CAAR;;AAEAN,UAAQA,QAASA,QAAQ,CAAR,GAAYF,KAAKS,MAAL,GAAcP,KAA1B,GAAkCA,KAA3C,GAAoD,CAA5D;AACAC,SAAOA,OAAQA,OAAO,CAAP,GAAWH,KAAKS,MAAL,GAAcN,IAAd,GAAqBD,KAAhC,GAAwCC,IAAhD,GAAwDH,KAAKS,MAAL,GAAcP,KAA7E;AACAF,SAAOA,KAAKU,MAAL,CAAYR,KAAZ,EAAmBC,IAAnB,CAAP;;AAEA,OAAKK,IAAI,CAAT,EAAYA,IAAIR,KAAKS,MAArB,EAA6BD,GAA7B,EAAkC;AAChCJ,YAAQ,CAAR;AACAC,WAAOL,KAAKW,SAAL,CAAeH,CAAf,EAAkBA,IAAI,CAAtB,CAAP;AACA,SAAKD,IAAI,CAAT,EAAYA,KAAKN,KAAKQ,MAAtB,EAA8BF,GAA9B,EAAmC;AACjCD,aAAOL,KAAKU,SAAL,CAAeJ,CAAf,EAAkBA,IAAI,CAAtB,CAAP;AACA,UAAIF,SAASC,IAAb,EAAmB;AACjBF,gBAAQ,CAAR;AACA;AACD;AACF;AACD,QAAIA,UAAU,CAAd,EAAiB;AACf,aAAOI,CAAP;AACD;AACF;;AAED,SAAOA,CAAP;AACD,CAnCD","file":"strspn.js","sourcesContent":["module.exports = function strspn(str1, str2, start, lgth) {\n // discuss at: https://locutus.io/php/strspn/\n // original by: Valentina De Rosa\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: strspn('42 is the answer, what is the question ...', '1234567890')\n // returns 1: 2\n // example 2: strspn('foo', 'o', 1, 2)\n // returns 2: 2\n\n let found\n let stri\n let strj\n let j = 0\n let i = 0\n\n start = start ? (start < 0 ? str1.length + start : start) : 0\n lgth = lgth ? (lgth < 0 ? str1.length + lgth - start : lgth) : str1.length - start\n str1 = str1.substr(start, lgth)\n\n for (i = 0; i < str1.length; i++) {\n found = 0\n stri = str1.substring(i, i + 1)\n for (j = 0; j <= str2.length; j++) {\n strj = str2.substring(j, j + 1)\n if (stri === strj) {\n found = 1\n break\n }\n }\n if (found !== 1) {\n return i\n }\n }\n\n return i\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strstr.js"],"names":["module","exports","strstr","haystack","needle","bool","pos","indexOf","substr","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,QAAhB,EAA0BC,MAA1B,EAAkCC,IAAlC,EAAwC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,MAAM,CAAV;;AAEAH,cAAY,EAAZ;AACAG,QAAMH,SAASI,OAAT,CAAiBH,MAAjB,CAAN;AACA,MAAIE,QAAQ,CAAC,CAAb,EAAgB;AACd,WAAO,KAAP;AACD,GAFD,MAEO;AACL,QAAID,IAAJ,EAAU;AACR,aAAOF,SAASK,MAAT,CAAgB,CAAhB,EAAmBF,GAAnB,CAAP;AACD,KAFD,MAEO;AACL,aAAOH,SAASM,KAAT,CAAeH,GAAf,CAAP;AACD;AACF;AACF,CA3BD","file":"strstr.js","sourcesContent":["module.exports = function strstr(haystack, needle, bool) {\n // discuss at: https://locutus.io/php/strstr/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // example 1: strstr('Kevin van Zonneveld', 'van')\n // returns 1: 'van Zonneveld'\n // example 2: strstr('Kevin van Zonneveld', 'van', true)\n // returns 2: 'Kevin '\n // example 3: strstr('name@example.com', '@')\n // returns 3: '@example.com'\n // example 4: strstr('name@example.com', '@', true)\n // returns 4: 'name'\n\n let pos = 0\n\n haystack += ''\n pos = haystack.indexOf(needle)\n if (pos === -1) {\n return false\n } else {\n if (bool) {\n return haystack.substr(0, pos)\n } else {\n return haystack.slice(pos)\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/php/strings/strtok.js"],"names":["module","exports","strtok","str","tokens","$global","window","global","$locutus","php","undefined","strtokleftOver","length","indexOf","charAt","substr","i","substring"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,GAAhB,EAAqBC,MAArB,EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,UAAU,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAzD;AACAF,UAAQG,QAAR,GAAmBH,QAAQG,QAAR,IAAoB,EAAvC;AACA,MAAMA,WAAWH,QAAQG,QAAzB;AACAA,WAASC,GAAT,GAAeD,SAASC,GAAT,IAAgB,EAA/B;;AAEA,MAAIL,WAAWM,SAAf,EAA0B;AACxBN,aAASD,GAAT;AACAA,UAAMK,SAASC,GAAT,CAAaE,cAAnB;AACD;AACD,MAAIR,IAAIS,MAAJ,KAAe,CAAnB,EAAsB;AACpB,WAAO,KAAP;AACD;AACD,MAAIR,OAAOS,OAAP,CAAeV,IAAIW,MAAJ,CAAW,CAAX,CAAf,MAAkC,CAAC,CAAvC,EAA0C;AACxC,WAAOZ,OAAOC,IAAIY,MAAJ,CAAW,CAAX,CAAP,EAAsBX,MAAtB,CAAP;AACD;AACD,OAAK,IAAIY,IAAI,CAAb,EAAgBA,IAAIb,IAAIS,MAAxB,EAAgCI,GAAhC,EAAqC;AACnC,QAAIZ,OAAOS,OAAP,CAAeV,IAAIW,MAAJ,CAAWE,CAAX,CAAf,MAAkC,CAAC,CAAvC,EAA0C;AACxC;AACD;AACF;AACDR,WAASC,GAAT,CAAaE,cAAb,GAA8BR,IAAIY,MAAJ,CAAWC,IAAI,CAAf,CAA9B;;AAEA,SAAOb,IAAIc,SAAJ,CAAc,CAAd,EAAiBD,CAAjB,CAAP;AACD,CAlCD","file":"strtok.js","sourcesContent":["module.exports = function strtok(str, tokens) {\n // discuss at: https://locutus.io/php/strtok/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: Use tab and newline as tokenizing characters as well\n // example 1: var $string = \"\\t\\t\\t\\nThis is\\tan example\\nstring\\n\"\n // example 1: var $tok = strtok($string, \" \\n\\t\")\n // example 1: var $b = ''\n // example 1: while ($tok !== false) {$b += \"Word=\"+$tok+\"\\n\"; $tok = strtok(\" \\n\\t\");}\n // example 1: var $result = $b\n // returns 1: \"Word=This\\nWord=is\\nWord=an\\nWord=example\\nWord=string\\n\"\n\n const $global = typeof window !== 'undefined' ? window : global\n $global.$locutus = $global.$locutus || {}\n const $locutus = $global.$locutus\n $locutus.php = $locutus.php || {}\n\n if (tokens === undefined) {\n tokens = str\n str = $locutus.php.strtokleftOver\n }\n if (str.length === 0) {\n return false\n }\n if (tokens.indexOf(str.charAt(0)) !== -1) {\n return strtok(str.substr(1), tokens)\n }\n for (var i = 0; i < str.length; i++) {\n if (tokens.indexOf(str.charAt(i)) !== -1) {\n break\n }\n }\n $locutus.php.strtokleftOver = str.substr(i + 1)\n\n return str.substring(0, i)\n}\n"]}