locutus 2.0.15 → 2.0.29

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 (526) hide show
  1. package/_util/util.js +13 -13
  2. package/_util/util.js.map +1 -1
  3. package/c/math/abs.js.map +1 -1
  4. package/c/math/frexp.js.map +1 -1
  5. package/c/stdio/sprintf.js +1 -1
  6. package/c/stdio/sprintf.js.map +1 -1
  7. package/golang/strings/Contains.js.map +1 -1
  8. package/golang/strings/Count.js.map +1 -1
  9. package/golang/strings/Index2.js.map +1 -1
  10. package/golang/strings/LastIndex.js.map +1 -1
  11. package/package.json +62 -59
  12. package/php/_helpers/_bc.js +2 -3
  13. package/php/_helpers/_bc.js.map +1 -1
  14. package/php/_helpers/_phpCastString.js.map +1 -1
  15. package/php/_helpers/_php_cast_float.js +0 -1
  16. package/php/_helpers/_php_cast_float.js.map +1 -1
  17. package/php/_helpers/_php_cast_int.js +0 -1
  18. package/php/_helpers/_php_cast_int.js.map +1 -1
  19. package/php/array/array_change_key_case.js +0 -1
  20. package/php/array/array_change_key_case.js.map +1 -1
  21. package/php/array/array_chunk.js +6 -5
  22. package/php/array/array_chunk.js.map +1 -1
  23. package/php/array/array_column.js +1 -1
  24. package/php/array/array_column.js.map +1 -1
  25. package/php/array/array_combine.js +0 -1
  26. package/php/array/array_combine.js.map +1 -1
  27. package/php/array/array_count_values.js +0 -1
  28. package/php/array/array_count_values.js.map +1 -1
  29. package/php/array/array_diff.js +0 -2
  30. package/php/array/array_diff.js.map +1 -1
  31. package/php/array/array_diff_assoc.js +0 -2
  32. package/php/array/array_diff_assoc.js.map +1 -1
  33. package/php/array/array_diff_key.js +0 -2
  34. package/php/array/array_diff_key.js.map +1 -1
  35. package/php/array/array_diff_uassoc.js +0 -2
  36. package/php/array/array_diff_uassoc.js.map +1 -1
  37. package/php/array/array_diff_ukey.js +0 -2
  38. package/php/array/array_diff_ukey.js.map +1 -1
  39. package/php/array/array_fill.js +0 -1
  40. package/php/array/array_fill.js.map +1 -1
  41. package/php/array/array_fill_keys.js +0 -1
  42. package/php/array/array_fill_keys.js.map +1 -1
  43. package/php/array/array_filter.js +0 -1
  44. package/php/array/array_filter.js.map +1 -1
  45. package/php/array/array_flip.js +0 -1
  46. package/php/array/array_flip.js.map +1 -1
  47. package/php/array/array_intersect.js +0 -3
  48. package/php/array/array_intersect.js.map +1 -1
  49. package/php/array/array_intersect_assoc.js +0 -3
  50. package/php/array/array_intersect_assoc.js.map +1 -1
  51. package/php/array/array_intersect_key.js +0 -3
  52. package/php/array/array_intersect_key.js.map +1 -1
  53. package/php/array/array_intersect_uassoc.js +0 -3
  54. package/php/array/array_intersect_uassoc.js.map +1 -1
  55. package/php/array/array_intersect_ukey.js +0 -3
  56. package/php/array/array_intersect_ukey.js.map +1 -1
  57. package/php/array/array_key_exists.js +0 -1
  58. package/php/array/array_key_exists.js.map +1 -1
  59. package/php/array/array_keys.js +0 -1
  60. package/php/array/array_keys.js.map +1 -1
  61. package/php/array/array_map.js +0 -1
  62. package/php/array/array_map.js.map +1 -1
  63. package/php/array/array_merge.js +0 -1
  64. package/php/array/array_merge.js.map +1 -1
  65. package/php/array/array_merge_recursive.js +0 -1
  66. package/php/array/array_merge_recursive.js.map +1 -1
  67. package/php/array/array_multisort.js +0 -1
  68. package/php/array/array_multisort.js.map +1 -1
  69. package/php/array/array_pad.js +0 -1
  70. package/php/array/array_pad.js.map +1 -1
  71. package/php/array/array_pop.js +0 -1
  72. package/php/array/array_pop.js.map +1 -1
  73. package/php/array/array_product.js +0 -1
  74. package/php/array/array_product.js.map +1 -1
  75. package/php/array/array_push.js +0 -1
  76. package/php/array/array_push.js.map +1 -1
  77. package/php/array/array_rand.js +0 -1
  78. package/php/array/array_rand.js.map +1 -1
  79. package/php/array/array_reduce.js +0 -1
  80. package/php/array/array_reduce.js.map +1 -1
  81. package/php/array/array_replace.js +0 -1
  82. package/php/array/array_replace.js.map +1 -1
  83. package/php/array/array_replace_recursive.js +0 -1
  84. package/php/array/array_replace_recursive.js.map +1 -1
  85. package/php/array/array_reverse.js +0 -1
  86. package/php/array/array_reverse.js.map +1 -1
  87. package/php/array/array_search.js +1 -2
  88. package/php/array/array_search.js.map +1 -1
  89. package/php/array/array_shift.js +0 -20
  90. package/php/array/array_shift.js.map +1 -1
  91. package/php/array/array_slice.js +2 -2
  92. package/php/array/array_slice.js.map +1 -1
  93. package/php/array/array_splice.js +0 -1
  94. package/php/array/array_splice.js.map +1 -1
  95. package/php/array/array_sum.js +0 -1
  96. package/php/array/array_sum.js.map +1 -1
  97. package/php/array/array_udiff.js +0 -3
  98. package/php/array/array_udiff.js.map +1 -1
  99. package/php/array/array_udiff_assoc.js +0 -2
  100. package/php/array/array_udiff_assoc.js.map +1 -1
  101. package/php/array/array_udiff_uassoc.js +0 -2
  102. package/php/array/array_udiff_uassoc.js.map +1 -1
  103. package/php/array/array_uintersect.js +0 -3
  104. package/php/array/array_uintersect.js.map +1 -1
  105. package/php/array/array_uintersect_uassoc.js +0 -3
  106. package/php/array/array_uintersect_uassoc.js.map +1 -1
  107. package/php/array/array_unique.js +0 -1
  108. package/php/array/array_unique.js.map +1 -1
  109. package/php/array/array_unshift.js +0 -1
  110. package/php/array/array_unshift.js.map +1 -1
  111. package/php/array/array_values.js +0 -1
  112. package/php/array/array_values.js.map +1 -1
  113. package/php/array/array_walk.js +0 -1
  114. package/php/array/array_walk.js.map +1 -1
  115. package/php/array/array_walk_recursive.js +0 -1
  116. package/php/array/array_walk_recursive.js.map +1 -1
  117. package/php/array/arsort.js.map +1 -1
  118. package/php/array/asort.js.map +1 -1
  119. package/php/array/count.js.map +1 -1
  120. package/php/array/current.js.map +1 -1
  121. package/php/array/each.js.map +1 -1
  122. package/php/array/end.js.map +1 -1
  123. package/php/array/in_array.js +1 -2
  124. package/php/array/in_array.js.map +1 -1
  125. package/php/array/key.js.map +1 -1
  126. package/php/array/krsort.js.map +1 -1
  127. package/php/array/ksort.js.map +1 -1
  128. package/php/array/natcasesort.js.map +1 -1
  129. package/php/array/natsort.js.map +1 -1
  130. package/php/array/next.js.map +1 -1
  131. package/php/array/pos.js.map +1 -1
  132. package/php/array/prev.js.map +1 -1
  133. package/php/array/range.js.map +1 -1
  134. package/php/array/reset.js.map +1 -1
  135. package/php/array/rsort.js.map +1 -1
  136. package/php/array/shuffle.js.map +1 -1
  137. package/php/array/sizeof.js.map +1 -1
  138. package/php/array/sort.js.map +1 -1
  139. package/php/array/uasort.js.map +1 -1
  140. package/php/array/uksort.js.map +1 -1
  141. package/php/array/usort.js.map +1 -1
  142. package/php/bc/bcadd.js.map +1 -1
  143. package/php/bc/bccomp.js.map +1 -1
  144. package/php/bc/bcdiv.js.map +1 -1
  145. package/php/bc/bcmul.js.map +1 -1
  146. package/php/bc/bcround.js.map +1 -1
  147. package/php/bc/bcscale.js.map +1 -1
  148. package/php/bc/bcsub.js.map +1 -1
  149. package/php/ctype/ctype_alnum.js +0 -1
  150. package/php/ctype/ctype_alnum.js.map +1 -1
  151. package/php/ctype/ctype_alpha.js +0 -1
  152. package/php/ctype/ctype_alpha.js.map +1 -1
  153. package/php/ctype/ctype_cntrl.js +0 -1
  154. package/php/ctype/ctype_cntrl.js.map +1 -1
  155. package/php/ctype/ctype_digit.js +0 -1
  156. package/php/ctype/ctype_digit.js.map +1 -1
  157. package/php/ctype/ctype_graph.js +0 -1
  158. package/php/ctype/ctype_graph.js.map +1 -1
  159. package/php/ctype/ctype_lower.js +0 -1
  160. package/php/ctype/ctype_lower.js.map +1 -1
  161. package/php/ctype/ctype_print.js +0 -1
  162. package/php/ctype/ctype_print.js.map +1 -1
  163. package/php/ctype/ctype_punct.js +0 -1
  164. package/php/ctype/ctype_punct.js.map +1 -1
  165. package/php/ctype/ctype_space.js +0 -1
  166. package/php/ctype/ctype_space.js.map +1 -1
  167. package/php/ctype/ctype_upper.js +0 -1
  168. package/php/ctype/ctype_upper.js.map +1 -1
  169. package/php/ctype/ctype_xdigit.js +0 -1
  170. package/php/ctype/ctype_xdigit.js.map +1 -1
  171. package/php/datetime/checkdate.js.map +1 -1
  172. package/php/datetime/date.js +1 -2
  173. package/php/datetime/date.js.map +1 -1
  174. package/php/datetime/date_parse.js +0 -1
  175. package/php/datetime/date_parse.js.map +1 -1
  176. package/php/datetime/getdate.js +1 -2
  177. package/php/datetime/getdate.js.map +1 -1
  178. package/php/datetime/gettimeofday.js.map +1 -1
  179. package/php/datetime/gmdate.js.map +1 -1
  180. package/php/datetime/gmmktime.js.map +1 -1
  181. package/php/datetime/gmstrftime.js.map +1 -1
  182. package/php/datetime/idate.js.map +1 -1
  183. package/php/datetime/microtime.js +1 -1
  184. package/php/datetime/microtime.js.map +1 -1
  185. package/php/datetime/mktime.js.map +1 -1
  186. package/php/datetime/strftime.js +2 -3
  187. package/php/datetime/strftime.js.map +1 -1
  188. package/php/datetime/strptime.js +19 -20
  189. package/php/datetime/strptime.js.map +1 -1
  190. package/php/datetime/strtotime.js +28 -14
  191. package/php/datetime/strtotime.js.map +1 -1
  192. package/php/datetime/time.js.map +1 -1
  193. package/php/exec/escapeshellarg.js +1 -1
  194. package/php/exec/escapeshellarg.js.map +1 -1
  195. package/php/filesystem/basename.js.map +1 -1
  196. package/php/filesystem/dirname.js.map +1 -1
  197. package/php/filesystem/file_get_contents.js +0 -1
  198. package/php/filesystem/file_get_contents.js.map +1 -1
  199. package/php/filesystem/pathinfo.js +2 -3
  200. package/php/filesystem/pathinfo.js.map +1 -1
  201. package/php/filesystem/realpath.js.map +1 -1
  202. package/php/funchand/call_user_func.js +0 -1
  203. package/php/funchand/call_user_func.js.map +1 -1
  204. package/php/funchand/call_user_func_array.js +0 -1
  205. package/php/funchand/call_user_func_array.js.map +1 -1
  206. package/php/funchand/create_function.js +0 -1
  207. package/php/funchand/create_function.js.map +1 -1
  208. package/php/funchand/function_exists.js +0 -1
  209. package/php/funchand/function_exists.js.map +1 -1
  210. package/php/funchand/get_defined_functions.js +0 -1
  211. package/php/funchand/get_defined_functions.js.map +1 -1
  212. package/php/i18n/i18n_loc_get_default.js +0 -1
  213. package/php/i18n/i18n_loc_get_default.js.map +1 -1
  214. package/php/i18n/i18n_loc_set_default.js +0 -1
  215. package/php/i18n/i18n_loc_set_default.js.map +1 -1
  216. package/php/info/assert_options.js +0 -1
  217. package/php/info/assert_options.js.map +1 -1
  218. package/php/info/getenv.js.map +1 -1
  219. package/php/info/ini_get.js +0 -1
  220. package/php/info/ini_get.js.map +1 -1
  221. package/php/info/ini_set.js +0 -1
  222. package/php/info/ini_set.js.map +1 -1
  223. package/php/info/set_time_limit.js +0 -1
  224. package/php/info/set_time_limit.js.map +1 -1
  225. package/php/info/version_compare.js +10 -12
  226. package/php/info/version_compare.js.map +1 -1
  227. package/php/json/json_decode.js +0 -1
  228. package/php/json/json_decode.js.map +1 -1
  229. package/php/json/json_encode.js +0 -1
  230. package/php/json/json_encode.js.map +1 -1
  231. package/php/json/json_last_error.js +0 -1
  232. package/php/json/json_last_error.js.map +1 -1
  233. package/php/math/abs.js.map +1 -1
  234. package/php/math/acos.js.map +1 -1
  235. package/php/math/acosh.js.map +1 -1
  236. package/php/math/asin.js.map +1 -1
  237. package/php/math/asinh.js.map +1 -1
  238. package/php/math/atan.js.map +1 -1
  239. package/php/math/atan2.js.map +1 -1
  240. package/php/math/atanh.js.map +1 -1
  241. package/php/math/base_convert.js +0 -1
  242. package/php/math/base_convert.js.map +1 -1
  243. package/php/math/bindec.js.map +1 -1
  244. package/php/math/ceil.js.map +1 -1
  245. package/php/math/cos.js.map +1 -1
  246. package/php/math/cosh.js.map +1 -1
  247. package/php/math/decbin.js +1 -1
  248. package/php/math/decbin.js.map +1 -1
  249. package/php/math/dechex.js +1 -1
  250. package/php/math/dechex.js.map +1 -1
  251. package/php/math/decoct.js +1 -1
  252. package/php/math/decoct.js.map +1 -1
  253. package/php/math/deg2rad.js.map +1 -1
  254. package/php/math/exp.js.map +1 -1
  255. package/php/math/expm1.js.map +1 -1
  256. package/php/math/floor.js.map +1 -1
  257. package/php/math/fmod.js.map +1 -1
  258. package/php/math/getrandmax.js.map +1 -1
  259. package/php/math/hexdec.js.map +1 -1
  260. package/php/math/hypot.js.map +1 -1
  261. package/php/math/is_finite.js +0 -1
  262. package/php/math/is_finite.js.map +1 -1
  263. package/php/math/is_infinite.js +0 -1
  264. package/php/math/is_infinite.js.map +1 -1
  265. package/php/math/is_nan.js +0 -1
  266. package/php/math/is_nan.js.map +1 -1
  267. package/php/math/lcg_value.js +0 -1
  268. package/php/math/lcg_value.js.map +1 -1
  269. package/php/math/log.js.map +1 -1
  270. package/php/math/log10.js.map +1 -1
  271. package/php/math/log1p.js.map +1 -1
  272. package/php/math/max.js.map +1 -1
  273. package/php/math/min.js.map +1 -1
  274. package/php/math/mt_getrandmax.js +0 -1
  275. package/php/math/mt_getrandmax.js.map +1 -1
  276. package/php/math/mt_rand.js +0 -1
  277. package/php/math/mt_rand.js.map +1 -1
  278. package/php/math/octdec.js.map +1 -1
  279. package/php/math/pi.js.map +1 -1
  280. package/php/math/pow.js.map +1 -1
  281. package/php/math/rad2deg.js.map +1 -1
  282. package/php/math/rand.js.map +1 -1
  283. package/php/math/round.js.map +1 -1
  284. package/php/math/sin.js.map +1 -1
  285. package/php/math/sinh.js.map +1 -1
  286. package/php/math/sqrt.js.map +1 -1
  287. package/php/math/tan.js.map +1 -1
  288. package/php/math/tanh.js.map +1 -1
  289. package/php/misc/pack.js +15 -15
  290. package/php/misc/pack.js.map +1 -1
  291. package/php/misc/uniqid.js.map +1 -1
  292. package/php/net-gopher/gopher_parsedir.js +2 -4
  293. package/php/net-gopher/gopher_parsedir.js.map +1 -1
  294. package/php/network/inet_ntop.js +0 -1
  295. package/php/network/inet_ntop.js.map +1 -1
  296. package/php/network/inet_pton.js +1 -2
  297. package/php/network/inet_pton.js.map +1 -1
  298. package/php/network/ip2long.js.map +1 -1
  299. package/php/network/long2ip.js +1 -1
  300. package/php/network/long2ip.js.map +1 -1
  301. package/php/network/setcookie.js.map +1 -1
  302. package/php/network/setrawcookie.js.map +1 -1
  303. package/php/pcre/preg_match.js +0 -1
  304. package/php/pcre/preg_match.js.map +1 -1
  305. package/php/pcre/preg_quote.js +0 -1
  306. package/php/pcre/preg_quote.js.map +1 -1
  307. package/php/pcre/preg_replace.js +0 -1
  308. package/php/pcre/preg_replace.js.map +1 -1
  309. package/php/pcre/sql_regcase.js +0 -1
  310. package/php/pcre/sql_regcase.js.map +1 -1
  311. package/php/strings/addcslashes.js.map +1 -1
  312. package/php/strings/addslashes.js.map +1 -1
  313. package/php/strings/bin2hex.js.map +1 -1
  314. package/php/strings/chop.js.map +1 -1
  315. package/php/strings/chr.js +2 -2
  316. package/php/strings/chr.js.map +1 -1
  317. package/php/strings/chunk_split.js +0 -1
  318. package/php/strings/chunk_split.js.map +1 -1
  319. package/php/strings/convert_cyr_string.js +0 -1
  320. package/php/strings/convert_cyr_string.js.map +1 -1
  321. package/php/strings/convert_uuencode.js +0 -1
  322. package/php/strings/convert_uuencode.js.map +1 -1
  323. package/php/strings/count_chars.js +0 -1
  324. package/php/strings/count_chars.js.map +1 -1
  325. package/php/strings/crc32.js +1 -1
  326. package/php/strings/crc32.js.map +1 -1
  327. package/php/strings/echo.js.map +1 -1
  328. package/php/strings/explode.js.map +1 -1
  329. package/php/strings/get_html_translation_table.js +0 -1
  330. package/php/strings/get_html_translation_table.js.map +1 -1
  331. package/php/strings/hex2bin.js.map +1 -1
  332. package/php/strings/html_entity_decode.js +0 -1
  333. package/php/strings/html_entity_decode.js.map +1 -1
  334. package/php/strings/htmlentities.js.map +1 -1
  335. package/php/strings/htmlspecialchars.js.map +1 -1
  336. package/php/strings/htmlspecialchars_decode.js +0 -1
  337. package/php/strings/htmlspecialchars_decode.js.map +1 -1
  338. package/php/strings/implode.js.map +1 -1
  339. package/php/strings/join.js.map +1 -1
  340. package/php/strings/lcfirst.js.map +1 -1
  341. package/php/strings/levenshtein.js.map +1 -1
  342. package/php/strings/localeconv.js.map +1 -1
  343. package/php/strings/ltrim.js.map +1 -1
  344. package/php/strings/md5.js +67 -67
  345. package/php/strings/md5.js.map +1 -1
  346. package/php/strings/md5_file.js +0 -1
  347. package/php/strings/md5_file.js.map +1 -1
  348. package/php/strings/metaphone.js +1 -1
  349. package/php/strings/metaphone.js.map +1 -1
  350. package/php/strings/money_format.js +0 -1
  351. package/php/strings/money_format.js.map +1 -1
  352. package/php/strings/nl2br.js.map +1 -1
  353. package/php/strings/nl_langinfo.js +0 -1
  354. package/php/strings/nl_langinfo.js.map +1 -1
  355. package/php/strings/number_format.js +0 -1
  356. package/php/strings/number_format.js.map +1 -1
  357. package/php/strings/ord.js +3 -3
  358. package/php/strings/ord.js.map +1 -1
  359. package/php/strings/parse_str.js +0 -1
  360. package/php/strings/parse_str.js.map +1 -1
  361. package/php/strings/printf.js.map +1 -1
  362. package/php/strings/quoted_printable_decode.js +0 -1
  363. package/php/strings/quoted_printable_decode.js.map +1 -1
  364. package/php/strings/quoted_printable_encode.js +0 -1
  365. package/php/strings/quoted_printable_encode.js.map +1 -1
  366. package/php/strings/quotemeta.js.map +1 -1
  367. package/php/strings/rtrim.js.map +1 -1
  368. package/php/strings/setlocale.js +2 -3
  369. package/php/strings/setlocale.js.map +1 -1
  370. package/php/strings/sha1.js +7 -7
  371. package/php/strings/sha1.js.map +1 -1
  372. package/php/strings/sha1_file.js +0 -1
  373. package/php/strings/sha1_file.js.map +1 -1
  374. package/php/strings/similar_text.js +1 -2
  375. package/php/strings/similar_text.js.map +1 -1
  376. package/php/strings/soundex.js.map +1 -1
  377. package/php/strings/split.js.map +1 -1
  378. package/php/strings/sprintf.js.map +1 -1
  379. package/php/strings/sscanf.js +1 -1
  380. package/php/strings/sscanf.js.map +1 -1
  381. package/php/strings/str_getcsv.js +0 -1
  382. package/php/strings/str_getcsv.js.map +1 -1
  383. package/php/strings/str_ireplace.js +0 -1
  384. package/php/strings/str_ireplace.js.map +1 -1
  385. package/php/strings/str_pad.js +0 -1
  386. package/php/strings/str_pad.js.map +1 -1
  387. package/php/strings/str_repeat.js +0 -1
  388. package/php/strings/str_repeat.js.map +1 -1
  389. package/php/strings/str_replace.js +0 -1
  390. package/php/strings/str_replace.js.map +1 -1
  391. package/php/strings/str_rot13.js +0 -1
  392. package/php/strings/str_rot13.js.map +1 -1
  393. package/php/strings/str_shuffle.js +0 -1
  394. package/php/strings/str_shuffle.js.map +1 -1
  395. package/php/strings/str_split.js +0 -1
  396. package/php/strings/str_split.js.map +1 -1
  397. package/php/strings/str_word_count.js +4 -5
  398. package/php/strings/str_word_count.js.map +1 -1
  399. package/php/strings/strcasecmp.js.map +1 -1
  400. package/php/strings/strchr.js.map +1 -1
  401. package/php/strings/strcmp.js.map +1 -1
  402. package/php/strings/strcoll.js.map +1 -1
  403. package/php/strings/strcspn.js.map +1 -1
  404. package/php/strings/strip_tags.js +0 -1
  405. package/php/strings/strip_tags.js.map +1 -1
  406. package/php/strings/stripos.js.map +1 -1
  407. package/php/strings/stripslashes.js.map +1 -1
  408. package/php/strings/stristr.js.map +1 -1
  409. package/php/strings/strlen.js +4 -4
  410. package/php/strings/strlen.js.map +1 -1
  411. package/php/strings/strnatcasecmp.js.map +1 -1
  412. package/php/strings/strnatcmp.js.map +1 -1
  413. package/php/strings/strncasecmp.js.map +1 -1
  414. package/php/strings/strncmp.js.map +1 -1
  415. package/php/strings/strpbrk.js.map +1 -1
  416. package/php/strings/strpos.js.map +1 -1
  417. package/php/strings/strrchr.js.map +1 -1
  418. package/php/strings/strrev.js.map +1 -1
  419. package/php/strings/strripos.js.map +1 -1
  420. package/php/strings/strrpos.js.map +1 -1
  421. package/php/strings/strspn.js.map +1 -1
  422. package/php/strings/strstr.js.map +1 -1
  423. package/php/strings/strtok.js.map +1 -1
  424. package/php/strings/strtolower.js.map +1 -1
  425. package/php/strings/strtoupper.js.map +1 -1
  426. package/php/strings/strtr.js.map +1 -1
  427. package/php/strings/substr.js.map +1 -1
  428. package/php/strings/substr_compare.js +0 -1
  429. package/php/strings/substr_compare.js.map +1 -1
  430. package/php/strings/substr_count.js +0 -1
  431. package/php/strings/substr_count.js.map +1 -1
  432. package/php/strings/substr_replace.js +0 -1
  433. package/php/strings/substr_replace.js.map +1 -1
  434. package/php/strings/trim.js.map +1 -1
  435. package/php/strings/ucfirst.js.map +1 -1
  436. package/php/strings/ucwords.js.map +1 -1
  437. package/php/strings/vprintf.js.map +1 -1
  438. package/php/strings/vsprintf.js.map +1 -1
  439. package/php/strings/wordwrap.js.map +1 -1
  440. package/php/url/base64_decode.js +0 -1
  441. package/php/url/base64_decode.js.map +1 -1
  442. package/php/url/base64_encode.js +0 -1
  443. package/php/url/base64_encode.js.map +1 -1
  444. package/php/url/http_build_query.js +0 -1
  445. package/php/url/http_build_query.js.map +1 -1
  446. package/php/url/parse_url.js +0 -1
  447. package/php/url/parse_url.js.map +1 -1
  448. package/php/url/rawurldecode.js.map +1 -1
  449. package/php/url/rawurlencode.js.map +1 -1
  450. package/php/url/urldecode.js.map +1 -1
  451. package/php/url/urlencode.js.map +1 -1
  452. package/php/var/boolval.js.map +1 -1
  453. package/php/var/doubleval.js.map +1 -1
  454. package/php/var/empty.js.map +1 -1
  455. package/php/var/floatval.js.map +1 -1
  456. package/php/var/gettype.js.map +1 -1
  457. package/php/var/intval.js.map +1 -1
  458. package/php/var/is_array.js +0 -1
  459. package/php/var/is_array.js.map +1 -1
  460. package/php/var/is_binary.js +0 -1
  461. package/php/var/is_binary.js.map +1 -1
  462. package/php/var/is_bool.js +0 -1
  463. package/php/var/is_bool.js.map +1 -1
  464. package/php/var/is_buffer.js +0 -1
  465. package/php/var/is_buffer.js.map +1 -1
  466. package/php/var/is_callable.js +1 -2
  467. package/php/var/is_callable.js.map +1 -1
  468. package/php/var/is_double.js +0 -1
  469. package/php/var/is_double.js.map +1 -1
  470. package/php/var/is_float.js +0 -1
  471. package/php/var/is_float.js.map +1 -1
  472. package/php/var/is_int.js +0 -1
  473. package/php/var/is_int.js.map +1 -1
  474. package/php/var/is_integer.js +0 -1
  475. package/php/var/is_integer.js.map +1 -1
  476. package/php/var/is_long.js +0 -1
  477. package/php/var/is_long.js.map +1 -1
  478. package/php/var/is_null.js +0 -1
  479. package/php/var/is_null.js.map +1 -1
  480. package/php/var/is_numeric.js +0 -1
  481. package/php/var/is_numeric.js.map +1 -1
  482. package/php/var/is_object.js +0 -1
  483. package/php/var/is_object.js.map +1 -1
  484. package/php/var/is_real.js +0 -1
  485. package/php/var/is_real.js.map +1 -1
  486. package/php/var/is_scalar.js +0 -1
  487. package/php/var/is_scalar.js.map +1 -1
  488. package/php/var/is_string.js +0 -1
  489. package/php/var/is_string.js.map +1 -1
  490. package/php/var/is_unicode.js +0 -1
  491. package/php/var/is_unicode.js.map +1 -1
  492. package/php/var/isset.js.map +1 -1
  493. package/php/var/print_r.js +0 -1
  494. package/php/var/print_r.js.map +1 -1
  495. package/php/var/serialize.js.map +1 -1
  496. package/php/var/strval.js.map +1 -1
  497. package/php/var/unserialize.js +12 -16
  498. package/php/var/unserialize.js.map +1 -1
  499. package/php/var/var_dump.js +0 -1
  500. package/php/var/var_dump.js.map +1 -1
  501. package/php/var/var_export.js +1 -2
  502. package/php/var/var_export.js.map +1 -1
  503. package/php/xdiff/xdiff_string_diff.js +0 -1
  504. package/php/xdiff/xdiff_string_diff.js.map +1 -1
  505. package/php/xdiff/xdiff_string_patch.js +2 -4
  506. package/php/xdiff/xdiff_string_patch.js.map +1 -1
  507. package/php/xml/utf8_decode.js +10 -11
  508. package/php/xml/utf8_decode.js.map +1 -1
  509. package/php/xml/utf8_encode.js +4 -5
  510. package/php/xml/utf8_encode.js.map +1 -1
  511. package/python/string/ascii_letters.js +0 -1
  512. package/python/string/ascii_letters.js.map +1 -1
  513. package/python/string/ascii_lowercase.js +0 -1
  514. package/python/string/ascii_lowercase.js.map +1 -1
  515. package/python/string/ascii_uppercase.js +0 -1
  516. package/python/string/ascii_uppercase.js.map +1 -1
  517. package/python/string/capwords.js.map +1 -1
  518. package/python/string/index.js +1 -0
  519. package/python/string/index.js.map +1 -1
  520. package/python/string/punctuation.js +10 -0
  521. package/python/string/punctuation.js.map +1 -0
  522. package/ruby/Math/acos.js.map +1 -1
  523. package/php/_locutus_shared/_locutus_shared_bc.js +0 -1255
  524. package/php/_locutus_shared/_locutus_shared_bc.js.map +0 -1
  525. package/php/_locutus_shared/index.js +0 -4
  526. package/php/_locutus_shared/index.js.map +0 -1
package/php/var/is_int.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  module.exports = function is_int(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_int/
6
5
  // original by: Alex
7
6
  // improved by: Kevin van Zonneveld (https://kvz.io)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_int.js"],"names":["module","exports","is_int","mixedVar","isFinite"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAiBC,QAAjB,EAA2B;AAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOA,aAAa,CAACA,QAAd,IAA0BC,SAASD,QAAT,CAA1B,IAAgD,EAAEA,WAAW,CAAb,CAAvD;AACD,CApBD","file":"is_int.js","sourcesContent":["module.exports = function is_int (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_int/\n // original by: Alex\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: WebDevHobo (https://webdevhobo.blogspot.com/)\n // improved by: Rafał Kukawski (https://blog.kukawski.pl)\n // revised by: Matt Bradley\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_int(23)\n // returns 1: true\n // example 2: is_int('23')\n // returns 2: false\n // example 3: is_int(23.5)\n // returns 3: false\n // example 4: is_int(true)\n // returns 4: false\n\n return mixedVar === +mixedVar && isFinite(mixedVar) && !(mixedVar % 1)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_int.js"],"names":["module","exports","is_int","mixedVar","isFinite"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,QAAhB,EAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOA,aAAa,CAACA,QAAd,IAA0BC,SAASD,QAAT,CAA1B,IAAgD,EAAEA,WAAW,CAAb,CAAvD;AACD,CApBD","file":"is_int.js","sourcesContent":["module.exports = function is_int(mixedVar) {\n // discuss at: https://locutus.io/php/is_int/\n // original by: Alex\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: WebDevHobo (https://webdevhobo.blogspot.com/)\n // improved by: Rafał Kukawski (https://blog.kukawski.pl)\n // revised by: Matt Bradley\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_int(23)\n // returns 1: true\n // example 2: is_int('23')\n // returns 2: false\n // example 3: is_int(23.5)\n // returns 3: false\n // example 4: is_int(true)\n // returns 4: false\n\n return mixedVar === +mixedVar && isFinite(mixedVar) && !(mixedVar % 1)\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = function is_integer(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_integer/
6
5
  // original by: Paulo Freitas
7
6
  // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_integer.js"],"names":["module","exports","is_integer","mixedVar","_isInt","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAqBC,QAArB,EAA+B;AAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAASC,QAAQ,eAAR,CAAf;AACA,SAAOD,OAAOD,QAAP,CAAP;AACD,CAZD","file":"is_integer.js","sourcesContent":["module.exports = function is_integer (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_integer/\n // original by: Paulo Freitas\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_integer(186.31)\n // returns 1: false\n // example 2: is_integer(12)\n // returns 2: true\n\n const _isInt = require('../var/is_int')\n return _isInt(mixedVar)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_integer.js"],"names":["module","exports","is_integer","mixedVar","_isInt","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,QAApB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAASC,QAAQ,eAAR,CAAf;AACA,SAAOD,OAAOD,QAAP,CAAP;AACD,CAZD","file":"is_integer.js","sourcesContent":["module.exports = function is_integer(mixedVar) {\n // discuss at: https://locutus.io/php/is_integer/\n // original by: Paulo Freitas\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_integer(186.31)\n // returns 1: false\n // example 2: is_integer(12)\n // returns 2: true\n\n const _isInt = require('../var/is_int')\n return _isInt(mixedVar)\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = function is_long(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_long/
6
5
  // original by: Paulo Freitas
7
6
  // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_long.js"],"names":["module","exports","is_long","mixedVar","_isFloat","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAkBC,QAAlB,EAA4B;AAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAWC,QAAQ,iBAAR,CAAjB;AACA,SAAOD,SAASD,QAAT,CAAP;AACD,CAVD","file":"is_long.js","sourcesContent":["module.exports = function is_long (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_long/\n // original by: Paulo Freitas\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_long(186.31)\n // returns 1: true\n\n const _isFloat = require('../var/is_float')\n return _isFloat(mixedVar)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_long.js"],"names":["module","exports","is_long","mixedVar","_isFloat","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAWC,QAAQ,iBAAR,CAAjB;AACA,SAAOD,SAASD,QAAT,CAAP;AACD,CAVD","file":"is_long.js","sourcesContent":["module.exports = function is_long(mixedVar) {\n // discuss at: https://locutus.io/php/is_long/\n // original by: Paulo Freitas\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_long(186.31)\n // returns 1: true\n\n const _isFloat = require('../var/is_float')\n return _isFloat(mixedVar)\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  module.exports = function is_null(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_null/
6
5
  // original by: Kevin van Zonneveld (https://kvz.io)
7
6
  // example 1: is_null('23')
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_null.js"],"names":["module","exports","is_null","mixedVar"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAkBC,QAAlB,EAA4B;AAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQA,aAAa,IAArB;AACD,CATD","file":"is_null.js","sourcesContent":["module.exports = function is_null (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_null/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: is_null('23')\n // returns 1: false\n // example 2: is_null(null)\n // returns 2: true\n\n return (mixedVar === null)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_null.js"],"names":["module","exports","is_null","mixedVar"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOA,aAAa,IAApB;AACD,CATD","file":"is_null.js","sourcesContent":["module.exports = function is_null(mixedVar) {\n // discuss at: https://locutus.io/php/is_null/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: is_null('23')\n // returns 1: false\n // example 2: is_null(null)\n // returns 2: true\n\n return mixedVar === null\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = function is_numeric(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_numeric/
6
5
  // original by: Kevin van Zonneveld (https://kvz.io)
7
6
  // improved by: David
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_numeric.js"],"names":["module","exports","is_numeric","mixedVar","whitespace","join","indexOf","slice","isNaN"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAqBC,QAArB,EAA+B;AAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,aAAa,CACjB,GADiB,EAEjB,IAFiB,EAGjB,IAHiB,EAIjB,IAJiB,EAKjB,IALiB,EAMjB,MANiB,EAOjB,MAPiB,EAQjB,QARiB,EASjB,QATiB,EAUjB,QAViB,EAWjB,QAXiB,EAYjB,QAZiB,EAajB,QAbiB,EAcjB,QAdiB,EAejB,QAfiB,EAgBjB,QAhBiB,EAiBjB,QAjBiB,EAkBjB,QAlBiB,EAmBjB,QAnBiB,EAoBjB,QApBiB,EAqBjB,QArBiB,EAsBjB,QAtBiB,EAuBjBC,IAvBiB,CAuBZ,EAvBY,CAAnB;;AAyBA;AACA,SAAO,CAAC,OAAOF,QAAP,KAAoB,QAApB,IACL,OAAOA,QAAP,KAAoB,QAApB,IACDC,WAAWE,OAAX,CAAmBH,SAASI,KAAT,CAAe,CAAC,CAAhB,CAAnB,MAA2C,CAAC,CAFvC,KAGLJ,aAAa,EAHR,IAIL,CAACK,MAAML,QAAN,CAJH;AAKD,CArDD","file":"is_numeric.js","sourcesContent":["module.exports = function is_numeric (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_numeric/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: David\n // improved by: taith\n // bugfixed by: Tim de Koning\n // bugfixed by: WebDevHobo (https://webdevhobo.blogspot.com/)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Denis Chenu (https://shnoulle.net)\n // example 1: is_numeric(186.31)\n // returns 1: true\n // example 2: is_numeric('Kevin van Zonneveld')\n // returns 2: false\n // example 3: is_numeric(' +186.31e2')\n // returns 3: true\n // example 4: is_numeric('')\n // returns 4: false\n // example 5: is_numeric([])\n // returns 5: false\n // example 6: is_numeric('1 ')\n // returns 6: false\n\n const whitespace = [\n ' ',\n '\\n',\n '\\r',\n '\\t',\n '\\f',\n '\\x0b',\n '\\xa0',\n '\\u2000',\n '\\u2001',\n '\\u2002',\n '\\u2003',\n '\\u2004',\n '\\u2005',\n '\\u2006',\n '\\u2007',\n '\\u2008',\n '\\u2009',\n '\\u200a',\n '\\u200b',\n '\\u2028',\n '\\u2029',\n '\\u3000'\n ].join('')\n\n // @todo: Break this up using many single conditions with early returns\n return (typeof mixedVar === 'number' ||\n (typeof mixedVar === 'string' &&\n whitespace.indexOf(mixedVar.slice(-1)) === -1)) &&\n mixedVar !== '' &&\n !isNaN(mixedVar)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_numeric.js"],"names":["module","exports","is_numeric","mixedVar","whitespace","join","indexOf","slice","isNaN"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,QAApB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,aAAa,CACjB,GADiB,EAEjB,IAFiB,EAGjB,IAHiB,EAIjB,IAJiB,EAKjB,IALiB,EAMjB,MANiB,EAOjB,MAPiB,EAQjB,QARiB,EASjB,QATiB,EAUjB,QAViB,EAWjB,QAXiB,EAYjB,QAZiB,EAajB,QAbiB,EAcjB,QAdiB,EAejB,QAfiB,EAgBjB,QAhBiB,EAiBjB,QAjBiB,EAkBjB,QAlBiB,EAmBjB,QAnBiB,EAoBjB,QApBiB,EAqBjB,QArBiB,EAsBjB,QAtBiB,EAuBjBC,IAvBiB,CAuBZ,EAvBY,CAAnB;;AAyBA;AACA,SACE,CAAC,OAAOF,QAAP,KAAoB,QAApB,IAAiC,OAAOA,QAAP,KAAoB,QAApB,IAAgCC,WAAWE,OAAX,CAAmBH,SAASI,KAAT,CAAe,CAAC,CAAhB,CAAnB,MAA2C,CAAC,CAA9G,KACAJ,aAAa,EADb,IAEA,CAACK,MAAML,QAAN,CAHH;AAKD,CArDD","file":"is_numeric.js","sourcesContent":["module.exports = function is_numeric(mixedVar) {\n // discuss at: https://locutus.io/php/is_numeric/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: David\n // improved by: taith\n // bugfixed by: Tim de Koning\n // bugfixed by: WebDevHobo (https://webdevhobo.blogspot.com/)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Denis Chenu (https://shnoulle.net)\n // example 1: is_numeric(186.31)\n // returns 1: true\n // example 2: is_numeric('Kevin van Zonneveld')\n // returns 2: false\n // example 3: is_numeric(' +186.31e2')\n // returns 3: true\n // example 4: is_numeric('')\n // returns 4: false\n // example 5: is_numeric([])\n // returns 5: false\n // example 6: is_numeric('1 ')\n // returns 6: false\n\n const whitespace = [\n ' ',\n '\\n',\n '\\r',\n '\\t',\n '\\f',\n '\\x0b',\n '\\xa0',\n '\\u2000',\n '\\u2001',\n '\\u2002',\n '\\u2003',\n '\\u2004',\n '\\u2005',\n '\\u2006',\n '\\u2007',\n '\\u2008',\n '\\u2009',\n '\\u200a',\n '\\u200b',\n '\\u2028',\n '\\u2029',\n '\\u3000',\n ].join('')\n\n // @todo: Break this up using many single conditions with early returns\n return (\n (typeof mixedVar === 'number' || (typeof mixedVar === 'string' && whitespace.indexOf(mixedVar.slice(-1)) === -1)) &&\n mixedVar !== '' &&\n !isNaN(mixedVar)\n )\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
4
 
5
5
  module.exports = function is_object(mixedVar) {
6
- // eslint-disable-line camelcase
7
6
  // discuss at: https://locutus.io/php/is_object/
8
7
  // original by: Kevin van Zonneveld (https://kvz.io)
9
8
  // improved by: Legaev Andrey
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_object.js"],"names":["module","exports","is_object","mixedVar","Object","prototype","toString","call"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAoBC,QAApB,EAA8B;AAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,QAA/B,MAA6C,gBAAjD,EAAmE;AACjE,WAAO,KAAP;AACD;AACD,SAAOA,aAAa,IAAb,IAAqB,QAAOA,QAAP,yCAAOA,QAAP,OAAoB,QAAhD;AACD,CAhBD","file":"is_object.js","sourcesContent":["module.exports = function is_object (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_object/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Legaev Andrey\n // improved by: Michael White (https://getsprink.com)\n // example 1: is_object('23')\n // returns 1: false\n // example 2: is_object({foo: 'bar'})\n // returns 2: true\n // example 3: is_object(null)\n // returns 3: false\n\n if (Object.prototype.toString.call(mixedVar) === '[object Array]') {\n return false\n }\n return mixedVar !== null && typeof mixedVar === 'object'\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_object.js"],"names":["module","exports","is_object","mixedVar","Object","prototype","toString","call"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,QAAnB,EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,QAA/B,MAA6C,gBAAjD,EAAmE;AACjE,WAAO,KAAP;AACD;AACD,SAAOA,aAAa,IAAb,IAAqB,QAAOA,QAAP,yCAAOA,QAAP,OAAoB,QAAhD;AACD,CAhBD","file":"is_object.js","sourcesContent":["module.exports = function is_object(mixedVar) {\n // discuss at: https://locutus.io/php/is_object/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Legaev Andrey\n // improved by: Michael White (https://getsprink.com)\n // example 1: is_object('23')\n // returns 1: false\n // example 2: is_object({foo: 'bar'})\n // returns 2: true\n // example 3: is_object(null)\n // returns 3: false\n\n if (Object.prototype.toString.call(mixedVar) === '[object Array]') {\n return false\n }\n return mixedVar !== null && typeof mixedVar === 'object'\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = function is_real(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_real/
6
5
  // original by: Brett Zamir (https://brett-zamir.me)
7
6
  // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_real.js"],"names":["module","exports","is_real","mixedVar","_isFloat","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAkBC,QAAlB,EAA4B;AAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAWC,QAAQ,iBAAR,CAAjB;AACA,SAAOD,SAASD,QAAT,CAAP;AACD,CAVD","file":"is_real.js","sourcesContent":["module.exports = function is_real (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_real/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_real(186.31)\n // returns 1: true\n\n const _isFloat = require('../var/is_float')\n return _isFloat(mixedVar)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_real.js"],"names":["module","exports","is_real","mixedVar","_isFloat","require"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,QAAjB,EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAWC,QAAQ,iBAAR,CAAjB;AACA,SAAOD,SAASD,QAAT,CAAP;AACD,CAVD","file":"is_real.js","sourcesContent":["module.exports = function is_real(mixedVar) {\n // discuss at: https://locutus.io/php/is_real/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n // note 1: it different from the PHP implementation. We can't fix this unfortunately.\n // example 1: is_real(186.31)\n // returns 1: true\n\n const _isFloat = require('../var/is_float')\n return _isFloat(mixedVar)\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
4
 
5
5
  module.exports = function is_scalar(mixedVar) {
6
- // eslint-disable-line camelcase
7
6
  // discuss at: https://locutus.io/php/is_scalar/
8
7
  // original by: Paulo Freitas
9
8
  // example 1: is_scalar(186.31)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_scalar.js"],"names":["module","exports","is_scalar","mixedVar","test"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAoBC,QAApB,EAA8B;AAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,wBAAD,CAA0BC,IAA1B,QAAsCD,QAAtC,yCAAsCA,QAAtC;AAAP;AACD,CATD","file":"is_scalar.js","sourcesContent":["module.exports = function is_scalar (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_scalar/\n // original by: Paulo Freitas\n // example 1: is_scalar(186.31)\n // returns 1: true\n // example 2: is_scalar({0: 'Kevin van Zonneveld'})\n // returns 2: false\n\n return (/boolean|number|string/).test(typeof mixedVar)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_scalar.js"],"names":["module","exports","is_scalar","mixedVar","test"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,QAAnB,EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAO,yBAAwBC,IAAxB,QAAoCD,QAApC,yCAAoCA,QAApC;AAAP;AACD,CATD","file":"is_scalar.js","sourcesContent":["module.exports = function is_scalar(mixedVar) {\n // discuss at: https://locutus.io/php/is_scalar/\n // original by: Paulo Freitas\n // example 1: is_scalar(186.31)\n // returns 1: true\n // example 2: is_scalar({0: 'Kevin van Zonneveld'})\n // returns 2: false\n\n return /boolean|number|string/.test(typeof mixedVar)\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = function is_string(mixedVar) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_string/
6
5
  // original by: Kevin van Zonneveld (https://kvz.io)
7
6
  // example 1: is_string('23')
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_string.js"],"names":["module","exports","is_string","mixedVar"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAoBC,QAApB,EAA8B;AAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,OAAOA,QAAP,KAAoB,QAA5B;AACD,CATD","file":"is_string.js","sourcesContent":["module.exports = function is_string (mixedVar) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_string/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: is_string('23')\n // returns 1: true\n // example 2: is_string(23.5)\n // returns 2: false\n\n return (typeof mixedVar === 'string')\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_string.js"],"names":["module","exports","is_string","mixedVar"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,QAAnB,EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAO,OAAOA,QAAP,KAAoB,QAA3B;AACD,CATD","file":"is_string.js","sourcesContent":["module.exports = function is_string(mixedVar) {\n // discuss at: https://locutus.io/php/is_string/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: is_string('23')\n // returns 1: true\n // example 2: is_string(23.5)\n // returns 2: false\n\n return typeof mixedVar === 'string'\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = function is_unicode(vr) {
4
- // eslint-disable-line camelcase
5
4
  // discuss at: https://locutus.io/php/is_unicode/
6
5
  // original by: Brett Zamir (https://brett-zamir.me)
7
6
  // note 1: Almost all strings in JavaScript should be Unicode
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/is_unicode.js"],"names":["module","exports","is_unicode","vr","arr","highSurrogate","lowSurrogate","highSurrogateBeforeAny","RegExp","lowSurrogateAfterAny","singleLowSurrogate","singleHighSurrogate","exec","match"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAqBC,EAArB,EAAyB;AAAE;AAC1C;AACA;AACA;AACA;AACA;;AAEA,MAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAO,KAAP;AACD;;AAED;AACA,MAAIC,MAAM,EAAV;AACA,MAAMC,gBAAgB,iBAAtB;AACA,MAAMC,eAAe,iBAArB;AACA,MAAMC,yBAAyB,IAAIC,MAAJ,CAAWH,gBAAgB,YAA3B,EAAyC,GAAzC,CAA/B;AACA,MAAMI,uBAAuB,IAAID,MAAJ,CAAW,eAAeF,YAA1B,EAAwC,GAAxC,CAA7B;AACA,MAAMI,qBAAqB,IAAIF,MAAJ,CAAW,MAAMF,YAAN,GAAqB,GAAhC,CAA3B;AACA,MAAMK,sBAAsB,IAAIH,MAAJ,CAAW,MAAMH,aAAN,GAAsB,GAAjC,CAA5B;;AAEA,SAAO,CAACD,MAAMG,uBAAuBK,IAAvB,CAA4BT,EAA5B,CAAP,MAA4C,IAAnD,EAAyD;AACvD,QAAI,CAACC,IAAI,CAAJ,CAAD,IAAW,CAACA,IAAI,CAAJ,EAAOS,KAAP,CAAaH,kBAAb,CAAhB,EAAkD;AAChD;AACA,aAAO,KAAP;AACD;AACF;AACD,SAAO,CAACN,MAAMK,qBAAqBG,IAArB,CAA0BT,EAA1B,CAAP,MAA0C,IAAjD,EAAuD;AACrD,QAAI,CAACC,IAAI,CAAJ,CAAD,IAAW,CAACA,IAAI,CAAJ,EAAOS,KAAP,CAAaF,mBAAb,CAAhB,EAAmD;AACjD;AACA,aAAO,KAAP;AACD;AACF;;AAED,SAAO,IAAP;AACD,CAlCD","file":"is_unicode.js","sourcesContent":["module.exports = function is_unicode (vr) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/is_unicode/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: Almost all strings in JavaScript should be Unicode\n // example 1: is_unicode('We the peoples of the United Nations...!')\n // returns 1: true\n\n if (typeof vr !== 'string') {\n return false\n }\n\n // If surrogates occur outside of high-low pairs, then this is not Unicode\n let arr = []\n const highSurrogate = '[\\uD800-\\uDBFF]'\n const lowSurrogate = '[\\uDC00-\\uDFFF]'\n const highSurrogateBeforeAny = new RegExp(highSurrogate + '([\\\\s\\\\S])', 'g')\n const lowSurrogateAfterAny = new RegExp('([\\\\s\\\\S])' + lowSurrogate, 'g')\n const singleLowSurrogate = new RegExp('^' + lowSurrogate + '$')\n const singleHighSurrogate = new RegExp('^' + highSurrogate + '$')\n\n while ((arr = highSurrogateBeforeAny.exec(vr)) !== null) {\n if (!arr[1] || !arr[1].match(singleLowSurrogate)) {\n // If high not followed by low surrogate\n return false\n }\n }\n while ((arr = lowSurrogateAfterAny.exec(vr)) !== null) {\n if (!arr[1] || !arr[1].match(singleHighSurrogate)) {\n // If low not preceded by high surrogate\n return false\n }\n }\n\n return true\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/is_unicode.js"],"names":["module","exports","is_unicode","vr","arr","highSurrogate","lowSurrogate","highSurrogateBeforeAny","RegExp","lowSurrogateAfterAny","singleLowSurrogate","singleHighSurrogate","exec","match"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,EAApB,EAAwB;AACvC;AACA;AACA;AACA;AACA;;AAEA,MAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAO,KAAP;AACD;;AAED;AACA,MAAIC,MAAM,EAAV;AACA,MAAMC,gBAAgB,iBAAtB;AACA,MAAMC,eAAe,iBAArB;AACA,MAAMC,yBAAyB,IAAIC,MAAJ,CAAWH,gBAAgB,YAA3B,EAAyC,GAAzC,CAA/B;AACA,MAAMI,uBAAuB,IAAID,MAAJ,CAAW,eAAeF,YAA1B,EAAwC,GAAxC,CAA7B;AACA,MAAMI,qBAAqB,IAAIF,MAAJ,CAAW,MAAMF,YAAN,GAAqB,GAAhC,CAA3B;AACA,MAAMK,sBAAsB,IAAIH,MAAJ,CAAW,MAAMH,aAAN,GAAsB,GAAjC,CAA5B;;AAEA,SAAO,CAACD,MAAMG,uBAAuBK,IAAvB,CAA4BT,EAA5B,CAAP,MAA4C,IAAnD,EAAyD;AACvD,QAAI,CAACC,IAAI,CAAJ,CAAD,IAAW,CAACA,IAAI,CAAJ,EAAOS,KAAP,CAAaH,kBAAb,CAAhB,EAAkD;AAChD;AACA,aAAO,KAAP;AACD;AACF;AACD,SAAO,CAACN,MAAMK,qBAAqBG,IAArB,CAA0BT,EAA1B,CAAP,MAA0C,IAAjD,EAAuD;AACrD,QAAI,CAACC,IAAI,CAAJ,CAAD,IAAW,CAACA,IAAI,CAAJ,EAAOS,KAAP,CAAaF,mBAAb,CAAhB,EAAmD;AACjD;AACA,aAAO,KAAP;AACD;AACF;;AAED,SAAO,IAAP;AACD,CAlCD","file":"is_unicode.js","sourcesContent":["module.exports = function is_unicode(vr) {\n // discuss at: https://locutus.io/php/is_unicode/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: Almost all strings in JavaScript should be Unicode\n // example 1: is_unicode('We the peoples of the United Nations...!')\n // returns 1: true\n\n if (typeof vr !== 'string') {\n return false\n }\n\n // If surrogates occur outside of high-low pairs, then this is not Unicode\n let arr = []\n const highSurrogate = '[\\uD800-\\uDBFF]'\n const lowSurrogate = '[\\uDC00-\\uDFFF]'\n const highSurrogateBeforeAny = new RegExp(highSurrogate + '([\\\\s\\\\S])', 'g')\n const lowSurrogateAfterAny = new RegExp('([\\\\s\\\\S])' + lowSurrogate, 'g')\n const singleLowSurrogate = new RegExp('^' + lowSurrogate + '$')\n const singleHighSurrogate = new RegExp('^' + highSurrogate + '$')\n\n while ((arr = highSurrogateBeforeAny.exec(vr)) !== null) {\n if (!arr[1] || !arr[1].match(singleLowSurrogate)) {\n // If high not followed by low surrogate\n return false\n }\n }\n while ((arr = lowSurrogateAfterAny.exec(vr)) !== null) {\n if (!arr[1] || !arr[1].match(singleHighSurrogate)) {\n // If low not preceded by high surrogate\n return false\n }\n }\n\n return true\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/isset.js"],"names":["module","exports","isset","a","arguments","l","length","i","undef","Error"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,GAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,IAAIC,SAAV;AACA,MAAMC,IAAIF,EAAEG,MAAZ;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,cAAJ;;AAEA,MAAIH,MAAM,CAAV,EAAa;AACX,UAAM,IAAII,KAAJ,CAAU,aAAV,CAAN;AACD;;AAED,SAAOF,MAAMF,CAAb,EAAgB;AACd,QAAIF,EAAEI,CAAF,MAASC,KAAT,IAAkBL,EAAEI,CAAF,MAAS,IAA/B,EAAqC;AACnC,aAAO,KAAP;AACD;AACDA;AACD;;AAED,SAAO,IAAP;AACD,CA5BD","file":"isset.js","sourcesContent":["module.exports = function isset () {\n // discuss at: https://locutus.io/php/isset/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: FremyCompany\n // improved by: Onno Marsman (https://twitter.com/onnomarsman)\n // improved by: Rafał Kukawski (https://blog.kukawski.pl)\n // example 1: isset( undefined, true)\n // returns 1: false\n // example 2: isset( 'Kevin van Zonneveld' )\n // returns 2: true\n\n const a = arguments\n const l = a.length\n let i = 0\n let undef\n\n if (l === 0) {\n throw new Error('Empty isset')\n }\n\n while (i !== l) {\n if (a[i] === undef || a[i] === null) {\n return false\n }\n i++\n }\n\n return true\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/isset.js"],"names":["module","exports","isset","a","arguments","l","length","i","undef","Error"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,GAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,IAAIC,SAAV;AACA,MAAMC,IAAIF,EAAEG,MAAZ;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,cAAJ;;AAEA,MAAIH,MAAM,CAAV,EAAa;AACX,UAAM,IAAII,KAAJ,CAAU,aAAV,CAAN;AACD;;AAED,SAAOF,MAAMF,CAAb,EAAgB;AACd,QAAIF,EAAEI,CAAF,MAASC,KAAT,IAAkBL,EAAEI,CAAF,MAAS,IAA/B,EAAqC;AACnC,aAAO,KAAP;AACD;AACDA;AACD;;AAED,SAAO,IAAP;AACD,CA5BD","file":"isset.js","sourcesContent":["module.exports = function isset() {\n // discuss at: https://locutus.io/php/isset/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: FremyCompany\n // improved by: Onno Marsman (https://twitter.com/onnomarsman)\n // improved by: Rafał Kukawski (https://blog.kukawski.pl)\n // example 1: isset( undefined, true)\n // returns 1: false\n // example 2: isset( 'Kevin van Zonneveld' )\n // returns 2: true\n\n const a = arguments\n const l = a.length\n let i = 0\n let undef\n\n if (l === 0) {\n throw new Error('Empty isset')\n }\n\n while (i !== l) {\n if (a[i] === undef || a[i] === null) {\n return false\n }\n i++\n }\n\n return true\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
4
 
5
5
  module.exports = function print_r(array, returnVal) {
6
- // eslint-disable-line camelcase
7
6
  // discuss at: https://locutus.io/php/print_r/
8
7
  // original by: Michael White (https://getsprink.com)
9
8
  // improved by: Ben Bryan
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/print_r.js"],"names":["module","exports","print_r","array","returnVal","echo","require","output","padChar","padVal","_repeatChar","len","str","i","_formatArray","obj","curDepth","basePad","thickPad","constructor","key","Object","prototype","toString","call","undefined"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAkBC,KAAlB,EAAyBC,SAAzB,EAAoC;AAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,OAAOC,QAAQ,iBAAR,CAAb;;AAEA,MAAIC,SAAS,EAAb;AACA,MAAMC,UAAU,GAAhB;AACA,MAAMC,SAAS,CAAf;;AAEA,MAAMC,cAAc,SAAdA,WAAc,CAAUC,GAAV,EAAeH,OAAf,EAAwB;AAC1C,QAAII,MAAM,EAAV;AACA,SAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,GAApB,EAAyBE,GAAzB,EAA8B;AAC5BD,aAAOJ,OAAP;AACD;AACD,WAAOI,GAAP;AACD,GAND;AAOA,MAAIE,eAAe,SAAfA,YAAe,CAAUC,GAAV,EAAeC,QAAf,EAAyBP,MAAzB,EAAiCD,OAAjC,EAA0C;AAC3D,QAAIQ,WAAW,CAAf,EAAkB;AAChBA;AACD;;AAED,QAAMC,UAAUP,YAAYD,SAASO,QAArB,EAA+BR,OAA/B,CAAhB;AACA,QAAMU,WAAWR,YAAYD,UAAUO,WAAW,CAArB,CAAZ,EAAqCR,OAArC,CAAjB;AACA,QAAII,MAAM,EAAV;;AAEA,QAAI,QAAOG,GAAP,yCAAOA,GAAP,OAAe,QAAf,IACFA,QAAQ,IADN,IAEFA,IAAII,WAFN,EAEmB;AACjBP,aAAO,YAAYK,OAAZ,GAAsB,KAA7B;AACA,WAAK,IAAMG,GAAX,IAAkBL,GAAlB,EAAuB;AACrB,YAAIM,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BT,IAAIK,GAAJ,CAA/B,MAA6C,gBAAjD,EAAmE;AACjER,iBAAOM,QAAP;AACAN,iBAAO,GAAP;AACAA,iBAAOQ,GAAP;AACAR,iBAAO,OAAP;AACAA,iBAAOE,aAAaC,IAAIK,GAAJ,CAAb,EAAuBJ,WAAW,CAAlC,EAAqCP,MAArC,EAA6CD,OAA7C,CAAP;AACD,SAND,MAMO;AACLI,iBAAOM,QAAP;AACAN,iBAAO,GAAP;AACAA,iBAAOQ,GAAP;AACAR,iBAAO,OAAP;AACAA,iBAAOG,IAAIK,GAAJ,CAAP;AACAR,iBAAO,IAAP;AACD;AACF;AACDA,aAAOK,UAAU,KAAjB;AACD,KArBD,MAqBO,IAAIF,QAAQ,IAAR,IAAgBA,QAAQU,SAA5B,EAAuC;AAC5Cb,YAAM,EAAN;AACD,KAFM,MAEA;AACL;AACAA,YAAMG,IAAIQ,QAAJ,EAAN;AACD;;AAED,WAAOX,GAAP;AACD,GAtCD;;AAwCAL,WAASO,aAAaX,KAAb,EAAoB,CAApB,EAAuBM,MAAvB,EAA+BD,OAA/B,CAAT;;AAEA,MAAIJ,cAAc,IAAlB,EAAwB;AACtBC,SAAKE,MAAL;AACA,WAAO,IAAP;AACD;AACD,SAAOA,MAAP;AACD,CAtED","file":"print_r.js","sourcesContent":["module.exports = function print_r (array, returnVal) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/print_r/\n // original by: Michael White (https://getsprink.com)\n // improved by: Ben Bryan\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // input by: Brett Zamir (https://brett-zamir.me)\n // example 1: print_r(1, true)\n // returns 1: '1'\n\n const echo = require('../strings/echo')\n\n let output = ''\n const padChar = ' '\n const padVal = 4\n\n const _repeatChar = function (len, padChar) {\n let str = ''\n for (let i = 0; i < len; i++) {\n str += padChar\n }\n return str\n }\n var _formatArray = function (obj, curDepth, padVal, padChar) {\n if (curDepth > 0) {\n curDepth++\n }\n\n const basePad = _repeatChar(padVal * curDepth, padChar)\n const thickPad = _repeatChar(padVal * (curDepth + 1), padChar)\n let str = ''\n\n if (typeof obj === 'object' &&\n obj !== null &&\n obj.constructor) {\n str += 'Array\\n' + basePad + '(\\n'\n for (const key in obj) {\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n str += thickPad\n str += '['\n str += key\n str += '] => '\n str += _formatArray(obj[key], curDepth + 1, padVal, padChar)\n } else {\n str += thickPad\n str += '['\n str += key\n str += '] => '\n str += obj[key]\n str += '\\n'\n }\n }\n str += basePad + ')\\n'\n } else if (obj === null || obj === undefined) {\n str = ''\n } else {\n // for our \"resource\" class\n str = obj.toString()\n }\n\n return str\n }\n\n output = _formatArray(array, 0, padVal, padChar)\n\n if (returnVal !== true) {\n echo(output)\n return true\n }\n return output\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/print_r.js"],"names":["module","exports","print_r","array","returnVal","echo","require","output","padChar","padVal","_repeatChar","len","str","i","_formatArray","obj","curDepth","basePad","thickPad","constructor","key","Object","prototype","toString","call","undefined"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAiBC,KAAjB,EAAwBC,SAAxB,EAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,OAAOC,QAAQ,iBAAR,CAAb;;AAEA,MAAIC,SAAS,EAAb;AACA,MAAMC,UAAU,GAAhB;AACA,MAAMC,SAAS,CAAf;;AAEA,MAAMC,cAAc,SAAdA,WAAc,CAAUC,GAAV,EAAeH,OAAf,EAAwB;AAC1C,QAAII,MAAM,EAAV;AACA,SAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,GAApB,EAAyBE,GAAzB,EAA8B;AAC5BD,aAAOJ,OAAP;AACD;AACD,WAAOI,GAAP;AACD,GAND;AAOA,MAAME,eAAe,SAAfA,YAAe,CAAUC,GAAV,EAAeC,QAAf,EAAyBP,MAAzB,EAAiCD,OAAjC,EAA0C;AAC7D,QAAIQ,WAAW,CAAf,EAAkB;AAChBA;AACD;;AAED,QAAMC,UAAUP,YAAYD,SAASO,QAArB,EAA+BR,OAA/B,CAAhB;AACA,QAAMU,WAAWR,YAAYD,UAAUO,WAAW,CAArB,CAAZ,EAAqCR,OAArC,CAAjB;AACA,QAAII,MAAM,EAAV;;AAEA,QAAI,QAAOG,GAAP,yCAAOA,GAAP,OAAe,QAAf,IAA2BA,QAAQ,IAAnC,IAA2CA,IAAII,WAAnD,EAAgE;AAC9DP,aAAO,YAAYK,OAAZ,GAAsB,KAA7B;AACA,WAAK,IAAMG,GAAX,IAAkBL,GAAlB,EAAuB;AACrB,YAAIM,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BT,IAAIK,GAAJ,CAA/B,MAA6C,gBAAjD,EAAmE;AACjER,iBAAOM,QAAP;AACAN,iBAAO,GAAP;AACAA,iBAAOQ,GAAP;AACAR,iBAAO,OAAP;AACAA,iBAAOE,aAAaC,IAAIK,GAAJ,CAAb,EAAuBJ,WAAW,CAAlC,EAAqCP,MAArC,EAA6CD,OAA7C,CAAP;AACD,SAND,MAMO;AACLI,iBAAOM,QAAP;AACAN,iBAAO,GAAP;AACAA,iBAAOQ,GAAP;AACAR,iBAAO,OAAP;AACAA,iBAAOG,IAAIK,GAAJ,CAAP;AACAR,iBAAO,IAAP;AACD;AACF;AACDA,aAAOK,UAAU,KAAjB;AACD,KAnBD,MAmBO,IAAIF,QAAQ,IAAR,IAAgBA,QAAQU,SAA5B,EAAuC;AAC5Cb,YAAM,EAAN;AACD,KAFM,MAEA;AACL;AACAA,YAAMG,IAAIQ,QAAJ,EAAN;AACD;;AAED,WAAOX,GAAP;AACD,GApCD;;AAsCAL,WAASO,aAAaX,KAAb,EAAoB,CAApB,EAAuBM,MAAvB,EAA+BD,OAA/B,CAAT;;AAEA,MAAIJ,cAAc,IAAlB,EAAwB;AACtBC,SAAKE,MAAL;AACA,WAAO,IAAP;AACD;AACD,SAAOA,MAAP;AACD,CApED","file":"print_r.js","sourcesContent":["module.exports = function print_r(array, returnVal) {\n // discuss at: https://locutus.io/php/print_r/\n // original by: Michael White (https://getsprink.com)\n // improved by: Ben Bryan\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // input by: Brett Zamir (https://brett-zamir.me)\n // example 1: print_r(1, true)\n // returns 1: '1'\n\n const echo = require('../strings/echo')\n\n let output = ''\n const padChar = ' '\n const padVal = 4\n\n const _repeatChar = function (len, padChar) {\n let str = ''\n for (let i = 0; i < len; i++) {\n str += padChar\n }\n return str\n }\n const _formatArray = function (obj, curDepth, padVal, padChar) {\n if (curDepth > 0) {\n curDepth++\n }\n\n const basePad = _repeatChar(padVal * curDepth, padChar)\n const thickPad = _repeatChar(padVal * (curDepth + 1), padChar)\n let str = ''\n\n if (typeof obj === 'object' && obj !== null && obj.constructor) {\n str += 'Array\\n' + basePad + '(\\n'\n for (const key in obj) {\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n str += thickPad\n str += '['\n str += key\n str += '] => '\n str += _formatArray(obj[key], curDepth + 1, padVal, padChar)\n } else {\n str += thickPad\n str += '['\n str += key\n str += '] => '\n str += obj[key]\n str += '\\n'\n }\n }\n str += basePad + ')\\n'\n } else if (obj === null || obj === undefined) {\n str = ''\n } else {\n // for our \"resource\" class\n str = obj.toString()\n }\n\n return str\n }\n\n output = _formatArray(array, 0, padVal, padChar)\n\n if (returnVal !== true) {\n echo(output)\n return true\n }\n return output\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/serialize.js"],"names":["module","exports","serialize","mixedValue","val","key","okey","ktype","vals","count","_utf8Size","str","encodeURI","split","length","_getType","inp","match","cons","types","type","constructor","toString","toLowerCase","Math","round","hasOwnProperty","parseInt"],"mappings":"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","file":"serialize.js","sourcesContent":["module.exports = function serialize (mixedValue) {\n // discuss at: https://locutus.io/php/serialize/\n // original by: Arpad Ray (mailto:arpad@php.net)\n // improved by: Dino\n // improved by: Le Torbi (https://www.letorbi.de/)\n // improved by: Kevin van Zonneveld (https://kvz.io/)\n // bugfixed by: Andrej Pavlovic\n // bugfixed by: Garagoth\n // bugfixed by: Russell Walker (https://www.nbill.co.uk/)\n // bugfixed by: Jamie Beck (https://www.terabit.ca/)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io/)\n // bugfixed by: Ben (https://benblume.co.uk/)\n // bugfixed by: Codestar (https://codestarlive.com/)\n // bugfixed by: idjem (https://github.com/idjem)\n // input by: DtTvB (https://dt.in.th/2008-09-16.string-length-in-bytes.html)\n // input by: Martin (https://www.erlenwiese.de/)\n // note 1: We feel the main purpose of this function should be to ease\n // note 1: the transport of data between php & js\n // note 1: Aiming for PHP-compatibility, we have to translate objects to arrays\n // example 1: serialize(['Kevin', 'van', 'Zonneveld'])\n // returns 1: 'a:3:{i:0;s:5:\"Kevin\";i:1;s:3:\"van\";i:2;s:9:\"Zonneveld\";}'\n // example 2: serialize({firstName: 'Kevin', midName: 'van'})\n // returns 2: 'a:2:{s:9:\"firstName\";s:5:\"Kevin\";s:7:\"midName\";s:3:\"van\";}'\n // example 3: serialize( {'ü': 'ü', '四': '四', '𠜎': '𠜎'})\n // returns 3: 'a:3:{s:2:\"ü\";s:2:\"ü\";s:3:\"四\";s:3:\"四\";s:4:\"𠜎\";s:4:\"𠜎\";}'\n\n let val, key, okey\n let ktype = ''\n let vals = ''\n let count = 0\n\n const _utf8Size = function (str) {\n return ~-encodeURI(str).split(/%..|./).length\n }\n\n const _getType = function (inp) {\n let match\n let key\n let cons\n let types\n let type = typeof inp\n\n if (type === 'object' && !inp) {\n return 'null'\n }\n\n if (type === 'object') {\n if (!inp.constructor) {\n return 'object'\n }\n cons = inp.constructor.toString()\n match = cons.match(/(\\w+)\\(/)\n if (match) {\n cons = match[1].toLowerCase()\n }\n types = ['boolean', 'number', 'string', 'array']\n for (key in types) {\n if (cons === types[key]) {\n type = types[key]\n break\n }\n }\n }\n return type\n }\n\n const type = _getType(mixedValue)\n\n switch (type) {\n case 'function':\n val = ''\n break\n case 'boolean':\n val = 'b:' + (mixedValue ? '1' : '0')\n break\n case 'number':\n val = (Math.round(mixedValue) === mixedValue ? 'i' : 'd') + ':' + mixedValue\n break\n case 'string':\n val = 's:' + _utf8Size(mixedValue) + ':\"' + mixedValue + '\"'\n break\n case 'array':\n case 'object':\n val = 'a'\n /*\n if (type === 'object') {\n var objname = mixedValue.constructor.toString().match(/(\\w+)\\(\\)/);\n if (objname === undefined) {\n return;\n }\n objname[1] = serialize(objname[1]);\n val = 'O' + objname[1].substring(1, objname[1].length - 1);\n }\n */\n\n for (key in mixedValue) {\n if (mixedValue.hasOwnProperty(key)) {\n ktype = _getType(mixedValue[key])\n if (ktype === 'function') {\n continue\n }\n\n okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key)\n vals += serialize(okey) + serialize(mixedValue[key])\n count++\n }\n }\n val += ':' + count + ':{' + vals + '}'\n break\n case 'undefined':\n default:\n // Fall-through\n // if the JS object has a property which contains a null value,\n // the string cannot be unserialized by PHP\n val = 'N'\n break\n }\n if (type !== 'object' && type !== 'array') {\n val += ';'\n }\n\n return val\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/serialize.js"],"names":["module","exports","serialize","mixedValue","val","key","okey","ktype","vals","count","_utf8Size","str","encodeURI","split","length","_getType","inp","match","cons","types","type","constructor","toString","toLowerCase","Math","round","hasOwnProperty","parseInt"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,UAAnB,EAA+B;AAC9C;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,YAAJ;AAAA,MAASC,YAAT;AAAA,MAAcC,aAAd;AACA,MAAIC,QAAQ,EAAZ;AACA,MAAIC,OAAO,EAAX;AACA,MAAIC,QAAQ,CAAZ;;AAEA,MAAMC,YAAY,SAAZA,SAAY,CAAUC,GAAV,EAAe;AAC/B,WAAO,CAAC,CAACC,UAAUD,GAAV,EAAeE,KAAf,CAAqB,OAArB,EAA8BC,MAAvC;AACD,GAFD;;AAIA,MAAMC,WAAW,SAAXA,QAAW,CAAUC,GAAV,EAAe;AAC9B,QAAIC,cAAJ;AACA,QAAIZ,YAAJ;AACA,QAAIa,aAAJ;AACA,QAAIC,cAAJ;AACA,QAAIC,cAAcJ,GAAd,yCAAcA,GAAd,CAAJ;;AAEA,QAAII,SAAS,QAAT,IAAqB,CAACJ,GAA1B,EAA+B;AAC7B,aAAO,MAAP;AACD;;AAED,QAAII,SAAS,QAAb,EAAuB;AACrB,UAAI,CAACJ,IAAIK,WAAT,EAAsB;AACpB,eAAO,QAAP;AACD;AACDH,aAAOF,IAAIK,WAAJ,CAAgBC,QAAhB,EAAP;AACAL,cAAQC,KAAKD,KAAL,CAAW,SAAX,CAAR;AACA,UAAIA,KAAJ,EAAW;AACTC,eAAOD,MAAM,CAAN,EAASM,WAAT,EAAP;AACD;AACDJ,cAAQ,CAAC,SAAD,EAAY,QAAZ,EAAsB,QAAtB,EAAgC,OAAhC,CAAR;AACA,WAAKd,GAAL,IAAYc,KAAZ,EAAmB;AACjB,YAAID,SAASC,MAAMd,GAAN,CAAb,EAAyB;AACvBe,iBAAOD,MAAMd,GAAN,CAAP;AACA;AACD;AACF;AACF;AACD,WAAOe,IAAP;AACD,GA7BD;;AA+BA,MAAMA,OAAOL,SAASZ,UAAT,CAAb;;AAEA,UAAQiB,IAAR;AACE,SAAK,UAAL;AACEhB,YAAM,EAAN;AACA;AACF,SAAK,SAAL;AACEA,YAAM,QAAQD,aAAa,GAAb,GAAmB,GAA3B,CAAN;AACA;AACF,SAAK,QAAL;AACEC,YAAM,CAACoB,KAAKC,KAAL,CAAWtB,UAAX,MAA2BA,UAA3B,GAAwC,GAAxC,GAA8C,GAA/C,IAAsD,GAAtD,GAA4DA,UAAlE;AACA;AACF,SAAK,QAAL;AACEC,YAAM,OAAOM,UAAUP,UAAV,CAAP,GAA+B,IAA/B,GAAsCA,UAAtC,GAAmD,GAAzD;AACA;AACF,SAAK,OAAL;AACA,SAAK,QAAL;AACEC,YAAM,GAAN;AACA;;;;;;;;;;;AAWA,WAAKC,GAAL,IAAYF,UAAZ,EAAwB;AACtB,YAAIA,WAAWuB,cAAX,CAA0BrB,GAA1B,CAAJ,EAAoC;AAClCE,kBAAQQ,SAASZ,WAAWE,GAAX,CAAT,CAAR;AACA,cAAIE,UAAU,UAAd,EAA0B;AACxB;AACD;;AAEDD,iBAAOD,IAAIY,KAAJ,CAAU,UAAV,IAAwBU,SAAStB,GAAT,EAAc,EAAd,CAAxB,GAA4CA,GAAnD;AACAG,kBAAQN,UAAUI,IAAV,IAAkBJ,UAAUC,WAAWE,GAAX,CAAV,CAA1B;AACAI;AACD;AACF;AACDL,aAAO,MAAMK,KAAN,GAAc,IAAd,GAAqBD,IAArB,GAA4B,GAAnC;AACA;AACF,SAAK,WAAL;AACA;AACE;AACA;AACA;AACAJ,YAAM,GAAN;AACA;AA/CJ;AAiDA,MAAIgB,SAAS,QAAT,IAAqBA,SAAS,OAAlC,EAA2C;AACzChB,WAAO,GAAP;AACD;;AAED,SAAOA,GAAP;AACD,CA1HD","file":"serialize.js","sourcesContent":["module.exports = function serialize(mixedValue) {\n // discuss at: https://locutus.io/php/serialize/\n // original by: Arpad Ray (mailto:arpad@php.net)\n // improved by: Dino\n // improved by: Le Torbi (https://www.letorbi.de/)\n // improved by: Kevin van Zonneveld (https://kvz.io/)\n // bugfixed by: Andrej Pavlovic\n // bugfixed by: Garagoth\n // bugfixed by: Russell Walker (https://www.nbill.co.uk/)\n // bugfixed by: Jamie Beck (https://www.terabit.ca/)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io/)\n // bugfixed by: Ben (https://benblume.co.uk/)\n // bugfixed by: Codestar (https://codestarlive.com/)\n // bugfixed by: idjem (https://github.com/idjem)\n // input by: DtTvB (https://dt.in.th/2008-09-16.string-length-in-bytes.html)\n // input by: Martin (https://www.erlenwiese.de/)\n // note 1: We feel the main purpose of this function should be to ease\n // note 1: the transport of data between php & js\n // note 1: Aiming for PHP-compatibility, we have to translate objects to arrays\n // example 1: serialize(['Kevin', 'van', 'Zonneveld'])\n // returns 1: 'a:3:{i:0;s:5:\"Kevin\";i:1;s:3:\"van\";i:2;s:9:\"Zonneveld\";}'\n // example 2: serialize({firstName: 'Kevin', midName: 'van'})\n // returns 2: 'a:2:{s:9:\"firstName\";s:5:\"Kevin\";s:7:\"midName\";s:3:\"van\";}'\n // example 3: serialize( {'ü': 'ü', '四': '四', '𠜎': '𠜎'})\n // returns 3: 'a:3:{s:2:\"ü\";s:2:\"ü\";s:3:\"四\";s:3:\"四\";s:4:\"𠜎\";s:4:\"𠜎\";}'\n\n let val, key, okey\n let ktype = ''\n let vals = ''\n let count = 0\n\n const _utf8Size = function (str) {\n return ~-encodeURI(str).split(/%..|./).length\n }\n\n const _getType = function (inp) {\n let match\n let key\n let cons\n let types\n let type = typeof inp\n\n if (type === 'object' && !inp) {\n return 'null'\n }\n\n if (type === 'object') {\n if (!inp.constructor) {\n return 'object'\n }\n cons = inp.constructor.toString()\n match = cons.match(/(\\w+)\\(/)\n if (match) {\n cons = match[1].toLowerCase()\n }\n types = ['boolean', 'number', 'string', 'array']\n for (key in types) {\n if (cons === types[key]) {\n type = types[key]\n break\n }\n }\n }\n return type\n }\n\n const type = _getType(mixedValue)\n\n switch (type) {\n case 'function':\n val = ''\n break\n case 'boolean':\n val = 'b:' + (mixedValue ? '1' : '0')\n break\n case 'number':\n val = (Math.round(mixedValue) === mixedValue ? 'i' : 'd') + ':' + mixedValue\n break\n case 'string':\n val = 's:' + _utf8Size(mixedValue) + ':\"' + mixedValue + '\"'\n break\n case 'array':\n case 'object':\n val = 'a'\n /*\n if (type === 'object') {\n var objname = mixedValue.constructor.toString().match(/(\\w+)\\(\\)/);\n if (objname === undefined) {\n return;\n }\n objname[1] = serialize(objname[1]);\n val = 'O' + objname[1].substring(1, objname[1].length - 1);\n }\n */\n\n for (key in mixedValue) {\n if (mixedValue.hasOwnProperty(key)) {\n ktype = _getType(mixedValue[key])\n if (ktype === 'function') {\n continue\n }\n\n okey = key.match(/^[0-9]+$/) ? parseInt(key, 10) : key\n vals += serialize(okey) + serialize(mixedValue[key])\n count++\n }\n }\n val += ':' + count + ':{' + vals + '}'\n break\n case 'undefined':\n default:\n // Fall-through\n // if the JS object has a property which contains a null value,\n // the string cannot be unserialized by PHP\n val = 'N'\n break\n }\n if (type !== 'object' && type !== 'array') {\n val += ';'\n }\n\n return val\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/strval.js"],"names":["module","exports","strval","str","gettype","require","type"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAiBC,GAAjB,EAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,UAAUC,QAAQ,gBAAR,CAAhB;AACA,MAAIC,OAAO,EAAX;;AAEA,MAAIH,QAAQ,IAAZ,EAAkB;AAChB,WAAO,EAAP;AACD;;AAEDG,SAAOF,QAAQD,GAAR,CAAP;;AAEA;AACA;AACA,UAAQG,IAAR;AACE,SAAK,SAAL;AACE,UAAIH,QAAQ,IAAZ,EAAkB;AAChB,eAAO,GAAP;AACD;AACD,aAAO,EAAP;AACF,SAAK,OAAL;AACE,aAAO,OAAP;AACF,SAAK,QAAL;AACE,aAAO,QAAP;AATJ;;AAYA,SAAOA,GAAP;AACD,CAhCD","file":"strval.js","sourcesContent":["module.exports = function strval (str) {\n // discuss at: https://locutus.io/php/strval/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: strval({red: 1, green: 2, blue: 3, white: 4})\n // returns 1: 'Object'\n\n const gettype = require('../var/gettype')\n let type = ''\n\n if (str === null) {\n return ''\n }\n\n type = gettype(str)\n\n // Comment out the entire switch if you want JS-like\n // behavior instead of PHP behavior\n switch (type) {\n case 'boolean':\n if (str === true) {\n return '1'\n }\n return ''\n case 'array':\n return 'Array'\n case 'object':\n return 'Object'\n }\n\n return str\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/strval.js"],"names":["module","exports","strval","str","gettype","require","type"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,GAAhB,EAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,UAAUC,QAAQ,gBAAR,CAAhB;AACA,MAAIC,OAAO,EAAX;;AAEA,MAAIH,QAAQ,IAAZ,EAAkB;AAChB,WAAO,EAAP;AACD;;AAEDG,SAAOF,QAAQD,GAAR,CAAP;;AAEA;AACA;AACA,UAAQG,IAAR;AACE,SAAK,SAAL;AACE,UAAIH,QAAQ,IAAZ,EAAkB;AAChB,eAAO,GAAP;AACD;AACD,aAAO,EAAP;AACF,SAAK,OAAL;AACE,aAAO,OAAP;AACF,SAAK,QAAL;AACE,aAAO,QAAP;AATJ;;AAYA,SAAOA,GAAP;AACD,CAhCD","file":"strval.js","sourcesContent":["module.exports = function strval(str) {\n // discuss at: https://locutus.io/php/strval/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: strval({red: 1, green: 2, blue: 3, white: 4})\n // returns 1: 'Object'\n\n const gettype = require('../var/gettype')\n let type = ''\n\n if (str === null) {\n return ''\n }\n\n type = gettype(str)\n\n // Comment out the entire switch if you want JS-like\n // behavior instead of PHP behavior\n switch (type) {\n case 'boolean':\n if (str === true) {\n return '1'\n }\n return ''\n case 'array':\n return 'Array'\n case 'object':\n return 'Object'\n }\n\n return str\n}\n"]}
@@ -145,12 +145,10 @@ function readBytes(str, len) {
145
145
 
146
146
  c++;
147
147
 
148
- bytes += isHighSurrogate || isLowSurrogate && wasHighSurrogate
149
- // if high surrogate, count 2 bytes, as expectation is to be followed by low surrogate
148
+ bytes += isHighSurrogate || isLowSurrogate && wasHighSurrogate ? // if high surrogate, count 2 bytes, as expectation is to be followed by low surrogate
150
149
  // if low surrogate preceded by high surrogate, add 2 bytes
151
- ? 2 : code > 0x7ff
152
- // otherwise low surrogate falls into this part
153
- ? 3 : code > 0x7f ? 2 : 1;
150
+ 2 : code > 0x7ff ? // otherwise low surrogate falls into this part
151
+ 3 : code > 0x7f ? 2 : 1;
154
152
 
155
153
  // if high surrogate is not followed by low surrogate, add 1 more byte
156
154
  bytes += wasHighSurrogate && !isLowSurrogate ? 1 : 0;
@@ -259,8 +257,8 @@ function expectObject(str, cache) {
259
257
 
260
258
  var _ref11 = reObjectLiteral.exec(str) || [],
261
259
  _ref12 = _slicedToArray(_ref11, 4),
262
- objectLiteralBeginMatch = _ref12[0],
263
- /* classNameLengthMatch */className = _ref12[2],
260
+ objectLiteralBeginMatch /* classNameLengthMatch */ = _ref12[0],
261
+ className = _ref12[2],
264
262
  propCountMatch = _ref12[3];
265
263
 
266
264
  if (!objectLiteralBeginMatch) {
@@ -352,19 +350,18 @@ function expectArrayItems(str) {
352
350
  var cache = arguments[2];
353
351
 
354
352
  var key = void 0;
355
- var hasStringKeys = false;
356
353
  var item = void 0;
357
354
  var totalOffset = 0;
358
- var items = [];
355
+ var hasContinousIndexes = true;
356
+ var lastIndex = -1;
357
+ var items = {};
359
358
  cache([items]);
360
359
 
361
360
  for (var i = 0; i < expectedItems; i++) {
362
361
  key = expectKeyOrIndex(str);
363
362
 
364
- // this is for backward compatibility with previous implementation
365
- if (!hasStringKeys) {
366
- hasStringKeys = typeof key[0] === 'string';
367
- }
363
+ hasContinousIndexes = hasContinousIndexes && typeof key[0] === 'number' && key[0] === lastIndex + 1;
364
+ lastIndex = key[0];
368
365
 
369
366
  str = str.substr(key[1]);
370
367
  totalOffset += key[1];
@@ -379,9 +376,8 @@ function expectArrayItems(str) {
379
376
  items[key[0]] = item[0];
380
377
  }
381
378
 
382
- // this is for backward compatibility with previous implementation
383
- if (hasStringKeys) {
384
- items = Object.assign({}, items);
379
+ if (hasContinousIndexes) {
380
+ items = Object.values(items);
385
381
  }
386
382
 
387
383
  return [items, totalOffset];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/unserialize.js"],"names":["initCache","store","cache","value","push","get","index","length","RangeError","expectType","str","types","type","exec","SyntaxError","expectBool","expectInt","expectFloat","expectString","expectEscapedString","expectArray","expectObject","expectClass","expectReference","reBool","match","boolMatch","reInt","intMatch","parseInt","reFloat","floatMatch","floatValue","Number","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY","parseFloat","readBytes","len","escapedString","bytes","out","c","strLen","wasHighSurrogate","escapedChars","chr","charAt","code","charCodeAt","isHighSurrogate","isLowSurrogate","String","fromCharCode","substr","reStrLength","byteLenMatch","strMatch","startsWith","strLenMatch","expectKeyOrIndex","err","reObjectLiteral","objectLiteralBeginMatch","className","propCountMatch","totalOffset","propCount","obj","i","prop","Error","reRef","refIndex","reArrayLength","arrayLiteralBeginMatch","arrayLengthMatch","array","expectArrayItems","expectedItems","key","hasStringKeys","item","items","Object","assign","module","exports","unserialize","console","error"],"mappings":";;;;AAAA,SAASA,SAAT,GAAsB;AACpB,MAAMC,QAAQ,EAAd;AACA;AACA,MAAMC,QAAQ,SAASA,KAAT,CAAgBC,KAAhB,EAAuB;AACnCF,UAAMG,IAAN,CAAWD,MAAM,CAAN,CAAX;AACA,WAAOA,KAAP;AACD,GAHD;;AAKAD,QAAMG,GAAN,GAAY,UAACC,KAAD,EAAW;AACrB,QAAIA,SAASL,MAAMM,MAAnB,EAA2B;AACzB,YAAMC,0CAAsCF,QAAQ,CAA9C,EAAN;AACD;;AAED,WAAOL,MAAMK,KAAN,CAAP;AACD,GAND;;AAQA,SAAOJ,KAAP;AACD;;AAED,SAASO,UAAT,CAAqBC,GAArB,EAA0BR,KAA1B,EAAiC;AAC/B,MAAMS,QAAQ,2CAAd;AACA,MAAMC,OAAO,CAACD,MAAME,IAAN,CAAWH,GAAX,KAAmB,EAApB,EAAwB,CAAxB,CAAb;;AAEA,MAAI,CAACE,IAAL,EAAW;AACT,UAAME,YAAY,oBAAoBJ,GAAhC,CAAN;AACD;;AAED,UAAQE,IAAR;AACE,SAAK,GAAL;AACE,aAAOV,MAAM,CAAC,IAAD,EAAO,CAAP,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOA,MAAMa,WAAWL,GAAX,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMc,UAAUN,GAAV,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMe,YAAYP,GAAZ,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMgB,aAAaR,GAAb,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMiB,oBAAoBT,GAApB,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOU,YAAYV,GAAZ,EAAiBR,KAAjB,CAAP;AACF,SAAK,GAAL;AACE,aAAOmB,aAAaX,GAAb,EAAkBR,KAAlB,CAAP;AACF,SAAK,GAAL;AACE,aAAOoB,YAAYZ,GAAZ,EAAiBR,KAAjB,CAAP;AACF,SAAK,GAAL;AACA,SAAK,GAAL;AACE,aAAOqB,gBAAgBb,GAAhB,EAAqBR,KAArB,CAAP;AACF;AACE,YAAMY,mDAAiDF,IAAjD,CAAN;AAvBJ;AAyBD;;AAED,SAASG,UAAT,CAAqBL,GAArB,EAA0B;AACxB,MAAMc,SAAS,YAAf;;AADwB,aAEGA,OAAOX,IAAP,CAAYH,GAAZ,KAAoB,EAFvB;AAAA;AAAA,MAEjBe,KAFiB;AAAA,MAEVC,SAFU;;AAIxB,MAAI,CAACA,SAAL,EAAgB;AACd,UAAMZ,YAAY,qCAAZ,CAAN;AACD;;AAED,SAAO,CAACY,cAAc,GAAf,EAAoBD,MAAMlB,MAA1B,CAAP;AACD;;AAED,SAASS,SAAT,CAAoBN,GAApB,EAAyB;AACvB,MAAMiB,QAAQ,gBAAd;;AADuB,cAEGA,MAAMd,IAAN,CAAWH,GAAX,KAAmB,EAFtB;AAAA;AAAA,MAEhBe,KAFgB;AAAA,MAETG,QAFS;;AAIvB,MAAI,CAACA,QAAL,EAAe;AACb,UAAMd,YAAY,2BAAZ,CAAN;AACD;;AAED,SAAO,CAACe,SAASD,QAAT,EAAmB,EAAnB,CAAD,EAAyBH,MAAMlB,MAA/B,CAAP;AACD;;AAED,SAASU,WAAT,CAAsBP,GAAtB,EAA2B;AACzB,MAAMoB,UAAU,2DAAhB;;AADyB,cAEGA,QAAQjB,IAAR,CAAaH,GAAb,KAAqB,EAFxB;AAAA;AAAA,MAElBe,KAFkB;AAAA,MAEXM,UAFW;;AAIzB,MAAI,CAACA,UAAL,EAAiB;AACf,UAAMjB,YAAY,wBAAZ,CAAN;AACD;;AAED,MAAIkB,mBAAJ;;AAEA,UAAQD,UAAR;AACE,SAAK,KAAL;AACEC,mBAAaC,OAAOC,GAApB;AACA;AACF,SAAK,MAAL;AACEF,mBAAaC,OAAOE,iBAApB;AACA;AACF,SAAK,KAAL;AACEH,mBAAaC,OAAOG,iBAApB;AACA;AACF;AACEJ,mBAAaK,WAAWN,UAAX,CAAb;AACA;AAZJ;;AAeA,SAAO,CAACC,UAAD,EAAaP,MAAMlB,MAAnB,CAAP;AACD;;AAED,SAAS+B,SAAT,CAAoB5B,GAApB,EAAyB6B,GAAzB,EAAqD;AAAA,MAAvBC,aAAuB,uEAAP,KAAO;;AACnD,MAAIC,QAAQ,CAAZ;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,IAAI,CAAR;AACA,MAAMC,SAASlC,IAAIH,MAAnB;AACA,MAAIsC,mBAAmB,KAAvB;AACA,MAAIC,eAAe,CAAnB;;AAEA,SAAOL,QAAQF,GAAR,IAAeI,IAAIC,MAA1B,EAAkC;AAChC,QAAIG,MAAMrC,IAAIsC,MAAJ,CAAWL,CAAX,CAAV;AACA,QAAMM,OAAOF,IAAIG,UAAJ,CAAe,CAAf,CAAb;AACA,QAAMC,kBAAkBF,QAAQ,MAAR,IAAkBA,QAAQ,MAAlD;AACA,QAAMG,iBAAiBH,QAAQ,MAAR,IAAkBA,QAAQ,MAAjD;;AAEA,QAAIT,iBAAiBO,QAAQ,IAA7B,EAAmC;AACjCA,YAAMM,OAAOC,YAAP,CAAoBzB,SAASnB,IAAI6C,MAAJ,CAAWZ,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAApB,CAAN;AACAG;;AAEA;AACA;AACAH,WAAK,CAAL;AACD;;AAEDA;;AAEAF,aAASU,mBAAoBC,kBAAkBP;AAC7C;AACA;AAFO,MAGL,CAHK,GAILI,OAAO;AACP;AADA,MAEE,CAFF,GAGEA,OAAO,IAAP,GACE,CADF,GAEE,CATR;;AAWA;AACAR,aAASI,oBAAoB,CAACO,cAArB,GAAsC,CAAtC,GAA0C,CAAnD;;AAEAV,WAAOK,GAAP;AACAF,uBAAmBM,eAAnB;AACD;;AAED,SAAO,CAACT,GAAD,EAAMD,KAAN,EAAaK,YAAb,CAAP;AACD;;AAED,SAAS5B,YAAT,CAAuBR,GAAvB,EAA4B;AAC1B;AACA;AACA;AACA,MAAM8C,cAAc,aAApB,CAJ0B,CAIQ;;AAJR,cAKIA,YAAY3C,IAAZ,CAAiBH,GAAjB,KAAyB,EAL7B;AAAA;AAAA,MAKnBe,KALmB;AAAA,MAKZgC,YALY;;AAO1B,MAAI,CAAChC,KAAL,EAAY;AACV,UAAMX,YAAY,yBAAZ,CAAN;AACD;;AAED,MAAMyB,MAAMV,SAAS4B,YAAT,EAAuB,EAAvB,CAAZ;;AAEA/C,QAAMA,IAAI6C,MAAJ,CAAW9B,MAAMlB,MAAjB,CAAN;;AAb0B,mBAeA+B,UAAU5B,GAAV,EAAe6B,GAAf,CAfA;AAAA;AAAA,MAenBmB,QAfmB;AAAA,MAeTjB,KAfS;;AAiB1B,MAAIA,UAAUF,GAAd,EAAmB;AACjB,UAAMzB,oCAAkCyB,GAAlC,wBAAwDE,KAAxD,CAAN;AACD;;AAED/B,QAAMA,IAAI6C,MAAJ,CAAWG,SAASnD,MAApB,CAAN;;AAEA;AACA,MAAI,CAACG,IAAIiD,UAAJ,CAAe,IAAf,CAAL,EAA2B;AACzB,UAAM7C,YAAY,aAAZ,CAAN;AACD;;AAED,SAAO,CAAC4C,QAAD,EAAWjC,MAAMlB,MAAN,GAAemD,SAASnD,MAAxB,GAAiC,CAA5C,CAAP,CA5B0B,CA4B4B;AACvD;;AAED,SAASY,mBAAT,CAA8BT,GAA9B,EAAmC;AACjC,MAAM8C,cAAc,aAApB,CADiC,CACC;;AADD,cAEJA,YAAY3C,IAAZ,CAAiBH,GAAjB,KAAyB,EAFrB;AAAA;AAAA,MAE1Be,KAF0B;AAAA,MAEnBmC,WAFmB;;AAIjC,MAAI,CAACnC,KAAL,EAAY;AACV,UAAMX,YAAY,kCAAZ,CAAN;AACD;;AAED,MAAMyB,MAAMV,SAAS+B,WAAT,EAAsB,EAAtB,CAAZ;;AAEAlD,QAAMA,IAAI6C,MAAJ,CAAW9B,MAAMlB,MAAjB,CAAN;;AAViC,oBAYO+B,UAAU5B,GAAV,EAAe6B,GAAf,EAAoB,IAApB,CAZP;AAAA;AAAA,MAY1BmB,QAZ0B;AAAA,MAYhBjB,KAZgB;AAAA,MAYTK,YAZS;;AAcjC,MAAIL,UAAUF,GAAd,EAAmB;AACjB,UAAMzB,4CAA0CyB,GAA1C,wBAAgEE,KAAhE,CAAN;AACD;;AAED/B,QAAMA,IAAI6C,MAAJ,CAAWG,SAASnD,MAAT,GAAkBuC,eAAe,CAA5C,CAAN;;AAEA;AACA,MAAI,CAACpC,IAAIiD,UAAJ,CAAe,IAAf,CAAL,EAA2B;AACzB,UAAM7C,YAAY,aAAZ,CAAN;AACD;;AAED,SAAO,CAAC4C,QAAD,EAAWjC,MAAMlB,MAAN,GAAemD,SAASnD,MAAxB,GAAiC,CAA5C,CAAP,CAzBiC,CAyBqB;AACvD;;AAED,SAASsD,gBAAT,CAA2BnD,GAA3B,EAAgC;AAC9B,MAAI;AACF,WAAOQ,aAAaR,GAAb,CAAP;AACD,GAFD,CAEE,OAAOoD,GAAP,EAAY,CAAE;;AAEhB,MAAI;AACF,WAAO3C,oBAAoBT,GAApB,CAAP;AACD,GAFD,CAEE,OAAOoD,GAAP,EAAY,CAAE;;AAEhB,MAAI;AACF,WAAO9C,UAAUN,GAAV,CAAP;AACD,GAFD,CAEE,OAAOoD,GAAP,EAAY;AACZ,UAAMhD,YAAY,uBAAZ,CAAN;AACD;AACF;;AAED,SAASO,YAAT,CAAuBX,GAAvB,EAA4BR,KAA5B,EAAmC;AACjC;AACA;AACA,MAAM6D,kBAAkB,6BAAxB;;AAHiC,eAIwDA,gBAAgBlD,IAAhB,CAAqBH,GAArB,KAA6B,EAJrF;AAAA;AAAA,MAI1BsD,uBAJ0B;AAAA,MAID,0BAA4BC,SAJ3B;AAAA,MAIsCC,cAJtC;;AAMjC,MAAI,CAACF,uBAAL,EAA8B;AAC5B,UAAMlD,YAAY,eAAZ,CAAN;AACD;;AAED,MAAImD,cAAc,UAAlB,EAA8B;AAC5B,UAAMnD,0CAAwCmD,SAAxC,CAAN;AACD;;AAED,MAAIE,cAAcH,wBAAwBzD,MAA1C;;AAEA,MAAM6D,YAAYvC,SAASqC,cAAT,EAAyB,EAAzB,CAAlB;AACA,MAAMG,MAAM,EAAZ;AACAnE,QAAM,CAACmE,GAAD,CAAN;;AAEA3D,QAAMA,IAAI6C,MAAJ,CAAWY,WAAX,CAAN;;AAEA,OAAK,IAAIG,IAAI,CAAb,EAAgBA,IAAIF,SAApB,EAA+BE,GAA/B,EAAoC;AAClC,QAAMC,OAAOV,iBAAiBnD,GAAjB,CAAb;AACAA,UAAMA,IAAI6C,MAAJ,CAAWgB,KAAK,CAAL,CAAX,CAAN;AACAJ,mBAAeI,KAAK,CAAL,CAAf;;AAEA,QAAMpE,QAAQM,WAAWC,GAAX,EAAgBR,KAAhB,CAAd;AACAQ,UAAMA,IAAI6C,MAAJ,CAAWpD,MAAM,CAAN,CAAX,CAAN;AACAgE,mBAAehE,MAAM,CAAN,CAAf;;AAEAkE,QAAIE,KAAK,CAAL,CAAJ,IAAepE,MAAM,CAAN,CAAf;AACD;;AAED;AACA,MAAIO,IAAIsC,MAAJ,CAAW,CAAX,MAAkB,GAAtB,EAA2B;AACzB,UAAMlC,YAAY,YAAZ,CAAN;AACD;;AAED,SAAO,CAACuD,GAAD,EAAMF,cAAc,CAApB,CAAP,CAvCiC,CAuCH;AAC/B;;AAED,SAAS7C,WAAT,CAAsBZ,GAAtB,EAA2BR,KAA3B,EAAkC;AAChC;AACA;AACA;AACA;AACA;AACA,QAAMsE,MAAM,qBAAN,CAAN;AACD;;AAED,SAASjD,eAAT,CAA0Bb,GAA1B,EAA+BR,KAA/B,EAAsC;AACpC,MAAMuE,QAAQ,mBAAd;;AADoC,eAEVA,MAAM5D,IAAN,CAAWH,GAAX,KAAmB,EAFT;AAAA;AAAA,MAE7Be,KAF6B;AAAA,MAEtBiD,QAFsB;;AAIpC,MAAI,CAACjD,KAAL,EAAY;AACV,UAAMX,YAAY,0BAAZ,CAAN;AACD;;AAED,SAAO,CAACZ,MAAMG,GAAN,CAAUwB,SAAS6C,QAAT,EAAmB,EAAnB,IAAyB,CAAnC,CAAD,EAAwCjD,MAAMlB,MAA9C,CAAP;AACD;;AAED,SAASa,WAAT,CAAsBV,GAAtB,EAA2BR,KAA3B,EAAkC;AAChC,MAAMyE,gBAAgB,YAAtB;;AADgC,eAEmBA,cAAc9D,IAAd,CAAmBH,GAAnB,KAA2B,EAF9C;AAAA;AAAA,MAEzBkE,sBAFyB;AAAA,MAEDC,gBAFC;;AAIhC,MAAI,CAACA,gBAAL,EAAuB;AACrB,UAAM/D,YAAY,kCAAZ,CAAN;AACD;;AAEDJ,QAAMA,IAAI6C,MAAJ,CAAWqB,uBAAuBrE,MAAlC,CAAN;;AAEA,MAAMuE,QAAQC,iBAAiBrE,GAAjB,EAAsBmB,SAASgD,gBAAT,EAA2B,EAA3B,CAAtB,EAAsD3E,KAAtD,CAAd;;AAEA;AACA,MAAIQ,IAAIsC,MAAJ,CAAW8B,MAAM,CAAN,CAAX,MAAyB,GAA7B,EAAkC;AAChC,UAAMhE,YAAY,YAAZ,CAAN;AACD;;AAED,SAAO,CAACgE,MAAM,CAAN,CAAD,EAAWF,uBAAuBrE,MAAvB,GAAgCuE,MAAM,CAAN,CAAhC,GAA2C,CAAtD,CAAP,CAjBgC,CAiBgC;AACjE;;AAED,SAASC,gBAAT,CAA2BrE,GAA3B,EAA0D;AAAA,MAA1BsE,aAA0B,uEAAV,CAAU;AAAA,MAAP9E,KAAO;;AACxD,MAAI+E,YAAJ;AACA,MAAIC,gBAAgB,KAApB;AACA,MAAIC,aAAJ;AACA,MAAIhB,cAAc,CAAlB;AACA,MAAIiB,QAAQ,EAAZ;AACAlF,QAAM,CAACkF,KAAD,CAAN;;AAEA,OAAK,IAAId,IAAI,CAAb,EAAgBA,IAAIU,aAApB,EAAmCV,GAAnC,EAAwC;AACtCW,UAAMpB,iBAAiBnD,GAAjB,CAAN;;AAEA;AACA,QAAI,CAACwE,aAAL,EAAoB;AAClBA,sBAAiB,OAAOD,IAAI,CAAJ,CAAP,KAAkB,QAAnC;AACD;;AAEDvE,UAAMA,IAAI6C,MAAJ,CAAW0B,IAAI,CAAJ,CAAX,CAAN;AACAd,mBAAec,IAAI,CAAJ,CAAf;;AAEA;AACA;AACA;AACAE,WAAO1E,WAAWC,GAAX,EAAgBR,KAAhB,CAAP;AACAQ,UAAMA,IAAI6C,MAAJ,CAAW4B,KAAK,CAAL,CAAX,CAAN;AACAhB,mBAAegB,KAAK,CAAL,CAAf;;AAEAC,UAAMH,IAAI,CAAJ,CAAN,IAAgBE,KAAK,CAAL,CAAhB;AACD;;AAED;AACA,MAAID,aAAJ,EAAmB;AACjBE,YAAQC,OAAOC,MAAP,CAAc,EAAd,EAAkBF,KAAlB,CAAR;AACD;;AAED,SAAO,CAACA,KAAD,EAAQjB,WAAR,CAAP;AACD;;AAEDoB,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAsB/E,GAAtB,EAA2B;AAC1C;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,MAAI;AACF,QAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;AAC3B,aAAO,KAAP;AACD;;AAED,WAAOD,WAAWC,GAAX,EAAgBV,WAAhB,EAA6B,CAA7B,CAAP;AACD,GAND,CAME,OAAO8D,GAAP,EAAY;AACZ4B,YAAQC,KAAR,CAAc7B,GAAd;AACA,WAAO,KAAP;AACD;AACF,CAlDD","file":"unserialize.js","sourcesContent":["function initCache () {\n const store = []\n // cache only first element, second is length to jump ahead for the parser\n const cache = function cache (value) {\n store.push(value[0])\n return value\n }\n\n cache.get = (index) => {\n if (index >= store.length) {\n throw RangeError(`Can't resolve reference ${index + 1}`)\n }\n\n return store[index]\n }\n\n return cache\n}\n\nfunction expectType (str, cache) {\n const types = /^(?:N(?=;)|[bidsSaOCrR](?=:)|[^:]+(?=:))/g\n const type = (types.exec(str) || [])[0]\n\n if (!type) {\n throw SyntaxError('Invalid input: ' + str)\n }\n\n switch (type) {\n case 'N':\n return cache([null, 2])\n case 'b':\n return cache(expectBool(str))\n case 'i':\n return cache(expectInt(str))\n case 'd':\n return cache(expectFloat(str))\n case 's':\n return cache(expectString(str))\n case 'S':\n return cache(expectEscapedString(str))\n case 'a':\n return expectArray(str, cache)\n case 'O':\n return expectObject(str, cache)\n case 'C':\n return expectClass(str, cache)\n case 'r':\n case 'R':\n return expectReference(str, cache)\n default:\n throw SyntaxError(`Invalid or unsupported data type: ${type}`)\n }\n}\n\nfunction expectBool (str) {\n const reBool = /^b:([01]);/\n const [match, boolMatch] = reBool.exec(str) || []\n\n if (!boolMatch) {\n throw SyntaxError('Invalid bool value, expected 0 or 1')\n }\n\n return [boolMatch === '1', match.length]\n}\n\nfunction expectInt (str) {\n const reInt = /^i:([+-]?\\d+);/\n const [match, intMatch] = reInt.exec(str) || []\n\n if (!intMatch) {\n throw SyntaxError('Expected an integer value')\n }\n\n return [parseInt(intMatch, 10), match.length]\n}\n\nfunction expectFloat (str) {\n const reFloat = /^d:(NAN|-?INF|(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)(?:[eE][+-]\\d+)?);/\n const [match, floatMatch] = reFloat.exec(str) || []\n\n if (!floatMatch) {\n throw SyntaxError('Expected a float value')\n }\n\n let floatValue\n\n switch (floatMatch) {\n case 'NAN':\n floatValue = Number.NaN\n break\n case '-INF':\n floatValue = Number.NEGATIVE_INFINITY\n break\n case 'INF':\n floatValue = Number.POSITIVE_INFINITY\n break\n default:\n floatValue = parseFloat(floatMatch)\n break\n }\n\n return [floatValue, match.length]\n}\n\nfunction readBytes (str, len, escapedString = false) {\n let bytes = 0\n let out = ''\n let c = 0\n const strLen = str.length\n let wasHighSurrogate = false\n let escapedChars = 0\n\n while (bytes < len && c < strLen) {\n let chr = str.charAt(c)\n const code = chr.charCodeAt(0)\n const isHighSurrogate = code >= 0xd800 && code <= 0xdbff\n const isLowSurrogate = code >= 0xdc00 && code <= 0xdfff\n\n if (escapedString && chr === '\\\\') {\n chr = String.fromCharCode(parseInt(str.substr(c + 1, 2), 16))\n escapedChars++\n\n // each escaped sequence is 3 characters. Go 2 chars ahead.\n // third character will be jumped over a few lines later\n c += 2\n }\n\n c++\n\n bytes += isHighSurrogate || (isLowSurrogate && wasHighSurrogate)\n // if high surrogate, count 2 bytes, as expectation is to be followed by low surrogate\n // if low surrogate preceded by high surrogate, add 2 bytes\n ? 2\n : code > 0x7ff\n // otherwise low surrogate falls into this part\n ? 3\n : code > 0x7f\n ? 2\n : 1\n\n // if high surrogate is not followed by low surrogate, add 1 more byte\n bytes += wasHighSurrogate && !isLowSurrogate ? 1 : 0\n\n out += chr\n wasHighSurrogate = isHighSurrogate\n }\n\n return [out, bytes, escapedChars]\n}\n\nfunction expectString (str) {\n // PHP strings consist of one-byte characters.\n // JS uses 2 bytes with possible surrogate pairs.\n // Serialized length of 2 is still 1 JS string character\n const reStrLength = /^s:(\\d+):\"/g // also match the opening \" char\n const [match, byteLenMatch] = reStrLength.exec(str) || []\n\n if (!match) {\n throw SyntaxError('Expected a string value')\n }\n\n const len = parseInt(byteLenMatch, 10)\n\n str = str.substr(match.length)\n\n const [strMatch, bytes] = readBytes(str, len)\n\n if (bytes !== len) {\n throw SyntaxError(`Expected string of ${len} bytes, but got ${bytes}`)\n }\n\n str = str.substr(strMatch.length)\n\n // strict parsing, match closing \"; chars\n if (!str.startsWith('\";')) {\n throw SyntaxError('Expected \";')\n }\n\n return [strMatch, match.length + strMatch.length + 2] // skip last \";\n}\n\nfunction expectEscapedString (str) {\n const reStrLength = /^S:(\\d+):\"/g // also match the opening \" char\n const [match, strLenMatch] = reStrLength.exec(str) || []\n\n if (!match) {\n throw SyntaxError('Expected an escaped string value')\n }\n\n const len = parseInt(strLenMatch, 10)\n\n str = str.substr(match.length)\n\n const [strMatch, bytes, escapedChars] = readBytes(str, len, true)\n\n if (bytes !== len) {\n throw SyntaxError(`Expected escaped string of ${len} bytes, but got ${bytes}`)\n }\n\n str = str.substr(strMatch.length + escapedChars * 2)\n\n // strict parsing, match closing \"; chars\n if (!str.startsWith('\";')) {\n throw SyntaxError('Expected \";')\n }\n\n return [strMatch, match.length + strMatch.length + 2] // skip last \";\n}\n\nfunction expectKeyOrIndex (str) {\n try {\n return expectString(str)\n } catch (err) {}\n\n try {\n return expectEscapedString(str)\n } catch (err) {}\n\n try {\n return expectInt(str)\n } catch (err) {\n throw SyntaxError('Expected key or index')\n }\n}\n\nfunction expectObject (str, cache) {\n // O:<class name length>:\"class name\":<prop count>:{<props and values>}\n // O:8:\"stdClass\":2:{s:3:\"foo\";s:3:\"bar\";s:3:\"bar\";s:3:\"baz\";}\n const reObjectLiteral = /^O:(\\d+):\"([^\"]+)\":(\\d+):\\{/\n const [objectLiteralBeginMatch, /* classNameLengthMatch */, className, propCountMatch] = reObjectLiteral.exec(str) || []\n\n if (!objectLiteralBeginMatch) {\n throw SyntaxError('Invalid input')\n }\n\n if (className !== 'stdClass') {\n throw SyntaxError(`Unsupported object type: ${className}`)\n }\n\n let totalOffset = objectLiteralBeginMatch.length\n\n const propCount = parseInt(propCountMatch, 10)\n const obj = {}\n cache([obj])\n\n str = str.substr(totalOffset)\n\n for (let i = 0; i < propCount; i++) {\n const prop = expectKeyOrIndex(str)\n str = str.substr(prop[1])\n totalOffset += prop[1]\n\n const value = expectType(str, cache)\n str = str.substr(value[1])\n totalOffset += value[1]\n\n obj[prop[0]] = value[0]\n }\n\n // strict parsing, expect } after object literal\n if (str.charAt(0) !== '}') {\n throw SyntaxError('Expected }')\n }\n\n return [obj, totalOffset + 1] // skip final }\n}\n\nfunction expectClass (str, cache) {\n // can't be well supported, because requires calling eval (or similar)\n // in order to call serialized constructor name\n // which is unsafe\n // or assume that constructor is defined in global scope\n // but this is too much limiting\n throw Error('Not yet implemented')\n}\n\nfunction expectReference (str, cache) {\n const reRef = /^[rR]:([1-9]\\d*);/\n const [match, refIndex] = reRef.exec(str) || []\n\n if (!match) {\n throw SyntaxError('Expected reference value')\n }\n\n return [cache.get(parseInt(refIndex, 10) - 1), match.length]\n}\n\nfunction expectArray (str, cache) {\n const reArrayLength = /^a:(\\d+):{/\n const [arrayLiteralBeginMatch, arrayLengthMatch] = reArrayLength.exec(str) || []\n\n if (!arrayLengthMatch) {\n throw SyntaxError('Expected array length annotation')\n }\n\n str = str.substr(arrayLiteralBeginMatch.length)\n\n const array = expectArrayItems(str, parseInt(arrayLengthMatch, 10), cache)\n\n // strict parsing, expect closing } brace after array literal\n if (str.charAt(array[1]) !== '}') {\n throw SyntaxError('Expected }')\n }\n\n return [array[0], arrayLiteralBeginMatch.length + array[1] + 1] // jump over }\n}\n\nfunction expectArrayItems (str, expectedItems = 0, cache) {\n let key\n let hasStringKeys = false\n let item\n let totalOffset = 0\n let items = []\n cache([items])\n\n for (let i = 0; i < expectedItems; i++) {\n key = expectKeyOrIndex(str)\n\n // this is for backward compatibility with previous implementation\n if (!hasStringKeys) {\n hasStringKeys = (typeof key[0] === 'string')\n }\n\n str = str.substr(key[1])\n totalOffset += key[1]\n\n // references are resolved immediately, so if duplicate key overwrites previous array index\n // the old value is anyway resolved\n // fixme: but next time the same reference should point to the new value\n item = expectType(str, cache)\n str = str.substr(item[1])\n totalOffset += item[1]\n\n items[key[0]] = item[0]\n }\n\n // this is for backward compatibility with previous implementation\n if (hasStringKeys) {\n items = Object.assign({}, items)\n }\n\n return [items, totalOffset]\n}\n\nmodule.exports = function unserialize (str) {\n // discuss at: https://locutus.io/php/unserialize/\n // original by: Arpad Ray (mailto:arpad@php.net)\n // improved by: Pedro Tainha (https://www.pedrotainha.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Chris\n // improved by: James\n // improved by: Le Torbi\n // improved by: Eli Skeggs\n // bugfixed by: dptr1988\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: philippsimon (https://github.com/philippsimon/)\n // revised by: d3x\n // input by: Brett Zamir (https://brett-zamir.me)\n // input by: Martin (https://www.erlenwiese.de/)\n // input by: kilops\n // input by: Jaroslaw Czarniak\n // input by: lovasoa (https://github.com/lovasoa/)\n // improved by: Rafał Kukawski\n // reimplemented by: Rafał Kukawski\n // note 1: We feel the main purpose of this function should be\n // note 1: to ease the transport of data between php & js\n // note 1: Aiming for PHP-compatibility, we have to translate objects to arrays\n // example 1: unserialize('a:3:{i:0;s:5:\"Kevin\";i:1;s:3:\"van\";i:2;s:9:\"Zonneveld\";}')\n // returns 1: ['Kevin', 'van', 'Zonneveld']\n // example 2: unserialize('a:2:{s:9:\"firstName\";s:5:\"Kevin\";s:7:\"midName\";s:3:\"van\";}')\n // returns 2: {firstName: 'Kevin', midName: 'van'}\n // example 3: unserialize('a:3:{s:2:\"ü\";s:2:\"ü\";s:3:\"四\";s:3:\"四\";s:4:\"𠜎\";s:4:\"𠜎\";}')\n // returns 3: {'ü': 'ü', '四': '四', '𠜎': '𠜎'}\n // example 4: unserialize(undefined)\n // returns 4: false\n // example 5: unserialize('O:8:\"stdClass\":1:{s:3:\"foo\";b:1;}')\n // returns 5: { foo: true }\n // example 6: unserialize('a:2:{i:0;N;i:1;s:0:\"\";}')\n // returns 6: [null, \"\"]\n // example 7: unserialize('S:7:\"\\\\65\\\\73\\\\63\\\\61\\\\70\\\\65\\\\64\";')\n // returns 7: 'escaped'\n\n try {\n if (typeof str !== 'string') {\n return false\n }\n\n return expectType(str, initCache())[0]\n } catch (err) {\n console.error(err)\n return false\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/unserialize.js"],"names":["initCache","store","cache","value","push","get","index","length","RangeError","expectType","str","types","type","exec","SyntaxError","expectBool","expectInt","expectFloat","expectString","expectEscapedString","expectArray","expectObject","expectClass","expectReference","reBool","match","boolMatch","reInt","intMatch","parseInt","reFloat","floatMatch","floatValue","Number","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY","parseFloat","readBytes","len","escapedString","bytes","out","c","strLen","wasHighSurrogate","escapedChars","chr","charAt","code","charCodeAt","isHighSurrogate","isLowSurrogate","String","fromCharCode","substr","reStrLength","byteLenMatch","strMatch","startsWith","strLenMatch","expectKeyOrIndex","err","reObjectLiteral","objectLiteralBeginMatch","className","propCountMatch","totalOffset","propCount","obj","i","prop","Error","reRef","refIndex","reArrayLength","arrayLiteralBeginMatch","arrayLengthMatch","array","expectArrayItems","expectedItems","key","item","hasContinousIndexes","lastIndex","items","Object","values","module","exports","unserialize","console","error"],"mappings":";;;;AAAA,SAASA,SAAT,GAAqB;AACnB,MAAMC,QAAQ,EAAd;AACA;AACA,MAAMC,QAAQ,SAASA,KAAT,CAAeC,KAAf,EAAsB;AAClCF,UAAMG,IAAN,CAAWD,MAAM,CAAN,CAAX;AACA,WAAOA,KAAP;AACD,GAHD;;AAKAD,QAAMG,GAAN,GAAY,UAACC,KAAD,EAAW;AACrB,QAAIA,SAASL,MAAMM,MAAnB,EAA2B;AACzB,YAAMC,0CAAsCF,QAAQ,CAA9C,EAAN;AACD;;AAED,WAAOL,MAAMK,KAAN,CAAP;AACD,GAND;;AAQA,SAAOJ,KAAP;AACD;;AAED,SAASO,UAAT,CAAoBC,GAApB,EAAyBR,KAAzB,EAAgC;AAC9B,MAAMS,QAAQ,2CAAd;AACA,MAAMC,OAAO,CAACD,MAAME,IAAN,CAAWH,GAAX,KAAmB,EAApB,EAAwB,CAAxB,CAAb;;AAEA,MAAI,CAACE,IAAL,EAAW;AACT,UAAME,YAAY,oBAAoBJ,GAAhC,CAAN;AACD;;AAED,UAAQE,IAAR;AACE,SAAK,GAAL;AACE,aAAOV,MAAM,CAAC,IAAD,EAAO,CAAP,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOA,MAAMa,WAAWL,GAAX,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMc,UAAUN,GAAV,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMe,YAAYP,GAAZ,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMgB,aAAaR,GAAb,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOR,MAAMiB,oBAAoBT,GAApB,CAAN,CAAP;AACF,SAAK,GAAL;AACE,aAAOU,YAAYV,GAAZ,EAAiBR,KAAjB,CAAP;AACF,SAAK,GAAL;AACE,aAAOmB,aAAaX,GAAb,EAAkBR,KAAlB,CAAP;AACF,SAAK,GAAL;AACE,aAAOoB,YAAYZ,GAAZ,EAAiBR,KAAjB,CAAP;AACF,SAAK,GAAL;AACA,SAAK,GAAL;AACE,aAAOqB,gBAAgBb,GAAhB,EAAqBR,KAArB,CAAP;AACF;AACE,YAAMY,mDAAiDF,IAAjD,CAAN;AAvBJ;AAyBD;;AAED,SAASG,UAAT,CAAoBL,GAApB,EAAyB;AACvB,MAAMc,SAAS,YAAf;;AADuB,aAEIA,OAAOX,IAAP,CAAYH,GAAZ,KAAoB,EAFxB;AAAA;AAAA,MAEhBe,KAFgB;AAAA,MAETC,SAFS;;AAIvB,MAAI,CAACA,SAAL,EAAgB;AACd,UAAMZ,YAAY,qCAAZ,CAAN;AACD;;AAED,SAAO,CAACY,cAAc,GAAf,EAAoBD,MAAMlB,MAA1B,CAAP;AACD;;AAED,SAASS,SAAT,CAAmBN,GAAnB,EAAwB;AACtB,MAAMiB,QAAQ,gBAAd;;AADsB,cAEIA,MAAMd,IAAN,CAAWH,GAAX,KAAmB,EAFvB;AAAA;AAAA,MAEfe,KAFe;AAAA,MAERG,QAFQ;;AAItB,MAAI,CAACA,QAAL,EAAe;AACb,UAAMd,YAAY,2BAAZ,CAAN;AACD;;AAED,SAAO,CAACe,SAASD,QAAT,EAAmB,EAAnB,CAAD,EAAyBH,MAAMlB,MAA/B,CAAP;AACD;;AAED,SAASU,WAAT,CAAqBP,GAArB,EAA0B;AACxB,MAAMoB,UAAU,2DAAhB;;AADwB,cAEIA,QAAQjB,IAAR,CAAaH,GAAb,KAAqB,EAFzB;AAAA;AAAA,MAEjBe,KAFiB;AAAA,MAEVM,UAFU;;AAIxB,MAAI,CAACA,UAAL,EAAiB;AACf,UAAMjB,YAAY,wBAAZ,CAAN;AACD;;AAED,MAAIkB,mBAAJ;;AAEA,UAAQD,UAAR;AACE,SAAK,KAAL;AACEC,mBAAaC,OAAOC,GAApB;AACA;AACF,SAAK,MAAL;AACEF,mBAAaC,OAAOE,iBAApB;AACA;AACF,SAAK,KAAL;AACEH,mBAAaC,OAAOG,iBAApB;AACA;AACF;AACEJ,mBAAaK,WAAWN,UAAX,CAAb;AACA;AAZJ;;AAeA,SAAO,CAACC,UAAD,EAAaP,MAAMlB,MAAnB,CAAP;AACD;;AAED,SAAS+B,SAAT,CAAmB5B,GAAnB,EAAwB6B,GAAxB,EAAoD;AAAA,MAAvBC,aAAuB,uEAAP,KAAO;;AAClD,MAAIC,QAAQ,CAAZ;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,IAAI,CAAR;AACA,MAAMC,SAASlC,IAAIH,MAAnB;AACA,MAAIsC,mBAAmB,KAAvB;AACA,MAAIC,eAAe,CAAnB;;AAEA,SAAOL,QAAQF,GAAR,IAAeI,IAAIC,MAA1B,EAAkC;AAChC,QAAIG,MAAMrC,IAAIsC,MAAJ,CAAWL,CAAX,CAAV;AACA,QAAMM,OAAOF,IAAIG,UAAJ,CAAe,CAAf,CAAb;AACA,QAAMC,kBAAkBF,QAAQ,MAAR,IAAkBA,QAAQ,MAAlD;AACA,QAAMG,iBAAiBH,QAAQ,MAAR,IAAkBA,QAAQ,MAAjD;;AAEA,QAAIT,iBAAiBO,QAAQ,IAA7B,EAAmC;AACjCA,YAAMM,OAAOC,YAAP,CAAoBzB,SAASnB,IAAI6C,MAAJ,CAAWZ,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAApB,CAAN;AACAG;;AAEA;AACA;AACAH,WAAK,CAAL;AACD;;AAEDA;;AAEAF,aACEU,mBAAoBC,kBAAkBP,gBAAtC,GACI;AACA;AACA,KAHJ,GAIII,OAAO,KAAP,GACE;AACA,KAFF,GAGEA,OAAO,IAAP,GACE,CADF,GAEE,CAVV;;AAYA;AACAR,aAASI,oBAAoB,CAACO,cAArB,GAAsC,CAAtC,GAA0C,CAAnD;;AAEAV,WAAOK,GAAP;AACAF,uBAAmBM,eAAnB;AACD;;AAED,SAAO,CAACT,GAAD,EAAMD,KAAN,EAAaK,YAAb,CAAP;AACD;;AAED,SAAS5B,YAAT,CAAsBR,GAAtB,EAA2B;AACzB;AACA;AACA;AACA,MAAM8C,cAAc,aAApB,CAJyB,CAIS;;AAJT,cAKKA,YAAY3C,IAAZ,CAAiBH,GAAjB,KAAyB,EAL9B;AAAA;AAAA,MAKlBe,KALkB;AAAA,MAKXgC,YALW;;AAOzB,MAAI,CAAChC,KAAL,EAAY;AACV,UAAMX,YAAY,yBAAZ,CAAN;AACD;;AAED,MAAMyB,MAAMV,SAAS4B,YAAT,EAAuB,EAAvB,CAAZ;;AAEA/C,QAAMA,IAAI6C,MAAJ,CAAW9B,MAAMlB,MAAjB,CAAN;;AAbyB,mBAeC+B,UAAU5B,GAAV,EAAe6B,GAAf,CAfD;AAAA;AAAA,MAelBmB,QAfkB;AAAA,MAeRjB,KAfQ;;AAiBzB,MAAIA,UAAUF,GAAd,EAAmB;AACjB,UAAMzB,oCAAkCyB,GAAlC,wBAAwDE,KAAxD,CAAN;AACD;;AAED/B,QAAMA,IAAI6C,MAAJ,CAAWG,SAASnD,MAApB,CAAN;;AAEA;AACA,MAAI,CAACG,IAAIiD,UAAJ,CAAe,IAAf,CAAL,EAA2B;AACzB,UAAM7C,YAAY,aAAZ,CAAN;AACD;;AAED,SAAO,CAAC4C,QAAD,EAAWjC,MAAMlB,MAAN,GAAemD,SAASnD,MAAxB,GAAiC,CAA5C,CAAP,CA5ByB,CA4B6B;AACvD;;AAED,SAASY,mBAAT,CAA6BT,GAA7B,EAAkC;AAChC,MAAM8C,cAAc,aAApB,CADgC,CACE;;AADF,cAEHA,YAAY3C,IAAZ,CAAiBH,GAAjB,KAAyB,EAFtB;AAAA;AAAA,MAEzBe,KAFyB;AAAA,MAElBmC,WAFkB;;AAIhC,MAAI,CAACnC,KAAL,EAAY;AACV,UAAMX,YAAY,kCAAZ,CAAN;AACD;;AAED,MAAMyB,MAAMV,SAAS+B,WAAT,EAAsB,EAAtB,CAAZ;;AAEAlD,QAAMA,IAAI6C,MAAJ,CAAW9B,MAAMlB,MAAjB,CAAN;;AAVgC,oBAYQ+B,UAAU5B,GAAV,EAAe6B,GAAf,EAAoB,IAApB,CAZR;AAAA;AAAA,MAYzBmB,QAZyB;AAAA,MAYfjB,KAZe;AAAA,MAYRK,YAZQ;;AAchC,MAAIL,UAAUF,GAAd,EAAmB;AACjB,UAAMzB,4CAA0CyB,GAA1C,wBAAgEE,KAAhE,CAAN;AACD;;AAED/B,QAAMA,IAAI6C,MAAJ,CAAWG,SAASnD,MAAT,GAAkBuC,eAAe,CAA5C,CAAN;;AAEA;AACA,MAAI,CAACpC,IAAIiD,UAAJ,CAAe,IAAf,CAAL,EAA2B;AACzB,UAAM7C,YAAY,aAAZ,CAAN;AACD;;AAED,SAAO,CAAC4C,QAAD,EAAWjC,MAAMlB,MAAN,GAAemD,SAASnD,MAAxB,GAAiC,CAA5C,CAAP,CAzBgC,CAyBsB;AACvD;;AAED,SAASsD,gBAAT,CAA0BnD,GAA1B,EAA+B;AAC7B,MAAI;AACF,WAAOQ,aAAaR,GAAb,CAAP;AACD,GAFD,CAEE,OAAOoD,GAAP,EAAY,CAAE;;AAEhB,MAAI;AACF,WAAO3C,oBAAoBT,GAApB,CAAP;AACD,GAFD,CAEE,OAAOoD,GAAP,EAAY,CAAE;;AAEhB,MAAI;AACF,WAAO9C,UAAUN,GAAV,CAAP;AACD,GAFD,CAEE,OAAOoD,GAAP,EAAY;AACZ,UAAMhD,YAAY,uBAAZ,CAAN;AACD;AACF;;AAED,SAASO,YAAT,CAAsBX,GAAtB,EAA2BR,KAA3B,EAAkC;AAChC;AACA;AACA,MAAM6D,kBAAkB,6BAAxB;;AAHgC,eAK9BA,gBAAgBlD,IAAhB,CAAqBH,GAArB,KAA6B,EALC;AAAA;AAAA,MAIzBsD,uBAJyB,CAID,0BAJC;AAAA,MAI6BC,SAJ7B;AAAA,MAIwCC,cAJxC;;AAOhC,MAAI,CAACF,uBAAL,EAA8B;AAC5B,UAAMlD,YAAY,eAAZ,CAAN;AACD;;AAED,MAAImD,cAAc,UAAlB,EAA8B;AAC5B,UAAMnD,0CAAwCmD,SAAxC,CAAN;AACD;;AAED,MAAIE,cAAcH,wBAAwBzD,MAA1C;;AAEA,MAAM6D,YAAYvC,SAASqC,cAAT,EAAyB,EAAzB,CAAlB;AACA,MAAMG,MAAM,EAAZ;AACAnE,QAAM,CAACmE,GAAD,CAAN;;AAEA3D,QAAMA,IAAI6C,MAAJ,CAAWY,WAAX,CAAN;;AAEA,OAAK,IAAIG,IAAI,CAAb,EAAgBA,IAAIF,SAApB,EAA+BE,GAA/B,EAAoC;AAClC,QAAMC,OAAOV,iBAAiBnD,GAAjB,CAAb;AACAA,UAAMA,IAAI6C,MAAJ,CAAWgB,KAAK,CAAL,CAAX,CAAN;AACAJ,mBAAeI,KAAK,CAAL,CAAf;;AAEA,QAAMpE,QAAQM,WAAWC,GAAX,EAAgBR,KAAhB,CAAd;AACAQ,UAAMA,IAAI6C,MAAJ,CAAWpD,MAAM,CAAN,CAAX,CAAN;AACAgE,mBAAehE,MAAM,CAAN,CAAf;;AAEAkE,QAAIE,KAAK,CAAL,CAAJ,IAAepE,MAAM,CAAN,CAAf;AACD;;AAED;AACA,MAAIO,IAAIsC,MAAJ,CAAW,CAAX,MAAkB,GAAtB,EAA2B;AACzB,UAAMlC,YAAY,YAAZ,CAAN;AACD;;AAED,SAAO,CAACuD,GAAD,EAAMF,cAAc,CAApB,CAAP,CAxCgC,CAwCF;AAC/B;;AAED,SAAS7C,WAAT,CAAqBZ,GAArB,EAA0BR,KAA1B,EAAiC;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAMsE,MAAM,qBAAN,CAAN;AACD;;AAED,SAASjD,eAAT,CAAyBb,GAAzB,EAA8BR,KAA9B,EAAqC;AACnC,MAAMuE,QAAQ,mBAAd;;AADmC,eAETA,MAAM5D,IAAN,CAAWH,GAAX,KAAmB,EAFV;AAAA;AAAA,MAE5Be,KAF4B;AAAA,MAErBiD,QAFqB;;AAInC,MAAI,CAACjD,KAAL,EAAY;AACV,UAAMX,YAAY,0BAAZ,CAAN;AACD;;AAED,SAAO,CAACZ,MAAMG,GAAN,CAAUwB,SAAS6C,QAAT,EAAmB,EAAnB,IAAyB,CAAnC,CAAD,EAAwCjD,MAAMlB,MAA9C,CAAP;AACD;;AAED,SAASa,WAAT,CAAqBV,GAArB,EAA0BR,KAA1B,EAAiC;AAC/B,MAAMyE,gBAAgB,YAAtB;;AAD+B,eAEoBA,cAAc9D,IAAd,CAAmBH,GAAnB,KAA2B,EAF/C;AAAA;AAAA,MAExBkE,sBAFwB;AAAA,MAEAC,gBAFA;;AAI/B,MAAI,CAACA,gBAAL,EAAuB;AACrB,UAAM/D,YAAY,kCAAZ,CAAN;AACD;;AAEDJ,QAAMA,IAAI6C,MAAJ,CAAWqB,uBAAuBrE,MAAlC,CAAN;;AAEA,MAAMuE,QAAQC,iBAAiBrE,GAAjB,EAAsBmB,SAASgD,gBAAT,EAA2B,EAA3B,CAAtB,EAAsD3E,KAAtD,CAAd;;AAEA;AACA,MAAIQ,IAAIsC,MAAJ,CAAW8B,MAAM,CAAN,CAAX,MAAyB,GAA7B,EAAkC;AAChC,UAAMhE,YAAY,YAAZ,CAAN;AACD;;AAED,SAAO,CAACgE,MAAM,CAAN,CAAD,EAAWF,uBAAuBrE,MAAvB,GAAgCuE,MAAM,CAAN,CAAhC,GAA2C,CAAtD,CAAP,CAjB+B,CAiBiC;AACjE;;AAED,SAASC,gBAAT,CAA0BrE,GAA1B,EAAyD;AAAA,MAA1BsE,aAA0B,uEAAV,CAAU;AAAA,MAAP9E,KAAO;;AACvD,MAAI+E,YAAJ;AACA,MAAIC,aAAJ;AACA,MAAIf,cAAc,CAAlB;AACA,MAAIgB,sBAAsB,IAA1B;AACA,MAAIC,YAAY,CAAC,CAAjB;AACA,MAAIC,QAAQ,EAAZ;AACAnF,QAAM,CAACmF,KAAD,CAAN;;AAEA,OAAK,IAAIf,IAAI,CAAb,EAAgBA,IAAIU,aAApB,EAAmCV,GAAnC,EAAwC;AACtCW,UAAMpB,iBAAiBnD,GAAjB,CAAN;;AAEAyE,0BAAsBA,uBAAuB,OAAOF,IAAI,CAAJ,CAAP,KAAkB,QAAzC,IAAqDA,IAAI,CAAJ,MAAWG,YAAY,CAAlG;AACAA,gBAAYH,IAAI,CAAJ,CAAZ;;AAEAvE,UAAMA,IAAI6C,MAAJ,CAAW0B,IAAI,CAAJ,CAAX,CAAN;AACAd,mBAAec,IAAI,CAAJ,CAAf;;AAEA;AACA;AACA;AACAC,WAAOzE,WAAWC,GAAX,EAAgBR,KAAhB,CAAP;AACAQ,UAAMA,IAAI6C,MAAJ,CAAW2B,KAAK,CAAL,CAAX,CAAN;AACAf,mBAAee,KAAK,CAAL,CAAf;;AAEAG,UAAMJ,IAAI,CAAJ,CAAN,IAAgBC,KAAK,CAAL,CAAhB;AACD;;AAED,MAAIC,mBAAJ,EAAyB;AACvBE,YAAQC,OAAOC,MAAP,CAAcF,KAAd,CAAR;AACD;;AAED,SAAO,CAACA,KAAD,EAAQlB,WAAR,CAAP;AACD;;AAEDqB,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAqBhF,GAArB,EAA0B;AACzC;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,MAAI;AACF,QAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;AAC3B,aAAO,KAAP;AACD;;AAED,WAAOD,WAAWC,GAAX,EAAgBV,WAAhB,EAA6B,CAA7B,CAAP;AACD,GAND,CAME,OAAO8D,GAAP,EAAY;AACZ6B,YAAQC,KAAR,CAAc9B,GAAd;AACA,WAAO,KAAP;AACD;AACF,CAlDD","file":"unserialize.js","sourcesContent":["function initCache() {\n const store = []\n // cache only first element, second is length to jump ahead for the parser\n const cache = function cache(value) {\n store.push(value[0])\n return value\n }\n\n cache.get = (index) => {\n if (index >= store.length) {\n throw RangeError(`Can't resolve reference ${index + 1}`)\n }\n\n return store[index]\n }\n\n return cache\n}\n\nfunction expectType(str, cache) {\n const types = /^(?:N(?=;)|[bidsSaOCrR](?=:)|[^:]+(?=:))/g\n const type = (types.exec(str) || [])[0]\n\n if (!type) {\n throw SyntaxError('Invalid input: ' + str)\n }\n\n switch (type) {\n case 'N':\n return cache([null, 2])\n case 'b':\n return cache(expectBool(str))\n case 'i':\n return cache(expectInt(str))\n case 'd':\n return cache(expectFloat(str))\n case 's':\n return cache(expectString(str))\n case 'S':\n return cache(expectEscapedString(str))\n case 'a':\n return expectArray(str, cache)\n case 'O':\n return expectObject(str, cache)\n case 'C':\n return expectClass(str, cache)\n case 'r':\n case 'R':\n return expectReference(str, cache)\n default:\n throw SyntaxError(`Invalid or unsupported data type: ${type}`)\n }\n}\n\nfunction expectBool(str) {\n const reBool = /^b:([01]);/\n const [match, boolMatch] = reBool.exec(str) || []\n\n if (!boolMatch) {\n throw SyntaxError('Invalid bool value, expected 0 or 1')\n }\n\n return [boolMatch === '1', match.length]\n}\n\nfunction expectInt(str) {\n const reInt = /^i:([+-]?\\d+);/\n const [match, intMatch] = reInt.exec(str) || []\n\n if (!intMatch) {\n throw SyntaxError('Expected an integer value')\n }\n\n return [parseInt(intMatch, 10), match.length]\n}\n\nfunction expectFloat(str) {\n const reFloat = /^d:(NAN|-?INF|(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)(?:[eE][+-]\\d+)?);/\n const [match, floatMatch] = reFloat.exec(str) || []\n\n if (!floatMatch) {\n throw SyntaxError('Expected a float value')\n }\n\n let floatValue\n\n switch (floatMatch) {\n case 'NAN':\n floatValue = Number.NaN\n break\n case '-INF':\n floatValue = Number.NEGATIVE_INFINITY\n break\n case 'INF':\n floatValue = Number.POSITIVE_INFINITY\n break\n default:\n floatValue = parseFloat(floatMatch)\n break\n }\n\n return [floatValue, match.length]\n}\n\nfunction readBytes(str, len, escapedString = false) {\n let bytes = 0\n let out = ''\n let c = 0\n const strLen = str.length\n let wasHighSurrogate = false\n let escapedChars = 0\n\n while (bytes < len && c < strLen) {\n let chr = str.charAt(c)\n const code = chr.charCodeAt(0)\n const isHighSurrogate = code >= 0xd800 && code <= 0xdbff\n const isLowSurrogate = code >= 0xdc00 && code <= 0xdfff\n\n if (escapedString && chr === '\\\\') {\n chr = String.fromCharCode(parseInt(str.substr(c + 1, 2), 16))\n escapedChars++\n\n // each escaped sequence is 3 characters. Go 2 chars ahead.\n // third character will be jumped over a few lines later\n c += 2\n }\n\n c++\n\n bytes +=\n isHighSurrogate || (isLowSurrogate && wasHighSurrogate)\n ? // if high surrogate, count 2 bytes, as expectation is to be followed by low surrogate\n // if low surrogate preceded by high surrogate, add 2 bytes\n 2\n : code > 0x7ff\n ? // otherwise low surrogate falls into this part\n 3\n : code > 0x7f\n ? 2\n : 1\n\n // if high surrogate is not followed by low surrogate, add 1 more byte\n bytes += wasHighSurrogate && !isLowSurrogate ? 1 : 0\n\n out += chr\n wasHighSurrogate = isHighSurrogate\n }\n\n return [out, bytes, escapedChars]\n}\n\nfunction expectString(str) {\n // PHP strings consist of one-byte characters.\n // JS uses 2 bytes with possible surrogate pairs.\n // Serialized length of 2 is still 1 JS string character\n const reStrLength = /^s:(\\d+):\"/g // also match the opening \" char\n const [match, byteLenMatch] = reStrLength.exec(str) || []\n\n if (!match) {\n throw SyntaxError('Expected a string value')\n }\n\n const len = parseInt(byteLenMatch, 10)\n\n str = str.substr(match.length)\n\n const [strMatch, bytes] = readBytes(str, len)\n\n if (bytes !== len) {\n throw SyntaxError(`Expected string of ${len} bytes, but got ${bytes}`)\n }\n\n str = str.substr(strMatch.length)\n\n // strict parsing, match closing \"; chars\n if (!str.startsWith('\";')) {\n throw SyntaxError('Expected \";')\n }\n\n return [strMatch, match.length + strMatch.length + 2] // skip last \";\n}\n\nfunction expectEscapedString(str) {\n const reStrLength = /^S:(\\d+):\"/g // also match the opening \" char\n const [match, strLenMatch] = reStrLength.exec(str) || []\n\n if (!match) {\n throw SyntaxError('Expected an escaped string value')\n }\n\n const len = parseInt(strLenMatch, 10)\n\n str = str.substr(match.length)\n\n const [strMatch, bytes, escapedChars] = readBytes(str, len, true)\n\n if (bytes !== len) {\n throw SyntaxError(`Expected escaped string of ${len} bytes, but got ${bytes}`)\n }\n\n str = str.substr(strMatch.length + escapedChars * 2)\n\n // strict parsing, match closing \"; chars\n if (!str.startsWith('\";')) {\n throw SyntaxError('Expected \";')\n }\n\n return [strMatch, match.length + strMatch.length + 2] // skip last \";\n}\n\nfunction expectKeyOrIndex(str) {\n try {\n return expectString(str)\n } catch (err) {}\n\n try {\n return expectEscapedString(str)\n } catch (err) {}\n\n try {\n return expectInt(str)\n } catch (err) {\n throw SyntaxError('Expected key or index')\n }\n}\n\nfunction expectObject(str, cache) {\n // O:<class name length>:\"class name\":<prop count>:{<props and values>}\n // O:8:\"stdClass\":2:{s:3:\"foo\";s:3:\"bar\";s:3:\"bar\";s:3:\"baz\";}\n const reObjectLiteral = /^O:(\\d+):\"([^\"]+)\":(\\d+):\\{/\n const [objectLiteralBeginMatch /* classNameLengthMatch */, , className, propCountMatch] =\n reObjectLiteral.exec(str) || []\n\n if (!objectLiteralBeginMatch) {\n throw SyntaxError('Invalid input')\n }\n\n if (className !== 'stdClass') {\n throw SyntaxError(`Unsupported object type: ${className}`)\n }\n\n let totalOffset = objectLiteralBeginMatch.length\n\n const propCount = parseInt(propCountMatch, 10)\n const obj = {}\n cache([obj])\n\n str = str.substr(totalOffset)\n\n for (let i = 0; i < propCount; i++) {\n const prop = expectKeyOrIndex(str)\n str = str.substr(prop[1])\n totalOffset += prop[1]\n\n const value = expectType(str, cache)\n str = str.substr(value[1])\n totalOffset += value[1]\n\n obj[prop[0]] = value[0]\n }\n\n // strict parsing, expect } after object literal\n if (str.charAt(0) !== '}') {\n throw SyntaxError('Expected }')\n }\n\n return [obj, totalOffset + 1] // skip final }\n}\n\nfunction expectClass(str, cache) {\n // can't be well supported, because requires calling eval (or similar)\n // in order to call serialized constructor name\n // which is unsafe\n // or assume that constructor is defined in global scope\n // but this is too much limiting\n throw Error('Not yet implemented')\n}\n\nfunction expectReference(str, cache) {\n const reRef = /^[rR]:([1-9]\\d*);/\n const [match, refIndex] = reRef.exec(str) || []\n\n if (!match) {\n throw SyntaxError('Expected reference value')\n }\n\n return [cache.get(parseInt(refIndex, 10) - 1), match.length]\n}\n\nfunction expectArray(str, cache) {\n const reArrayLength = /^a:(\\d+):{/\n const [arrayLiteralBeginMatch, arrayLengthMatch] = reArrayLength.exec(str) || []\n\n if (!arrayLengthMatch) {\n throw SyntaxError('Expected array length annotation')\n }\n\n str = str.substr(arrayLiteralBeginMatch.length)\n\n const array = expectArrayItems(str, parseInt(arrayLengthMatch, 10), cache)\n\n // strict parsing, expect closing } brace after array literal\n if (str.charAt(array[1]) !== '}') {\n throw SyntaxError('Expected }')\n }\n\n return [array[0], arrayLiteralBeginMatch.length + array[1] + 1] // jump over }\n}\n\nfunction expectArrayItems(str, expectedItems = 0, cache) {\n let key\n let item\n let totalOffset = 0\n let hasContinousIndexes = true\n let lastIndex = -1\n let items = {}\n cache([items])\n\n for (let i = 0; i < expectedItems; i++) {\n key = expectKeyOrIndex(str)\n\n hasContinousIndexes = hasContinousIndexes && typeof key[0] === 'number' && key[0] === lastIndex + 1\n lastIndex = key[0]\n\n str = str.substr(key[1])\n totalOffset += key[1]\n\n // references are resolved immediately, so if duplicate key overwrites previous array index\n // the old value is anyway resolved\n // fixme: but next time the same reference should point to the new value\n item = expectType(str, cache)\n str = str.substr(item[1])\n totalOffset += item[1]\n\n items[key[0]] = item[0]\n }\n\n if (hasContinousIndexes) {\n items = Object.values(items)\n }\n\n return [items, totalOffset]\n}\n\nmodule.exports = function unserialize(str) {\n // discuss at: https://locutus.io/php/unserialize/\n // original by: Arpad Ray (mailto:arpad@php.net)\n // improved by: Pedro Tainha (https://www.pedrotainha.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Chris\n // improved by: James\n // improved by: Le Torbi\n // improved by: Eli Skeggs\n // bugfixed by: dptr1988\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: philippsimon (https://github.com/philippsimon/)\n // revised by: d3x\n // input by: Brett Zamir (https://brett-zamir.me)\n // input by: Martin (https://www.erlenwiese.de/)\n // input by: kilops\n // input by: Jaroslaw Czarniak\n // input by: lovasoa (https://github.com/lovasoa/)\n // improved by: Rafał Kukawski\n // reimplemented by: Rafał Kukawski\n // note 1: We feel the main purpose of this function should be\n // note 1: to ease the transport of data between php & js\n // note 1: Aiming for PHP-compatibility, we have to translate objects to arrays\n // example 1: unserialize('a:3:{i:0;s:5:\"Kevin\";i:1;s:3:\"van\";i:2;s:9:\"Zonneveld\";}')\n // returns 1: ['Kevin', 'van', 'Zonneveld']\n // example 2: unserialize('a:2:{s:9:\"firstName\";s:5:\"Kevin\";s:7:\"midName\";s:3:\"van\";}')\n // returns 2: {firstName: 'Kevin', midName: 'van'}\n // example 3: unserialize('a:3:{s:2:\"ü\";s:2:\"ü\";s:3:\"四\";s:3:\"四\";s:4:\"𠜎\";s:4:\"𠜎\";}')\n // returns 3: {'ü': 'ü', '四': '四', '𠜎': '𠜎'}\n // example 4: unserialize(undefined)\n // returns 4: false\n // example 5: unserialize('O:8:\"stdClass\":1:{s:3:\"foo\";b:1;}')\n // returns 5: { foo: true }\n // example 6: unserialize('a:2:{i:0;N;i:1;s:0:\"\";}')\n // returns 6: [null, \"\"]\n // example 7: unserialize('S:7:\"\\\\65\\\\73\\\\63\\\\61\\\\70\\\\65\\\\64\";')\n // returns 7: 'escaped'\n\n try {\n if (typeof str !== 'string') {\n return false\n }\n\n return expectType(str, initCache())[0]\n } catch (err) {\n console.error(err)\n return false\n }\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
4
 
5
5
  module.exports = function var_dump() {
6
- // eslint-disable-line camelcase
7
6
  // discuss at: https://locutus.io/php/var_dump/
8
7
  // original by: Brett Zamir (https://brett-zamir.me)
9
8
  // improved by: Zahlii
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/var/var_dump.js"],"names":["module","exports","var_dump","echo","require","output","padChar","padVal","lgth","i","_getFuncName","fn","name","exec","_repeatChar","len","str","_getInnerVal","val","thickPad","ret","length","parseFloat","parseInt","funcLines","toString","split","fll","Date","RegExp","nodeName","nodeType","namespaceURI","nodeValue","_formatArray","obj","curDepth","basePad","constructor","someProp","hasOwnProperty","key","objVal","arguments"],"mappings":"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","file":"var_dump.js","sourcesContent":["module.exports = function var_dump () { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/var_dump/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Zahlii\n // improved by: Brett Zamir (https://brett-zamir.me)\n // note 1: For returning a string, use var_export() with the second argument set to true\n // test: skip-all\n // example 1: var_dump(1)\n // returns 1: 'int(1)'\n\n const echo = require('../strings/echo')\n let output = ''\n const padChar = ' '\n const padVal = 4\n let lgth = 0\n let i = 0\n\n const _getFuncName = function (fn) {\n const name = (/\\W*function\\s+([\\w$]+)\\s*\\(/)\n .exec(fn)\n if (!name) {\n return '(Anonymous)'\n }\n return name[1]\n }\n\n const _repeatChar = function (len, padChar) {\n let str = ''\n for (let i = 0; i < len; i++) {\n str += padChar\n }\n return str\n }\n const _getInnerVal = function (val, thickPad) {\n let ret = ''\n if (val === null) {\n ret = 'NULL'\n } else if (typeof val === 'boolean') {\n ret = 'bool(' + val + ')'\n } else if (typeof val === 'string') {\n ret = 'string(' + val.length + ') \"' + val + '\"'\n } else if (typeof val === 'number') {\n if (parseFloat(val) === parseInt(val, 10)) {\n ret = 'int(' + val + ')'\n } else {\n ret = 'float(' + val + ')'\n }\n } else if (typeof val === 'undefined') {\n // The remaining are not PHP behavior because these values\n // only exist in this exact form in JavaScript\n ret = 'undefined'\n } else if (typeof val === 'function') {\n const funcLines = val.toString()\n .split('\\n')\n ret = ''\n for (let i = 0, fll = funcLines.length; i < fll; i++) {\n ret += (i !== 0 ? '\\n' + thickPad : '') + funcLines[i]\n }\n } else if (val instanceof Date) {\n ret = 'Date(' + val + ')'\n } else if (val instanceof RegExp) {\n ret = 'RegExp(' + val + ')'\n } else if (val.nodeName) {\n // Different than PHP's DOMElement\n switch (val.nodeType) {\n case 1:\n if (typeof val.namespaceURI === 'undefined' ||\n val.namespaceURI === 'https://www.w3.org/1999/xhtml') {\n // Undefined namespace could be plain XML, but namespaceURI not widely supported\n ret = 'HTMLElement(\"' + val.nodeName + '\")'\n } else {\n ret = 'XML Element(\"' + val.nodeName + '\")'\n }\n break\n case 2:\n ret = 'ATTRIBUTE_NODE(' + val.nodeName + ')'\n break\n case 3:\n ret = 'TEXT_NODE(' + val.nodeValue + ')'\n break\n case 4:\n ret = 'CDATA_SECTION_NODE(' + val.nodeValue + ')'\n break\n case 5:\n ret = 'ENTITY_REFERENCE_NODE'\n break\n case 6:\n ret = 'ENTITY_NODE'\n break\n case 7:\n ret = 'PROCESSING_INSTRUCTION_NODE(' + val.nodeName + ':' + val.nodeValue + ')'\n break\n case 8:\n ret = 'COMMENT_NODE(' + val.nodeValue + ')'\n break\n case 9:\n ret = 'DOCUMENT_NODE'\n break\n case 10:\n ret = 'DOCUMENT_TYPE_NODE'\n break\n case 11:\n ret = 'DOCUMENT_FRAGMENT_NODE'\n break\n case 12:\n ret = 'NOTATION_NODE'\n break\n }\n }\n return ret\n }\n\n var _formatArray = function (obj, curDepth, padVal, padChar) {\n if (curDepth > 0) {\n curDepth++\n }\n\n const basePad = _repeatChar(padVal * (curDepth - 1), padChar)\n const thickPad = _repeatChar(padVal * (curDepth + 1), padChar)\n let str = ''\n let val = ''\n\n if (typeof obj === 'object' && obj !== null) {\n if (obj.constructor && _getFuncName(obj.constructor) === 'LOCUTUS_Resource') {\n return obj.var_dump()\n }\n lgth = 0\n for (const someProp in obj) {\n if (obj.hasOwnProperty(someProp)) {\n lgth++\n }\n }\n str += 'array(' + lgth + ') {\\n'\n for (const key in obj) {\n const objVal = obj[key]\n if (typeof objVal === 'object' &&\n objVal !== null &&\n !(objVal instanceof Date) &&\n !(objVal instanceof RegExp) &&\n !objVal.nodeName) {\n str += thickPad\n str += '['\n str += key\n str += '] =>\\n'\n str += thickPad\n str += _formatArray(objVal, curDepth + 1, padVal, padChar)\n } else {\n val = _getInnerVal(objVal, thickPad)\n str += thickPad\n str += '['\n str += key\n str += '] =>\\n'\n str += thickPad\n str += val\n str += '\\n'\n }\n }\n str += basePad + '}\\n'\n } else {\n str = _getInnerVal(obj, thickPad)\n }\n return str\n }\n\n output = _formatArray(arguments[0], 0, padVal, padChar)\n for (i = 1; i < arguments.length; i++) {\n output += '\\n' + _formatArray(arguments[i], 0, padVal, padChar)\n }\n\n echo(output)\n\n // Not how PHP does it, but helps us test:\n return output\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/var/var_dump.js"],"names":["module","exports","var_dump","echo","require","output","padChar","padVal","lgth","i","_getFuncName","fn","name","exec","_repeatChar","len","str","_getInnerVal","val","thickPad","ret","length","parseFloat","parseInt","funcLines","toString","split","fll","Date","RegExp","nodeName","nodeType","namespaceURI","nodeValue","_formatArray","obj","curDepth","basePad","constructor","someProp","hasOwnProperty","key","objVal","arguments"],"mappings":"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","file":"var_dump.js","sourcesContent":["module.exports = function var_dump() {\n // discuss at: https://locutus.io/php/var_dump/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Zahlii\n // improved by: Brett Zamir (https://brett-zamir.me)\n // note 1: For returning a string, use var_export() with the second argument set to true\n // test: skip-all\n // example 1: var_dump(1)\n // returns 1: 'int(1)'\n\n const echo = require('../strings/echo')\n let output = ''\n const padChar = ' '\n const padVal = 4\n let lgth = 0\n let i = 0\n\n const _getFuncName = function (fn) {\n const name = /\\W*function\\s+([\\w$]+)\\s*\\(/.exec(fn)\n if (!name) {\n return '(Anonymous)'\n }\n return name[1]\n }\n\n const _repeatChar = function (len, padChar) {\n let str = ''\n for (let i = 0; i < len; i++) {\n str += padChar\n }\n return str\n }\n const _getInnerVal = function (val, thickPad) {\n let ret = ''\n if (val === null) {\n ret = 'NULL'\n } else if (typeof val === 'boolean') {\n ret = 'bool(' + val + ')'\n } else if (typeof val === 'string') {\n ret = 'string(' + val.length + ') \"' + val + '\"'\n } else if (typeof val === 'number') {\n if (parseFloat(val) === parseInt(val, 10)) {\n ret = 'int(' + val + ')'\n } else {\n ret = 'float(' + val + ')'\n }\n } else if (typeof val === 'undefined') {\n // The remaining are not PHP behavior because these values\n // only exist in this exact form in JavaScript\n ret = 'undefined'\n } else if (typeof val === 'function') {\n const funcLines = val.toString().split('\\n')\n ret = ''\n for (let i = 0, fll = funcLines.length; i < fll; i++) {\n ret += (i !== 0 ? '\\n' + thickPad : '') + funcLines[i]\n }\n } else if (val instanceof Date) {\n ret = 'Date(' + val + ')'\n } else if (val instanceof RegExp) {\n ret = 'RegExp(' + val + ')'\n } else if (val.nodeName) {\n // Different than PHP's DOMElement\n switch (val.nodeType) {\n case 1:\n if (typeof val.namespaceURI === 'undefined' || val.namespaceURI === 'https://www.w3.org/1999/xhtml') {\n // Undefined namespace could be plain XML, but namespaceURI not widely supported\n ret = 'HTMLElement(\"' + val.nodeName + '\")'\n } else {\n ret = 'XML Element(\"' + val.nodeName + '\")'\n }\n break\n case 2:\n ret = 'ATTRIBUTE_NODE(' + val.nodeName + ')'\n break\n case 3:\n ret = 'TEXT_NODE(' + val.nodeValue + ')'\n break\n case 4:\n ret = 'CDATA_SECTION_NODE(' + val.nodeValue + ')'\n break\n case 5:\n ret = 'ENTITY_REFERENCE_NODE'\n break\n case 6:\n ret = 'ENTITY_NODE'\n break\n case 7:\n ret = 'PROCESSING_INSTRUCTION_NODE(' + val.nodeName + ':' + val.nodeValue + ')'\n break\n case 8:\n ret = 'COMMENT_NODE(' + val.nodeValue + ')'\n break\n case 9:\n ret = 'DOCUMENT_NODE'\n break\n case 10:\n ret = 'DOCUMENT_TYPE_NODE'\n break\n case 11:\n ret = 'DOCUMENT_FRAGMENT_NODE'\n break\n case 12:\n ret = 'NOTATION_NODE'\n break\n }\n }\n return ret\n }\n\n const _formatArray = function (obj, curDepth, padVal, padChar) {\n if (curDepth > 0) {\n curDepth++\n }\n\n const basePad = _repeatChar(padVal * (curDepth - 1), padChar)\n const thickPad = _repeatChar(padVal * (curDepth + 1), padChar)\n let str = ''\n let val = ''\n\n if (typeof obj === 'object' && obj !== null) {\n if (obj.constructor && _getFuncName(obj.constructor) === 'LOCUTUS_Resource') {\n return obj.var_dump()\n }\n lgth = 0\n for (const someProp in obj) {\n if (obj.hasOwnProperty(someProp)) {\n lgth++\n }\n }\n str += 'array(' + lgth + ') {\\n'\n for (const key in obj) {\n const objVal = obj[key]\n if (\n typeof objVal === 'object' &&\n objVal !== null &&\n !(objVal instanceof Date) &&\n !(objVal instanceof RegExp) &&\n !objVal.nodeName\n ) {\n str += thickPad\n str += '['\n str += key\n str += '] =>\\n'\n str += thickPad\n str += _formatArray(objVal, curDepth + 1, padVal, padChar)\n } else {\n val = _getInnerVal(objVal, thickPad)\n str += thickPad\n str += '['\n str += key\n str += '] =>\\n'\n str += thickPad\n str += val\n str += '\\n'\n }\n }\n str += basePad + '}\\n'\n } else {\n str = _getInnerVal(obj, thickPad)\n }\n return str\n }\n\n output = _formatArray(arguments[0], 0, padVal, padChar)\n for (i = 1; i < arguments.length; i++) {\n output += '\\n' + _formatArray(arguments[i], 0, padVal, padChar)\n }\n\n echo(output)\n\n // Not how PHP does it, but helps us test:\n return output\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
4
 
5
5
  module.exports = function var_export(mixedExpression, boolReturn) {
6
- // eslint-disable-line camelcase
7
6
  // discuss at: https://locutus.io/php/var_export/
8
7
  // original by: Philip Peterson
9
8
  // improved by: johnrembo
@@ -124,7 +123,7 @@ module.exports = function var_export(mixedExpression, boolReturn) {
124
123
  // variables in JavaScript); if using instead in JavaScript and you
125
124
  // are using the namespaced version, note that create_function() will
126
125
  // not be available as a global
127
- retstr = "create_function ('" + funcParts[1] + "', '" + funcParts[2].replace(new RegExp("'", 'g'), "\\'") + "')";
126
+ retstr = "create_function ('" + funcParts[1] + "', '" + funcParts[2].replace(/'/g, "\\'") + "')";
128
127
  } else if (type === 'resource') {
129
128
  // Resources treated as null for var_export
130
129
  retstr = 'NULL';