locutus 2.0.12 → 2.0.16

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 (419) hide show
  1. package/_util/cli.js.map +1 -1
  2. package/_util/util.js +11 -16
  3. package/_util/util.js.map +1 -1
  4. package/c/index.js +2 -2
  5. package/c/index.js.map +1 -1
  6. package/c/math/index.js +2 -2
  7. package/c/math/index.js.map +1 -1
  8. package/c/stdio/index.js +1 -1
  9. package/c/stdio/index.js.map +1 -1
  10. package/c/stdio/sprintf.js +8 -1
  11. package/c/stdio/sprintf.js.map +1 -1
  12. package/golang/index.js +1 -1
  13. package/golang/index.js.map +1 -1
  14. package/golang/strings/Count.js +1 -1
  15. package/golang/strings/Count.js.map +1 -1
  16. package/golang/strings/index.js +4 -4
  17. package/golang/strings/index.js.map +1 -1
  18. package/index.js +5 -5
  19. package/index.js.map +1 -1
  20. package/package.json +39 -40
  21. package/php/_helpers/_bc.js +104 -48
  22. package/php/_helpers/_bc.js.map +1 -1
  23. package/php/_helpers/_phpCastString.js.map +1 -1
  24. package/php/_helpers/_php_cast_float.js.map +1 -1
  25. package/php/_helpers/_php_cast_int.js.map +1 -1
  26. package/php/_helpers/index.js +4 -4
  27. package/php/_helpers/index.js.map +1 -1
  28. package/php/array/array_change_key_case.js +2 -2
  29. package/php/array/array_change_key_case.js.map +1 -1
  30. package/php/array/array_chunk.js +1 -1
  31. package/php/array/array_chunk.js.map +1 -1
  32. package/php/array/array_column.js.map +1 -1
  33. package/php/array/array_combine.js.map +1 -1
  34. package/php/array/array_count_values.js.map +1 -1
  35. package/php/array/array_diff.js.map +1 -1
  36. package/php/array/array_diff_assoc.js.map +1 -1
  37. package/php/array/array_diff_key.js.map +1 -1
  38. package/php/array/array_diff_uassoc.js.map +1 -1
  39. package/php/array/array_diff_ukey.js.map +1 -1
  40. package/php/array/array_fill.js +1 -1
  41. package/php/array/array_fill.js.map +1 -1
  42. package/php/array/array_fill_keys.js.map +1 -1
  43. package/php/array/array_filter.js +1 -1
  44. package/php/array/array_filter.js.map +1 -1
  45. package/php/array/array_flip.js +1 -1
  46. package/php/array/array_flip.js.map +1 -1
  47. package/php/array/array_intersect.js.map +1 -1
  48. package/php/array/array_intersect_assoc.js.map +1 -1
  49. package/php/array/array_intersect_key.js.map +1 -1
  50. package/php/array/array_intersect_uassoc.js.map +1 -1
  51. package/php/array/array_intersect_ukey.js.map +1 -1
  52. package/php/array/array_keys.js.map +1 -1
  53. package/php/array/array_map.js.map +1 -1
  54. package/php/array/array_merge.js +1 -1
  55. package/php/array/array_merge.js.map +1 -1
  56. package/php/array/array_merge_recursive.js.map +1 -1
  57. package/php/array/array_multisort.js +16 -16
  58. package/php/array/array_multisort.js.map +1 -1
  59. package/php/array/array_pad.js +1 -1
  60. package/php/array/array_pad.js.map +1 -1
  61. package/php/array/array_pop.js.map +1 -1
  62. package/php/array/array_product.js.map +1 -1
  63. package/php/array/array_push.js.map +1 -1
  64. package/php/array/array_rand.js.map +1 -1
  65. package/php/array/array_reduce.js.map +1 -1
  66. package/php/array/array_replace.js.map +1 -1
  67. package/php/array/array_replace_recursive.js +1 -1
  68. package/php/array/array_replace_recursive.js.map +1 -1
  69. package/php/array/array_reverse.js +1 -1
  70. package/php/array/array_reverse.js.map +1 -1
  71. package/php/array/array_search.js.map +1 -1
  72. package/php/array/array_shift.js +0 -19
  73. package/php/array/array_shift.js.map +1 -1
  74. package/php/array/array_slice.js.map +1 -1
  75. package/php/array/array_splice.js.map +1 -1
  76. package/php/array/array_sum.js +1 -1
  77. package/php/array/array_sum.js.map +1 -1
  78. package/php/array/array_udiff.js.map +1 -1
  79. package/php/array/array_udiff_assoc.js.map +1 -1
  80. package/php/array/array_udiff_uassoc.js.map +1 -1
  81. package/php/array/array_uintersect.js.map +1 -1
  82. package/php/array/array_uintersect_uassoc.js.map +1 -1
  83. package/php/array/array_unique.js.map +1 -1
  84. package/php/array/array_unshift.js.map +1 -1
  85. package/php/array/array_values.js.map +1 -1
  86. package/php/array/array_walk.js.map +1 -1
  87. package/php/array/array_walk_recursive.js.map +1 -1
  88. package/php/array/arsort.js +3 -3
  89. package/php/array/arsort.js.map +1 -1
  90. package/php/array/asort.js +3 -3
  91. package/php/array/asort.js.map +1 -1
  92. package/php/array/count.js +1 -1
  93. package/php/array/count.js.map +1 -1
  94. package/php/array/current.js.map +1 -1
  95. package/php/array/each.js.map +1 -1
  96. package/php/array/end.js +1 -1
  97. package/php/array/end.js.map +1 -1
  98. package/php/array/in_array.js.map +1 -1
  99. package/php/array/index.js +73 -72
  100. package/php/array/index.js.map +1 -1
  101. package/php/array/key.js.map +1 -1
  102. package/php/array/krsort.js +3 -3
  103. package/php/array/krsort.js.map +1 -1
  104. package/php/array/ksort.js +3 -3
  105. package/php/array/ksort.js.map +1 -1
  106. package/php/array/natcasesort.js +2 -2
  107. package/php/array/natcasesort.js.map +1 -1
  108. package/php/array/natsort.js +2 -2
  109. package/php/array/natsort.js.map +1 -1
  110. package/php/array/next.js.map +1 -1
  111. package/php/array/pos.js.map +1 -1
  112. package/php/array/prev.js.map +1 -1
  113. package/php/array/range.js +3 -3
  114. package/php/array/range.js.map +1 -1
  115. package/php/array/reset.js.map +1 -1
  116. package/php/array/rsort.js +3 -3
  117. package/php/array/rsort.js.map +1 -1
  118. package/php/array/shuffle.js.map +1 -1
  119. package/php/array/sizeof.js.map +1 -1
  120. package/php/array/sort.js +3 -3
  121. package/php/array/sort.js.map +1 -1
  122. package/php/array/uasort.js.map +1 -1
  123. package/php/array/uksort.js.map +1 -1
  124. package/php/array/usort.js.map +1 -1
  125. package/php/bc/bcadd.js +3 -1
  126. package/php/bc/bcadd.js.map +1 -1
  127. package/php/bc/bccomp.js +2 -1
  128. package/php/bc/bccomp.js.map +1 -1
  129. package/php/bc/bcdiv.js +3 -1
  130. package/php/bc/bcdiv.js.map +1 -1
  131. package/php/bc/bcmul.js +3 -1
  132. package/php/bc/bcmul.js.map +1 -1
  133. package/php/bc/bcround.js +4 -2
  134. package/php/bc/bcround.js.map +1 -1
  135. package/php/bc/bcscale.js.map +1 -1
  136. package/php/bc/bcsub.js +3 -1
  137. package/php/bc/bcsub.js.map +1 -1
  138. package/php/bc/index.js +7 -7
  139. package/php/bc/index.js.map +1 -1
  140. package/php/ctype/ctype_alnum.js.map +1 -1
  141. package/php/ctype/ctype_alpha.js.map +1 -1
  142. package/php/ctype/ctype_cntrl.js.map +1 -1
  143. package/php/ctype/ctype_digit.js.map +1 -1
  144. package/php/ctype/ctype_graph.js.map +1 -1
  145. package/php/ctype/ctype_lower.js.map +1 -1
  146. package/php/ctype/ctype_print.js.map +1 -1
  147. package/php/ctype/ctype_punct.js.map +1 -1
  148. package/php/ctype/ctype_space.js.map +1 -1
  149. package/php/ctype/ctype_upper.js.map +1 -1
  150. package/php/ctype/ctype_xdigit.js.map +1 -1
  151. package/php/ctype/index.js +11 -11
  152. package/php/ctype/index.js.map +1 -1
  153. package/php/datetime/date.js +2 -1
  154. package/php/datetime/date.js.map +1 -1
  155. package/php/datetime/date_parse.js +1 -1
  156. package/php/datetime/date_parse.js.map +1 -1
  157. package/php/datetime/getdate.js.map +1 -1
  158. package/php/datetime/gettimeofday.js.map +1 -1
  159. package/php/datetime/gmdate.js.map +1 -1
  160. package/php/datetime/gmmktime.js.map +1 -1
  161. package/php/datetime/gmstrftime.js.map +1 -1
  162. package/php/datetime/idate.js +1 -1
  163. package/php/datetime/idate.js.map +1 -1
  164. package/php/datetime/index.js +15 -15
  165. package/php/datetime/index.js.map +1 -1
  166. package/php/datetime/microtime.js +3 -3
  167. package/php/datetime/microtime.js.map +1 -1
  168. package/php/datetime/mktime.js.map +1 -1
  169. package/php/datetime/strftime.js +2 -3
  170. package/php/datetime/strftime.js.map +1 -1
  171. package/php/datetime/strptime.js +20 -21
  172. package/php/datetime/strptime.js.map +1 -1
  173. package/php/datetime/strtotime.js +170 -4
  174. package/php/datetime/strtotime.js.map +1 -1
  175. package/php/exec/escapeshellarg.js +12 -4
  176. package/php/exec/escapeshellarg.js.map +1 -1
  177. package/php/exec/index.js +1 -1
  178. package/php/exec/index.js.map +1 -1
  179. package/php/filesystem/basename.js.map +1 -1
  180. package/php/filesystem/file_get_contents.js.map +1 -1
  181. package/php/filesystem/index.js +5 -5
  182. package/php/filesystem/index.js.map +1 -1
  183. package/php/filesystem/pathinfo.js +7 -8
  184. package/php/filesystem/pathinfo.js.map +1 -1
  185. package/php/filesystem/realpath.js.map +1 -1
  186. package/php/funchand/call_user_func.js.map +1 -1
  187. package/php/funchand/call_user_func_array.js +1 -1
  188. package/php/funchand/call_user_func_array.js.map +1 -1
  189. package/php/funchand/function_exists.js.map +1 -1
  190. package/php/funchand/get_defined_functions.js.map +1 -1
  191. package/php/funchand/index.js +5 -5
  192. package/php/funchand/index.js.map +1 -1
  193. package/php/i18n/i18n_loc_get_default.js.map +1 -1
  194. package/php/i18n/i18n_loc_set_default.js.map +1 -1
  195. package/php/i18n/index.js +2 -2
  196. package/php/i18n/index.js.map +1 -1
  197. package/php/index.js +19 -19
  198. package/php/index.js.map +1 -1
  199. package/php/info/assert_options.js +2 -1
  200. package/php/info/assert_options.js.map +1 -1
  201. package/php/info/index.js +6 -6
  202. package/php/info/index.js.map +1 -1
  203. package/php/info/ini_get.js.map +1 -1
  204. package/php/info/ini_set.js.map +1 -1
  205. package/php/info/set_time_limit.js.map +1 -1
  206. package/php/info/version_compare.js +21 -22
  207. package/php/info/version_compare.js.map +1 -1
  208. package/php/json/index.js +3 -3
  209. package/php/json/index.js.map +1 -1
  210. package/php/json/json_decode.js +1 -1
  211. package/php/json/json_decode.js.map +1 -1
  212. package/php/json/json_encode.js +1 -1
  213. package/php/json/json_encode.js.map +1 -1
  214. package/php/json/json_last_error.js.map +1 -1
  215. package/php/math/fmod.js +2 -2
  216. package/php/math/fmod.js.map +1 -1
  217. package/php/math/hypot.js.map +1 -1
  218. package/php/math/index.js +46 -46
  219. package/php/math/index.js.map +1 -1
  220. package/php/math/is_finite.js.map +1 -1
  221. package/php/math/is_infinite.js.map +1 -1
  222. package/php/math/is_nan.js.map +1 -1
  223. package/php/math/log1p.js.map +1 -1
  224. package/php/math/max.js +7 -7
  225. package/php/math/max.js.map +1 -1
  226. package/php/math/min.js +5 -5
  227. package/php/math/min.js.map +1 -1
  228. package/php/math/mt_rand.js.map +1 -1
  229. package/php/math/rand.js.map +1 -1
  230. package/php/math/round.js +1 -1
  231. package/php/math/round.js.map +1 -1
  232. package/php/misc/index.js +2 -2
  233. package/php/misc/index.js.map +1 -1
  234. package/php/misc/pack.js +23 -18
  235. package/php/misc/pack.js.map +1 -1
  236. package/php/misc/uniqid.js +1 -1
  237. package/php/misc/uniqid.js.map +1 -1
  238. package/php/net-gopher/gopher_parsedir.js +3 -4
  239. package/php/net-gopher/gopher_parsedir.js.map +1 -1
  240. package/php/net-gopher/index.js +1 -1
  241. package/php/net-gopher/index.js.map +1 -1
  242. package/php/network/index.js +6 -6
  243. package/php/network/index.js.map +1 -1
  244. package/php/network/inet_ntop.js.map +1 -1
  245. package/php/network/inet_pton.js +40 -32
  246. package/php/network/inet_pton.js.map +1 -1
  247. package/php/network/setcookie.js.map +1 -1
  248. package/php/network/setrawcookie.js.map +1 -1
  249. package/php/pcre/index.js +4 -3
  250. package/php/pcre/index.js.map +1 -1
  251. package/php/pcre/preg_replace.js +24 -0
  252. package/php/pcre/preg_replace.js.map +1 -0
  253. package/php/pcre/sql_regcase.js.map +1 -1
  254. package/php/strings/addcslashes.js.map +1 -1
  255. package/php/strings/bin2hex.js +3 -3
  256. package/php/strings/bin2hex.js.map +1 -1
  257. package/php/strings/chop.js.map +1 -1
  258. package/php/strings/convert_cyr_string.js +1 -1
  259. package/php/strings/convert_cyr_string.js.map +1 -1
  260. package/php/strings/convert_uuencode.js.map +1 -1
  261. package/php/strings/count_chars.js +1 -1
  262. package/php/strings/count_chars.js.map +1 -1
  263. package/php/strings/crc32.js.map +1 -1
  264. package/php/strings/echo.js.map +1 -1
  265. package/php/strings/explode.js.map +1 -1
  266. package/php/strings/get_html_translation_table.js +1 -1
  267. package/php/strings/get_html_translation_table.js.map +1 -1
  268. package/php/strings/hex2bin.js +1 -1
  269. package/php/strings/hex2bin.js.map +1 -1
  270. package/php/strings/html_entity_decode.js.map +1 -1
  271. package/php/strings/htmlentities.js.map +1 -1
  272. package/php/strings/htmlspecialchars.js +6 -6
  273. package/php/strings/htmlspecialchars.js.map +1 -1
  274. package/php/strings/htmlspecialchars_decode.js +6 -6
  275. package/php/strings/htmlspecialchars_decode.js.map +1 -1
  276. package/php/strings/implode.js.map +1 -1
  277. package/php/strings/index.js +91 -91
  278. package/php/strings/index.js.map +1 -1
  279. package/php/strings/join.js.map +1 -1
  280. package/php/strings/lcfirst.js.map +1 -1
  281. package/php/strings/levenshtein.js +6 -1
  282. package/php/strings/levenshtein.js.map +1 -1
  283. package/php/strings/localeconv.js.map +1 -1
  284. package/php/strings/ltrim.js.map +1 -1
  285. package/php/strings/md5.js +19 -15
  286. package/php/strings/md5.js.map +1 -1
  287. package/php/strings/md5_file.js.map +1 -1
  288. package/php/strings/metaphone.js +2 -2
  289. package/php/strings/metaphone.js.map +1 -1
  290. package/php/strings/money_format.js.map +1 -1
  291. package/php/strings/nl2br.js.map +1 -1
  292. package/php/strings/nl_langinfo.js.map +1 -1
  293. package/php/strings/number_format.js.map +1 -1
  294. package/php/strings/ord.js.map +1 -1
  295. package/php/strings/parse_str.js +13 -13
  296. package/php/strings/parse_str.js.map +1 -1
  297. package/php/strings/printf.js.map +1 -1
  298. package/php/strings/quoted_printable_decode.js.map +1 -1
  299. package/php/strings/quoted_printable_encode.js.map +1 -1
  300. package/php/strings/rtrim.js.map +1 -1
  301. package/php/strings/setlocale.js +18 -19
  302. package/php/strings/setlocale.js.map +1 -1
  303. package/php/strings/sha1.js +12 -7
  304. package/php/strings/sha1.js.map +1 -1
  305. package/php/strings/sha1_file.js.map +1 -1
  306. package/php/strings/similar_text.js +4 -4
  307. package/php/strings/similar_text.js.map +1 -1
  308. package/php/strings/soundex.js +3 -3
  309. package/php/strings/soundex.js.map +1 -1
  310. package/php/strings/split.js.map +1 -1
  311. package/php/strings/sprintf.js +7 -2
  312. package/php/strings/sprintf.js.map +1 -1
  313. package/php/strings/sscanf.js +2 -2
  314. package/php/strings/sscanf.js.map +1 -1
  315. package/php/strings/str_getcsv.js +2 -2
  316. package/php/strings/str_getcsv.js.map +1 -1
  317. package/php/strings/str_ireplace.js +6 -0
  318. package/php/strings/str_ireplace.js.map +1 -1
  319. package/php/strings/str_pad.js +1 -1
  320. package/php/strings/str_pad.js.map +1 -1
  321. package/php/strings/str_repeat.js.map +1 -1
  322. package/php/strings/str_replace.js +6 -0
  323. package/php/strings/str_replace.js.map +1 -1
  324. package/php/strings/str_shuffle.js +1 -1
  325. package/php/strings/str_shuffle.js.map +1 -1
  326. package/php/strings/str_split.js.map +1 -1
  327. package/php/strings/str_word_count.js.map +1 -1
  328. package/php/strings/strcasecmp.js.map +1 -1
  329. package/php/strings/strchr.js.map +1 -1
  330. package/php/strings/strcoll.js.map +1 -1
  331. package/php/strings/strip_tags.js.map +1 -1
  332. package/php/strings/stripos.js.map +1 -1
  333. package/php/strings/stristr.js.map +1 -1
  334. package/php/strings/strlen.js.map +1 -1
  335. package/php/strings/strnatcasecmp.js.map +1 -1
  336. package/php/strings/strnatcmp.js.map +1 -1
  337. package/php/strings/strncasecmp.js +1 -1
  338. package/php/strings/strncasecmp.js.map +1 -1
  339. package/php/strings/strncmp.js.map +1 -1
  340. package/php/strings/strpbrk.js.map +1 -1
  341. package/php/strings/strpos.js.map +1 -1
  342. package/php/strings/strrchr.js.map +1 -1
  343. package/php/strings/strrev.js.map +1 -1
  344. package/php/strings/strripos.js.map +1 -1
  345. package/php/strings/strrpos.js.map +1 -1
  346. package/php/strings/strspn.js +3 -3
  347. package/php/strings/strspn.js.map +1 -1
  348. package/php/strings/strstr.js.map +1 -1
  349. package/php/strings/strtok.js.map +1 -1
  350. package/php/strings/strtr.js.map +1 -1
  351. package/php/strings/substr.js.map +1 -1
  352. package/php/strings/substr_count.js.map +1 -1
  353. package/php/strings/trim.js.map +1 -1
  354. package/php/strings/ucfirst.js.map +1 -1
  355. package/php/strings/vprintf.js.map +1 -1
  356. package/php/strings/vsprintf.js.map +1 -1
  357. package/php/strings/wordwrap.js +4 -2
  358. package/php/strings/wordwrap.js.map +1 -1
  359. package/php/url/base64_decode.js +8 -8
  360. package/php/url/base64_decode.js.map +1 -1
  361. package/php/url/base64_encode.js +8 -8
  362. package/php/url/base64_encode.js.map +1 -1
  363. package/php/url/http_build_query.js +4 -4
  364. package/php/url/http_build_query.js.map +1 -1
  365. package/php/url/index.js +8 -8
  366. package/php/url/index.js.map +1 -1
  367. package/php/url/parse_url.js +1 -1
  368. package/php/url/parse_url.js.map +1 -1
  369. package/php/var/doubleval.js.map +1 -1
  370. package/php/var/empty.js +4 -4
  371. package/php/var/empty.js.map +1 -1
  372. package/php/var/gettype.js +1 -1
  373. package/php/var/gettype.js.map +1 -1
  374. package/php/var/index.js +30 -30
  375. package/php/var/index.js.map +1 -1
  376. package/php/var/intval.js +2 -1
  377. package/php/var/intval.js.map +1 -1
  378. package/php/var/is_array.js.map +1 -1
  379. package/php/var/is_callable.js.map +1 -1
  380. package/php/var/is_double.js.map +1 -1
  381. package/php/var/is_integer.js.map +1 -1
  382. package/php/var/is_long.js.map +1 -1
  383. package/php/var/is_numeric.js.map +1 -1
  384. package/php/var/is_real.js.map +1 -1
  385. package/php/var/is_unicode.js.map +1 -1
  386. package/php/var/isset.js +1 -1
  387. package/php/var/isset.js.map +1 -1
  388. package/php/var/print_r.js.map +1 -1
  389. package/php/var/serialize.js +7 -5
  390. package/php/var/serialize.js.map +1 -1
  391. package/php/var/strval.js.map +1 -1
  392. package/php/var/unserialize.js +422 -236
  393. package/php/var/unserialize.js.map +1 -1
  394. package/php/var/var_dump.js +3 -3
  395. package/php/var/var_dump.js.map +1 -1
  396. package/php/var/var_export.js +5 -5
  397. package/php/var/var_export.js.map +1 -1
  398. package/php/xdiff/index.js +2 -2
  399. package/php/xdiff/index.js.map +1 -1
  400. package/php/xdiff/xdiff_string_diff.js +30 -30
  401. package/php/xdiff/xdiff_string_diff.js.map +1 -1
  402. package/php/xdiff/xdiff_string_patch.js +7 -8
  403. package/php/xdiff/xdiff_string_patch.js.map +1 -1
  404. package/php/xml/index.js +2 -2
  405. package/php/xml/index.js.map +1 -1
  406. package/php/xml/utf8_decode.js.map +1 -1
  407. package/php/xml/utf8_encode.js +2 -2
  408. package/php/xml/utf8_encode.js.map +1 -1
  409. package/python/index.js +1 -1
  410. package/python/index.js.map +1 -1
  411. package/python/string/capwords.js.map +1 -1
  412. package/python/string/index.js +4 -4
  413. package/python/string/index.js.map +1 -1
  414. package/python/string/punctuation.js +10 -0
  415. package/python/string/punctuation.js.map +1 -0
  416. package/ruby/Math/index.js +1 -1
  417. package/ruby/Math/index.js.map +1 -1
  418. package/ruby/index.js +1 -1
  419. package/ruby/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/datetime/strtotime.js"],"names":["reSpace","reSpaceOpt","reMeridian","reHour24","reHour24lz","reHour12","reMinute","reMinutelz","reSecond","reSecondlz","reFrac","reDayfull","reDayabbr","reDaytext","reReltextnumber","reReltexttext","reReltextunit","reYear","reYear2","reYear4","reYear4withSign","reMonth","reMonthlz","reDay","reDaylz","reMonthFull","reMonthAbbr","reMonthroman","reMonthText","reTzCorrection","reDayOfYear","reWeekOfYear","reDateNoYear","processMeridian","hour","meridian","toLowerCase","processYear","yearStr","year","length","lookupMonth","monthStr","jan","january","i","feb","february","ii","mar","march","iii","apr","april","iv","may","v","jun","june","vi","jul","july","vii","aug","august","viii","sep","sept","september","ix","oct","october","x","nov","november","xi","dec","december","xii","lookupWeekday","dayStr","desiredSundayNumber","dayNumbers","mon","monday","tue","tuesday","wed","wednesday","thu","thursday","fri","friday","sat","saturday","sun","sunday","lookupRelative","relText","relativeNumbers","last","previous","this","first","next","second","third","fourth","fifth","sixth","seventh","eight","eighth","ninth","tenth","eleventh","twelfth","relativeBehavior","relTextLower","amount","behavior","processTzCorrection","tzOffset","oldValue","reTzCorrectionLoose","match","sign","hours","minutes","Math","floor","formats","yesterday","regex","name","callback","rd","resetTime","now","noon","time","midnightOrToday","tomorrow","timestamp","rs","y","m","d","dates","zone","firstOrLastDay","day","firstOrLastDayOfMonth","backOrFrontOf","RegExp","side","back","minute","weekdayOf","mssqltime","frac","substr","timeLong12","timeShort12","timeTiny12","soap","month","tzCorrection","ymd","wddx","exif","xmlRpc","xmlRpcNoColon","clf","iso8601long","dateTextual","pointedDate4","pointedDate2","timeLong24","dateNoColon","pgydotd","timeShort24","iso8601noColon","iso8601dateSlash","dateSlash","american","americanShort","gnuDateShortOrIso8601date2","iso8601date4","gnuNoColon","times","f","gnuDateShorter","pgTextReverse","dateFull","dateNoDay","dateNoDayRev","pgTextShort","dateNoYear","dateNoYearRev","isoWeekDay","week","dayOfWeek","Date","getDay","relativeText","relValue","relUnit","ri","rh","rm","ry","weekday","weekdayBehavior","relative","signs","minuses","replace","pow","dayText","relativeTextWeek","isNaN","monthFullOrMonthAbbr","ago","rf","year4","whitespace","dateShortWithTimeLong","dateShortWithTimeLong12","dateShortWithTimeShort","dateShortWithTimeShort12","resultProto","NaN","h","s","z","zones","toDate","relativeTo","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","date","getTime","setFullYear","setHours","dow","diff","abs","result","setDate","setMonth","getTimezoneOffset","setUTCFullYear","setUTCHours","module","exports","strtotime","str","rules","Object","create","longestMatch","finalRule","l","format","apply"],"mappings":"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","file":"strtotime.js","sourcesContent":["const reSpace = '[ \\\\t]+'\nconst reSpaceOpt = '[ \\\\t]*'\nconst reMeridian = '(?:([ap])\\\\.?m\\\\.?([\\\\t ]|$))'\nconst reHour24 = '(2[0-4]|[01]?[0-9])'\nconst reHour24lz = '([01][0-9]|2[0-4])'\nconst reHour12 = '(0?[1-9]|1[0-2])'\nconst reMinute = '([0-5]?[0-9])'\nconst reMinutelz = '([0-5][0-9])'\nconst reSecond = '(60|[0-5]?[0-9])'\nconst reSecondlz = '(60|[0-5][0-9])'\nconst reFrac = '(?:\\\\.([0-9]+))'\n\nconst reDayfull = 'sunday|monday|tuesday|wednesday|thursday|friday|saturday'\nconst reDayabbr = 'sun|mon|tue|wed|thu|fri|sat'\nconst reDaytext = reDayfull + '|' + reDayabbr + '|weekdays?'\n\nconst reReltextnumber = 'first|second|third|fourth|fifth|sixth|seventh|eighth?|ninth|tenth|eleventh|twelfth'\nconst reReltexttext = 'next|last|previous|this'\nconst reReltextunit = '(?:second|sec|minute|min|hour|day|fortnight|forthnight|month|year)s?|weeks|' + reDaytext\n\nconst reYear = '([0-9]{1,4})'\nconst reYear2 = '([0-9]{2})'\nconst reYear4 = '([0-9]{4})'\nconst reYear4withSign = '([+-]?[0-9]{4})'\nconst reMonth = '(1[0-2]|0?[0-9])'\nconst reMonthlz = '(0[0-9]|1[0-2])'\nconst reDay = '(?:(3[01]|[0-2]?[0-9])(?:st|nd|rd|th)?)'\nconst reDaylz = '(0[0-9]|[1-2][0-9]|3[01])'\n\nconst reMonthFull = 'january|february|march|april|may|june|july|august|september|october|november|december'\nconst reMonthAbbr = 'jan|feb|mar|apr|may|jun|jul|aug|sept?|oct|nov|dec'\nconst reMonthroman = 'i[vx]|vi{0,3}|xi{0,2}|i{1,3}'\nconst reMonthText = '(' + reMonthFull + '|' + reMonthAbbr + '|' + reMonthroman + ')'\n\nconst reTzCorrection = '((?:GMT)?([+-])' + reHour24 + ':?' + reMinute + '?)'\nconst reDayOfYear = '(00[1-9]|0[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6])'\nconst reWeekOfYear = '(0[1-9]|[1-4][0-9]|5[0-3])'\n\nconst reDateNoYear = reMonthText + '[ .\\\\t-]*' + reDay + '[,.stndrh\\\\t ]*'\n\nfunction processMeridian (hour, meridian) {\n meridian = meridian && meridian.toLowerCase()\n\n switch (meridian) {\n case 'a':\n hour += hour === 12 ? -12 : 0\n break\n case 'p':\n hour += hour !== 12 ? 12 : 0\n break\n }\n\n return hour\n}\n\nfunction processYear (yearStr) {\n let year = +yearStr\n\n if (yearStr.length < 4 && year < 100) {\n year += year < 70 ? 2000 : 1900\n }\n\n return year\n}\n\nfunction lookupMonth (monthStr) {\n return {\n jan: 0,\n january: 0,\n i: 0,\n feb: 1,\n february: 1,\n ii: 1,\n mar: 2,\n march: 2,\n iii: 2,\n apr: 3,\n april: 3,\n iv: 3,\n may: 4,\n v: 4,\n jun: 5,\n june: 5,\n vi: 5,\n jul: 6,\n july: 6,\n vii: 6,\n aug: 7,\n august: 7,\n viii: 7,\n sep: 8,\n sept: 8,\n september: 8,\n ix: 8,\n oct: 9,\n october: 9,\n x: 9,\n nov: 10,\n november: 10,\n xi: 10,\n dec: 11,\n december: 11,\n xii: 11\n }[monthStr.toLowerCase()]\n}\n\nfunction lookupWeekday (dayStr, desiredSundayNumber = 0) {\n const dayNumbers = {\n mon: 1,\n monday: 1,\n tue: 2,\n tuesday: 2,\n wed: 3,\n wednesday: 3,\n thu: 4,\n thursday: 4,\n fri: 5,\n friday: 5,\n sat: 6,\n saturday: 6,\n sun: 0,\n sunday: 0\n }\n\n return dayNumbers[dayStr.toLowerCase()] || desiredSundayNumber\n}\n\nfunction lookupRelative (relText) {\n const relativeNumbers = {\n last: -1,\n previous: -1,\n this: 0,\n first: 1,\n next: 1,\n second: 2,\n third: 3,\n fourth: 4,\n fifth: 5,\n sixth: 6,\n seventh: 7,\n eight: 8,\n eighth: 8,\n ninth: 9,\n tenth: 10,\n eleventh: 11,\n twelfth: 12\n }\n\n const relativeBehavior = {\n this: 1\n }\n\n const relTextLower = relText.toLowerCase()\n\n return {\n amount: relativeNumbers[relTextLower],\n behavior: relativeBehavior[relTextLower] || 0\n }\n}\n\nfunction processTzCorrection (tzOffset, oldValue) {\n const reTzCorrectionLoose = /(?:GMT)?([+-])(\\d+)(:?)(\\d{0,2})/i\n tzOffset = tzOffset && tzOffset.match(reTzCorrectionLoose)\n\n if (!tzOffset) {\n return oldValue\n }\n\n let sign = tzOffset[1] === '-' ? 1 : -1\n let hours = +tzOffset[2]\n let minutes = +tzOffset[4]\n\n if (!tzOffset[4] && !tzOffset[3]) {\n minutes = Math.floor(hours % 100)\n hours = Math.floor(hours / 100)\n }\n\n return sign * (hours * 60 + minutes)\n}\n\nconst formats = {\n yesterday: {\n regex: /^yesterday/i,\n name: 'yesterday',\n callback () {\n this.rd -= 1\n return this.resetTime()\n }\n },\n\n now: {\n regex: /^now/i,\n name: 'now'\n // do nothing\n },\n\n noon: {\n regex: /^noon/i,\n name: 'noon',\n callback () {\n return this.resetTime() && this.time(12, 0, 0, 0)\n }\n },\n\n midnightOrToday: {\n regex: /^(midnight|today)/i,\n name: 'midnight | today',\n callback () {\n return this.resetTime()\n }\n },\n\n tomorrow: {\n regex: /^tomorrow/i,\n name: 'tomorrow',\n callback () {\n this.rd += 1\n return this.resetTime()\n }\n },\n\n timestamp: {\n regex: /^@(-?\\d+)/i,\n name: 'timestamp',\n callback (match, timestamp) {\n this.rs += +timestamp\n this.y = 1970\n this.m = 0\n this.d = 1\n this.dates = 0\n\n return this.resetTime() && this.zone(0)\n }\n },\n\n firstOrLastDay: {\n regex: /^(first|last) day of/i,\n name: 'firstdayof | lastdayof',\n callback (match, day) {\n if (day.toLowerCase() === 'first') {\n this.firstOrLastDayOfMonth = 1\n } else {\n this.firstOrLastDayOfMonth = -1\n }\n }\n },\n\n backOrFrontOf: {\n regex: RegExp('^(back|front) of ' + reHour24 + reSpaceOpt + reMeridian + '?', 'i'),\n name: 'backof | frontof',\n callback (match, side, hours, meridian) {\n let back = side.toLowerCase() === 'back'\n let hour = +hours\n let minute = 15\n\n if (!back) {\n hour -= 1\n minute = 45\n }\n\n hour = processMeridian(hour, meridian)\n\n return this.resetTime() && this.time(hour, minute, 0, 0)\n }\n },\n\n weekdayOf: {\n regex: RegExp('^(' + reReltextnumber + '|' + reReltexttext + ')' + reSpace + '(' + reDayfull + '|' + reDayabbr + ')' + reSpace + 'of', 'i'),\n name: 'weekdayof'\n // todo\n },\n\n mssqltime: {\n regex: RegExp('^' + reHour12 + ':' + reMinutelz + ':' + reSecondlz + '[:.]([0-9]+)' + reMeridian, 'i'),\n name: 'mssqltime',\n callback (match, hour, minute, second, frac, meridian) {\n return this.time(processMeridian(+hour, meridian), +minute, +second, +frac.substr(0, 3))\n }\n },\n\n timeLong12: {\n regex: RegExp('^' + reHour12 + '[:.]' + reMinute + '[:.]' + reSecondlz + reSpaceOpt + reMeridian, 'i'),\n name: 'timelong12',\n callback (match, hour, minute, second, meridian) {\n return this.time(processMeridian(+hour, meridian), +minute, +second, 0)\n }\n },\n\n timeShort12: {\n regex: RegExp('^' + reHour12 + '[:.]' + reMinutelz + reSpaceOpt + reMeridian, 'i'),\n name: 'timeshort12',\n callback (match, hour, minute, meridian) {\n return this.time(processMeridian(+hour, meridian), +minute, 0, 0)\n }\n },\n\n timeTiny12: {\n regex: RegExp('^' + reHour12 + reSpaceOpt + reMeridian, 'i'),\n name: 'timetiny12',\n callback (match, hour, meridian) {\n return this.time(processMeridian(+hour, meridian), 0, 0, 0)\n }\n },\n\n soap: {\n regex: RegExp('^' + reYear4 + '-' + reMonthlz + '-' + reDaylz + 'T' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz + reFrac + reTzCorrection + '?', 'i'),\n name: 'soap',\n callback (match, year, month, day, hour, minute, second, frac, tzCorrection) {\n return this.ymd(+year, month - 1, +day) &&\n this.time(+hour, +minute, +second, +frac.substr(0, 3)) &&\n this.zone(processTzCorrection(tzCorrection))\n }\n },\n\n wddx: {\n regex: RegExp('^' + reYear4 + '-' + reMonth + '-' + reDay + 'T' + reHour24 + ':' + reMinute + ':' + reSecond),\n name: 'wddx',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n exif: {\n regex: RegExp('^' + reYear4 + ':' + reMonthlz + ':' + reDaylz + ' ' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz, 'i'),\n name: 'exif',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n xmlRpc: {\n regex: RegExp('^' + reYear4 + reMonthlz + reDaylz + 'T' + reHour24 + ':' + reMinutelz + ':' + reSecondlz),\n name: 'xmlrpc',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n xmlRpcNoColon: {\n regex: RegExp('^' + reYear4 + reMonthlz + reDaylz + '[Tt]' + reHour24 + reMinutelz + reSecondlz),\n name: 'xmlrpcnocolon',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n clf: {\n regex: RegExp('^' + reDay + '/(' + reMonthAbbr + ')/' + reYear4 + ':' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz + reSpace + reTzCorrection, 'i'),\n name: 'clf',\n callback (match, day, month, year, hour, minute, second, tzCorrection) {\n return this.ymd(+year, lookupMonth(month), +day) &&\n this.time(+hour, +minute, +second, 0) &&\n this.zone(processTzCorrection(tzCorrection))\n }\n },\n\n iso8601long: {\n regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond + reFrac, 'i'),\n name: 'iso8601long',\n callback (match, hour, minute, second, frac) {\n return this.time(+hour, +minute, +second, +frac.substr(0, 3))\n }\n },\n\n dateTextual: {\n regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reDay + '[,.stndrh\\\\t ]+' + reYear, 'i'),\n name: 'datetextual',\n callback (match, month, day, year) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n pointedDate4: {\n regex: RegExp('^' + reDay + '[.\\\\t-]' + reMonth + '[.-]' + reYear4),\n name: 'pointeddate4',\n callback (match, day, month, year) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n pointedDate2: {\n regex: RegExp('^' + reDay + '[.\\\\t]' + reMonth + '\\\\.' + reYear2),\n name: 'pointeddate2',\n callback (match, day, month, year) {\n return this.ymd(processYear(year), month - 1, +day)\n }\n },\n\n timeLong24: {\n regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond),\n name: 'timelong24',\n callback (match, hour, minute, second) {\n return this.time(+hour, +minute, +second, 0)\n }\n },\n\n dateNoColon: {\n regex: RegExp('^' + reYear4 + reMonthlz + reDaylz),\n name: 'datenocolon',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n pgydotd: {\n regex: RegExp('^' + reYear4 + '\\\\.?' + reDayOfYear),\n name: 'pgydotd',\n callback (match, year, day) {\n return this.ymd(+year, 0, +day)\n }\n },\n\n timeShort24: {\n regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute, 'i'),\n name: 'timeshort24',\n callback (match, hour, minute) {\n return this.time(+hour, +minute, 0, 0)\n }\n },\n\n iso8601noColon: {\n regex: RegExp('^t?' + reHour24lz + reMinutelz + reSecondlz, 'i'),\n name: 'iso8601nocolon',\n callback (match, hour, minute, second) {\n return this.time(+hour, +minute, +second, 0)\n }\n },\n\n iso8601dateSlash: {\n // eventhough the trailing slash is optional in PHP\n // here it's mandatory and inputs without the slash\n // are handled by dateslash\n regex: RegExp('^' + reYear4 + '/' + reMonthlz + '/' + reDaylz + '/'),\n name: 'iso8601dateslash',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n dateSlash: {\n regex: RegExp('^' + reYear4 + '/' + reMonth + '/' + reDay),\n name: 'dateslash',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n american: {\n regex: RegExp('^' + reMonth + '/' + reDay + '/' + reYear),\n name: 'american',\n callback (match, month, day, year) {\n return this.ymd(processYear(year), month - 1, +day)\n }\n },\n\n americanShort: {\n regex: RegExp('^' + reMonth + '/' + reDay),\n name: 'americanshort',\n callback (match, month, day) {\n return this.ymd(this.y, month - 1, +day)\n }\n },\n\n gnuDateShortOrIso8601date2: {\n // iso8601date2 is complete subset of gnudateshort\n regex: RegExp('^' + reYear + '-' + reMonth + '-' + reDay),\n name: 'gnudateshort | iso8601date2',\n callback (match, year, month, day) {\n return this.ymd(processYear(year), month - 1, +day)\n }\n },\n\n iso8601date4: {\n regex: RegExp('^' + reYear4withSign + '-' + reMonthlz + '-' + reDaylz),\n name: 'iso8601date4',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n gnuNoColon: {\n regex: RegExp('^t?' + reHour24lz + reMinutelz, 'i'),\n name: 'gnunocolon',\n callback (match, hour, minute) {\n // this rule is a special case\n // if time was already set once by any preceding rule, it sets the captured value as year\n switch (this.times) {\n case 0:\n return this.time(+hour, +minute, 0, this.f)\n case 1:\n this.y = hour * 100 + +minute\n this.times++\n\n return true\n default:\n return false\n }\n }\n },\n\n gnuDateShorter: {\n regex: RegExp('^' + reYear4 + '-' + reMonth),\n name: 'gnudateshorter',\n callback (match, year, month) {\n return this.ymd(+year, month - 1, 1)\n }\n },\n\n pgTextReverse: {\n // note: allowed years are from 32-9999\n // years below 32 should be treated as days in datefull\n regex: RegExp('^' + '(\\\\d{3,4}|[4-9]\\\\d|3[2-9])-(' + reMonthAbbr + ')-' + reDaylz, 'i'),\n name: 'pgtextreverse',\n callback (match, year, month, day) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n dateFull: {\n regex: RegExp('^' + reDay + '[ \\\\t.-]*' + reMonthText + '[ \\\\t.-]*' + reYear, 'i'),\n name: 'datefull',\n callback (match, day, month, year) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n dateNoDay: {\n regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reYear4, 'i'),\n name: 'datenoday',\n callback (match, month, year) {\n return this.ymd(+year, lookupMonth(month), 1)\n }\n },\n\n dateNoDayRev: {\n regex: RegExp('^' + reYear4 + '[ .\\\\t-]*' + reMonthText, 'i'),\n name: 'datenodayrev',\n callback (match, year, month) {\n return this.ymd(+year, lookupMonth(month), 1)\n }\n },\n\n pgTextShort: {\n regex: RegExp('^(' + reMonthAbbr + ')-' + reDaylz + '-' + reYear, 'i'),\n name: 'pgtextshort',\n callback (match, month, day, year) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n dateNoYear: {\n regex: RegExp('^' + reDateNoYear, 'i'),\n name: 'datenoyear',\n callback (match, month, day) {\n return this.ymd(this.y, lookupMonth(month), +day)\n }\n },\n\n dateNoYearRev: {\n regex: RegExp('^' + reDay + '[ .\\\\t-]*' + reMonthText, 'i'),\n name: 'datenoyearrev',\n callback (match, day, month) {\n return this.ymd(this.y, lookupMonth(month), +day)\n }\n },\n\n isoWeekDay: {\n regex: RegExp('^' + reYear4 + '-?W' + reWeekOfYear + '(?:-?([0-7]))?'),\n name: 'isoweekday | isoweek',\n callback (match, year, week, day) {\n day = day ? +day : 1\n\n if (!this.ymd(+year, 0, 1)) {\n return false\n }\n\n // get day of week for Jan 1st\n let dayOfWeek = new Date(this.y, this.m, this.d).getDay()\n\n // and use the day to figure out the offset for day 1 of week 1\n dayOfWeek = 0 - (dayOfWeek > 4 ? dayOfWeek - 7 : dayOfWeek)\n\n this.rd += dayOfWeek + ((week - 1) * 7) + day\n }\n },\n\n relativeText: {\n regex: RegExp('^(' + reReltextnumber + '|' + reReltexttext + ')' + reSpace + '(' + reReltextunit + ')', 'i'),\n name: 'relativetext',\n callback (match, relValue, relUnit) {\n // todo: implement handling of 'this time-unit'\n // eslint-disable-next-line no-unused-vars\n const { amount, behavior } = lookupRelative(relValue)\n\n switch (relUnit.toLowerCase()) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n this.rs += amount\n break\n case 'min':\n case 'mins':\n case 'minute':\n case 'minutes':\n this.ri += amount\n break\n case 'hour':\n case 'hours':\n this.rh += amount\n break\n case 'day':\n case 'days':\n this.rd += amount\n break\n case 'fortnight':\n case 'fortnights':\n case 'forthnight':\n case 'forthnights':\n this.rd += amount * 14\n break\n case 'week':\n case 'weeks':\n this.rd += amount * 7\n break\n case 'month':\n case 'months':\n this.rm += amount\n break\n case 'year':\n case 'years':\n this.ry += amount\n break\n case 'mon': case 'monday':\n case 'tue': case 'tuesday':\n case 'wed': case 'wednesday':\n case 'thu': case 'thursday':\n case 'fri': case 'friday':\n case 'sat': case 'saturday':\n case 'sun': case 'sunday':\n this.resetTime()\n this.weekday = lookupWeekday(relUnit, 7)\n this.weekdayBehavior = 1\n this.rd += (amount > 0 ? amount - 1 : amount) * 7\n break\n case 'weekday':\n case 'weekdays':\n // todo\n break\n }\n }\n },\n\n relative: {\n regex: RegExp('^([+-]*)[ \\\\t]*(\\\\d+)' + reSpaceOpt + '(' + reReltextunit + '|week)', 'i'),\n name: 'relative',\n callback (match, signs, relValue, relUnit) {\n const minuses = signs.replace(/[^-]/g, '').length\n\n let amount = +relValue * Math.pow(-1, minuses)\n\n switch (relUnit.toLowerCase()) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n this.rs += amount\n break\n case 'min':\n case 'mins':\n case 'minute':\n case 'minutes':\n this.ri += amount\n break\n case 'hour':\n case 'hours':\n this.rh += amount\n break\n case 'day':\n case 'days':\n this.rd += amount\n break\n case 'fortnight':\n case 'fortnights':\n case 'forthnight':\n case 'forthnights':\n this.rd += amount * 14\n break\n case 'week':\n case 'weeks':\n this.rd += amount * 7\n break\n case 'month':\n case 'months':\n this.rm += amount\n break\n case 'year':\n case 'years':\n this.ry += amount\n break\n case 'mon': case 'monday':\n case 'tue': case 'tuesday':\n case 'wed': case 'wednesday':\n case 'thu': case 'thursday':\n case 'fri': case 'friday':\n case 'sat': case 'saturday':\n case 'sun': case 'sunday':\n this.resetTime()\n this.weekday = lookupWeekday(relUnit, 7)\n this.weekdayBehavior = 1\n this.rd += (amount > 0 ? amount - 1 : amount) * 7\n break\n case 'weekday':\n case 'weekdays':\n // todo\n break\n }\n }\n },\n\n dayText: {\n regex: RegExp('^(' + reDaytext + ')', 'i'),\n name: 'daytext',\n callback (match, dayText) {\n this.resetTime()\n this.weekday = lookupWeekday(dayText, 0)\n\n if (this.weekdayBehavior !== 2) {\n this.weekdayBehavior = 1\n }\n }\n },\n\n relativeTextWeek: {\n regex: RegExp('^(' + reReltexttext + ')' + reSpace + 'week', 'i'),\n name: 'relativetextweek',\n callback (match, relText) {\n this.weekdayBehavior = 2\n\n switch (relText.toLowerCase()) {\n case 'this':\n this.rd += 0\n break\n case 'next':\n this.rd += 7\n break\n case 'last':\n case 'previous':\n this.rd -= 7\n break\n }\n\n if (isNaN(this.weekday)) {\n this.weekday = 1\n }\n }\n },\n\n monthFullOrMonthAbbr: {\n regex: RegExp('^(' + reMonthFull + '|' + reMonthAbbr + ')', 'i'),\n name: 'monthfull | monthabbr',\n callback (match, month) {\n return this.ymd(this.y, lookupMonth(month), this.d)\n }\n },\n\n tzCorrection: {\n regex: RegExp('^' + reTzCorrection, 'i'),\n name: 'tzcorrection',\n callback (tzCorrection) {\n return this.zone(processTzCorrection(tzCorrection))\n }\n },\n\n ago: {\n regex: /^ago/i,\n name: 'ago',\n callback () {\n this.ry = -this.ry\n this.rm = -this.rm\n this.rd = -this.rd\n this.rh = -this.rh\n this.ri = -this.ri\n this.rs = -this.rs\n this.rf = -this.rf\n }\n },\n\n year4: {\n regex: RegExp('^' + reYear4),\n name: 'year4',\n callback (match, year) {\n this.y = +year\n return true\n }\n },\n\n whitespace: {\n regex: /^[ .,\\t]+/,\n name: 'whitespace'\n // do nothing\n },\n\n dateShortWithTimeLong: {\n regex: RegExp('^' + reDateNoYear + 't?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond, 'i'),\n name: 'dateshortwithtimelong',\n callback (match, month, day, hour, minute, second) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n dateShortWithTimeLong12: {\n regex: RegExp('^' + reDateNoYear + reHour12 + '[:.]' + reMinute + '[:.]' + reSecondlz + reSpaceOpt + reMeridian, 'i'),\n name: 'dateshortwithtimelong12',\n callback (match, month, day, hour, minute, second, meridian) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(processMeridian(+hour, meridian), +minute, +second, 0)\n }\n },\n\n dateShortWithTimeShort: {\n regex: RegExp('^' + reDateNoYear + 't?' + reHour24 + '[:.]' + reMinute, 'i'),\n name: 'dateshortwithtimeshort',\n callback (match, month, day, hour, minute) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(+hour, +minute, 0, 0)\n }\n },\n\n dateShortWithTimeShort12: {\n regex: RegExp('^' + reDateNoYear + reHour12 + '[:.]' + reMinutelz + reSpaceOpt + reMeridian, 'i'),\n name: 'dateshortwithtimeshort12',\n callback (match, month, day, hour, minute, meridian) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(processMeridian(+hour, meridian), +minute, 0, 0)\n }\n }\n}\n\nlet resultProto = {\n // date\n y: NaN,\n m: NaN,\n d: NaN,\n // time\n h: NaN,\n i: NaN,\n s: NaN,\n f: NaN,\n\n // relative shifts\n ry: 0,\n rm: 0,\n rd: 0,\n rh: 0,\n ri: 0,\n rs: 0,\n rf: 0,\n\n // weekday related shifts\n weekday: NaN,\n weekdayBehavior: 0,\n\n // first or last day of month\n // 0 none, 1 first, -1 last\n firstOrLastDayOfMonth: 0,\n\n // timezone correction in minutes\n z: NaN,\n\n // counters\n dates: 0,\n times: 0,\n zones: 0,\n\n // helper functions\n ymd (y, m, d) {\n if (this.dates > 0) {\n return false\n }\n\n this.dates++\n this.y = y\n this.m = m\n this.d = d\n return true\n },\n\n time (h, i, s, f) {\n if (this.times > 0) {\n return false\n }\n\n this.times++\n this.h = h\n this.i = i\n this.s = s\n this.f = f\n\n return true\n },\n\n resetTime () {\n this.h = 0\n this.i = 0\n this.s = 0\n this.f = 0\n this.times = 0\n\n return true\n },\n\n zone (minutes) {\n if (this.zones <= 1) {\n this.zones++\n this.z = minutes\n return true\n }\n\n return false\n },\n\n toDate (relativeTo) {\n if (this.dates && !this.times) {\n this.h = this.i = this.s = this.f = 0\n }\n\n // fill holes\n if (isNaN(this.y)) {\n this.y = relativeTo.getFullYear()\n }\n\n if (isNaN(this.m)) {\n this.m = relativeTo.getMonth()\n }\n\n if (isNaN(this.d)) {\n this.d = relativeTo.getDate()\n }\n\n if (isNaN(this.h)) {\n this.h = relativeTo.getHours()\n }\n\n if (isNaN(this.i)) {\n this.i = relativeTo.getMinutes()\n }\n\n if (isNaN(this.s)) {\n this.s = relativeTo.getSeconds()\n }\n\n if (isNaN(this.f)) {\n this.f = relativeTo.getMilliseconds()\n }\n\n // adjust special early\n switch (this.firstOrLastDayOfMonth) {\n case 1:\n this.d = 1\n break\n case -1:\n this.d = 0\n this.m += 1\n break\n }\n\n if (!isNaN(this.weekday)) {\n var date = new Date(relativeTo.getTime())\n date.setFullYear(this.y, this.m, this.d)\n date.setHours(this.h, this.i, this.s, this.f)\n\n var dow = date.getDay()\n\n if (this.weekdayBehavior === 2) {\n // To make \"this week\" work, where the current day of week is a \"sunday\"\n if (dow === 0 && this.weekday !== 0) {\n this.weekday = -6\n }\n\n // To make \"sunday this week\" work, where the current day of week is not a \"sunday\"\n if (this.weekday === 0 && dow !== 0) {\n this.weekday = 7\n }\n\n this.d -= dow\n this.d += this.weekday\n } else {\n var diff = this.weekday - dow\n\n // some PHP magic\n if ((this.rd < 0 && diff < 0) || (this.rd >= 0 && diff <= -this.weekdayBehavior)) {\n diff += 7\n }\n\n if (this.weekday >= 0) {\n this.d += diff\n } else {\n this.d -= (7 - (Math.abs(this.weekday) - dow))\n }\n\n this.weekday = NaN\n }\n }\n\n // adjust relative\n this.y += this.ry\n this.m += this.rm\n this.d += this.rd\n\n this.h += this.rh\n this.i += this.ri\n this.s += this.rs\n this.f += this.rf\n\n this.ry = this.rm = this.rd = 0\n this.rh = this.ri = this.rs = this.rf = 0\n\n let result = new Date(relativeTo.getTime())\n // since Date constructor treats years <= 99 as 1900+\n // it can't be used, thus this weird way\n result.setFullYear(this.y, this.m, this.d)\n result.setHours(this.h, this.i, this.s, this.f)\n\n // note: this is done twice in PHP\n // early when processing special relatives\n // and late\n // todo: check if the logic can be reduced\n // to just one time action\n switch (this.firstOrLastDayOfMonth) {\n case 1:\n result.setDate(1)\n break\n case -1:\n result.setMonth(result.getMonth() + 1, 0)\n break\n }\n\n // adjust timezone\n if (!isNaN(this.z) && result.getTimezoneOffset() !== this.z) {\n result.setUTCFullYear(\n result.getFullYear(),\n result.getMonth(),\n result.getDate())\n\n result.setUTCHours(\n result.getHours(),\n result.getMinutes() + this.z,\n result.getSeconds(),\n result.getMilliseconds())\n }\n\n return result\n }\n}\n\nmodule.exports = function strtotime (str, now) {\n // discuss at: https://locutus.io/php/strtotime/\n // original by: Caio Ariede (https://caioariede.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Caio Ariede (https://caioariede.com)\n // improved by: A. Matías Quezada (https://amatiasq.com)\n // improved by: preuter\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Mirko Faber\n // input by: David\n // bugfixed by: Wagner B. Soares\n // bugfixed by: Artur Tchernychev\n // bugfixed by: Stephan Bösch-Plepelits (https://github.com/plepe)\n // reimplemented by: Rafał Kukawski\n // note 1: Examples all have a fixed timestamp to prevent\n // note 1: tests to fail because of variable time(zones)\n // example 1: strtotime('+1 day', 1129633200)\n // returns 1: 1129719600\n // example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200)\n // returns 2: 1130425202\n // example 3: strtotime('last month', 1129633200)\n // returns 3: 1127041200\n // example 4: strtotime('2009-05-04 08:30:00+00')\n // returns 4: 1241425800\n // example 5: strtotime('2009-05-04 08:30:00+02:00')\n // returns 5: 1241418600\n\n if (now == null) {\n now = Math.floor(Date.now() / 1000)\n }\n\n // the rule order is important\n // if multiple rules match, the longest match wins\n // if multiple rules match the same string, the first match wins\n const rules = [\n formats.yesterday,\n formats.now,\n formats.noon,\n formats.midnightOrToday,\n formats.tomorrow,\n formats.timestamp,\n formats.firstOrLastDay,\n formats.backOrFrontOf,\n // formats.weekdayOf, // not yet implemented\n formats.timeTiny12,\n formats.timeShort12,\n formats.timeLong12,\n formats.mssqltime,\n formats.timeShort24,\n formats.timeLong24,\n formats.iso8601long,\n formats.gnuNoColon,\n formats.iso8601noColon,\n formats.americanShort,\n formats.american,\n formats.iso8601date4,\n formats.iso8601dateSlash,\n formats.dateSlash,\n formats.gnuDateShortOrIso8601date2,\n formats.gnuDateShorter,\n formats.dateFull,\n formats.pointedDate4,\n formats.pointedDate2,\n formats.dateNoDay,\n formats.dateNoDayRev,\n formats.dateTextual,\n formats.dateNoYear,\n formats.dateNoYearRev,\n formats.dateNoColon,\n formats.xmlRpc,\n formats.xmlRpcNoColon,\n formats.soap,\n formats.wddx,\n formats.exif,\n formats.pgydotd,\n formats.isoWeekDay,\n formats.pgTextShort,\n formats.pgTextReverse,\n formats.clf,\n formats.year4,\n formats.ago,\n formats.dayText,\n formats.relativeTextWeek,\n formats.relativeText,\n formats.monthFullOrMonthAbbr,\n formats.tzCorrection,\n formats.dateShortWithTimeShort12,\n formats.dateShortWithTimeLong12,\n formats.dateShortWithTimeShort,\n formats.dateShortWithTimeLong,\n formats.relative,\n formats.whitespace\n ]\n\n let result = Object.create(resultProto)\n\n while (str.length) {\n let longestMatch = null\n let finalRule = null\n\n for (let i = 0, l = rules.length; i < l; i++) {\n const format = rules[i]\n\n const match = str.match(format.regex)\n\n if (match) {\n if (!longestMatch || match[0].length > longestMatch[0].length) {\n longestMatch = match\n finalRule = format\n }\n }\n }\n\n if (!finalRule || (finalRule.callback && finalRule.callback.apply(result, longestMatch) === false)) {\n return false\n }\n\n str = str.substr(longestMatch[0].length)\n finalRule = null\n longestMatch = null\n }\n\n return Math.floor(result.toDate(new Date(now * 1000)) / 1000)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/datetime/strtotime.js"],"names":["reSpace","reSpaceOpt","reMeridian","reHour24","reHour24lz","reHour12","reMinute","reMinutelz","reSecond","reSecondlz","reFrac","reDayfull","reDayabbr","reDaytext","reReltextnumber","reReltexttext","reReltextunit","reYear","reYear2","reYear4","reYear4withSign","reMonth","reMonthlz","reDay","reDaylz","reMonthFull","reMonthAbbr","reMonthroman","reMonthText","reTzCorrection","reTzAbbr","reDayOfYear","reWeekOfYear","reDateNoYear","processMeridian","hour","meridian","toLowerCase","processYear","yearStr","year","length","lookupMonth","monthStr","jan","january","i","feb","february","ii","mar","march","iii","apr","april","iv","may","v","jun","june","vi","jul","july","vii","aug","august","viii","sep","sept","september","ix","oct","october","x","nov","november","xi","dec","december","xii","lookupWeekday","dayStr","desiredSundayNumber","dayNumbers","mon","monday","tue","tuesday","wed","wednesday","thu","thursday","fri","friday","sat","saturday","sun","sunday","lookupRelative","relText","relativeNumbers","last","previous","this","first","next","second","third","fourth","fifth","sixth","seventh","eight","eighth","ninth","tenth","eleventh","twelfth","relativeBehavior","relTextLower","amount","behavior","processTzCorrection","tzOffset","oldValue","reTzCorrectionLoose","match","sign","hours","minutes","Math","floor","tzAbbrOffsets","acdt","acst","addt","adt","aedt","aest","ahdt","ahst","akdt","akst","amt","apt","ast","awdt","awst","awt","bdst","bdt","bmt","bst","cast","cat","cddt","cdt","cemt","cest","cet","cmt","cpt","cst","cwt","chst","dmt","eat","eddt","edt","eest","eet","emt","ept","est","ewt","ffmt","fmt","gdt","gmt","gst","hdt","hkst","hkt","hmt","hpt","hst","hwt","iddt","idt","imt","ist","jdt","jmt","jst","kdt","kmt","kst","lst","mddt","mdst","mdt","mest","met","mmt","mpt","msd","msk","mst","mwt","nddt","ndt","npt","nst","nwt","nzdt","nzmt","nzst","pddt","pdt","pkst","pkt","plmt","pmt","ppmt","ppt","pst","pwt","qmt","rmt","sast","sdmt","sjmt","smt","sst","tbmt","tmt","uct","utc","wast","wat","wemt","west","wet","wib","wita","wit","wmt","yddt","ydt","ypt","yst","ywt","a","b","c","d","e","f","g","h","k","l","m","n","o","p","q","r","s","t","u","w","y","z","formats","yesterday","regex","name","callback","rd","resetTime","now","noon","time","midnightOrToday","tomorrow","timestamp","rs","dates","zone","firstOrLastDay","day","firstOrLastDayOfMonth","backOrFrontOf","RegExp","side","back","minute","weekdayOf","mssqltime","frac","substr","timeLong12","timeShort12","timeTiny12","soap","month","tzCorrection","ymd","wddx","exif","xmlRpc","xmlRpcNoColon","clf","iso8601long","dateTextual","pointedDate4","pointedDate2","timeLong24","dateNoColon","pgydotd","timeShort24","iso8601noColon","iso8601dateSlash","dateSlash","american","americanShort","gnuDateShortOrIso8601date2","iso8601date4","gnuNoColon","times","gnuDateShorter","pgTextReverse","dateFull","dateNoDay","dateNoDayRev","pgTextShort","dateNoYear","dateNoYearRev","isoWeekDay","week","dayOfWeek","Date","getDay","relativeText","relValue","relUnit","ri","rh","rm","ry","weekday","weekdayBehavior","relative","signs","minuses","replace","pow","dayText","relativeTextWeek","isNaN","monthFullOrMonthAbbr","tzAbbr","abbr","offset","ago","rf","year4","whitespace","dateShortWithTimeLong","dateShortWithTimeLong12","dateShortWithTimeShort","dateShortWithTimeShort12","resultProto","NaN","zones","toDate","relativeTo","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","date","getTime","setFullYear","setHours","dow","diff","abs","result","setDate","setMonth","getTimezoneOffset","setUTCFullYear","setUTCHours","module","exports","strtotime","str","rules","Object","create","longestMatch","finalRule","format","apply"],"mappings":"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","file":"strtotime.js","sourcesContent":["const reSpace = '[ \\\\t]+'\nconst reSpaceOpt = '[ \\\\t]*'\nconst reMeridian = '(?:([ap])\\\\.?m\\\\.?([\\\\t ]|$))'\nconst reHour24 = '(2[0-4]|[01]?[0-9])'\nconst reHour24lz = '([01][0-9]|2[0-4])'\nconst reHour12 = '(0?[1-9]|1[0-2])'\nconst reMinute = '([0-5]?[0-9])'\nconst reMinutelz = '([0-5][0-9])'\nconst reSecond = '(60|[0-5]?[0-9])'\nconst reSecondlz = '(60|[0-5][0-9])'\nconst reFrac = '(?:\\\\.([0-9]+))'\n\nconst reDayfull = 'sunday|monday|tuesday|wednesday|thursday|friday|saturday'\nconst reDayabbr = 'sun|mon|tue|wed|thu|fri|sat'\nconst reDaytext = reDayfull + '|' + reDayabbr + '|weekdays?'\n\nconst reReltextnumber = 'first|second|third|fourth|fifth|sixth|seventh|eighth?|ninth|tenth|eleventh|twelfth'\nconst reReltexttext = 'next|last|previous|this'\nconst reReltextunit = '(?:second|sec|minute|min|hour|day|fortnight|forthnight|month|year)s?|weeks|' + reDaytext\n\nconst reYear = '([0-9]{1,4})'\nconst reYear2 = '([0-9]{2})'\nconst reYear4 = '([0-9]{4})'\nconst reYear4withSign = '([+-]?[0-9]{4})'\nconst reMonth = '(1[0-2]|0?[0-9])'\nconst reMonthlz = '(0[0-9]|1[0-2])'\nconst reDay = '(?:(3[01]|[0-2]?[0-9])(?:st|nd|rd|th)?)'\nconst reDaylz = '(0[0-9]|[1-2][0-9]|3[01])'\n\nconst reMonthFull = 'january|february|march|april|may|june|july|august|september|october|november|december'\nconst reMonthAbbr = 'jan|feb|mar|apr|may|jun|jul|aug|sept?|oct|nov|dec'\nconst reMonthroman = 'i[vx]|vi{0,3}|xi{0,2}|i{1,3}'\nconst reMonthText = '(' + reMonthFull + '|' + reMonthAbbr + '|' + reMonthroman + ')'\n\nconst reTzCorrection = '((?:GMT)?([+-])' + reHour24 + ':?' + reMinute + '?)'\nconst reTzAbbr = '\\\\(?([a-zA-Z]{1,6})\\\\)?'\nconst reDayOfYear = '(00[1-9]|0[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6])'\nconst reWeekOfYear = '(0[1-9]|[1-4][0-9]|5[0-3])'\n\nconst reDateNoYear = reMonthText + '[ .\\\\t-]*' + reDay + '[,.stndrh\\\\t ]*'\n\nfunction processMeridian (hour, meridian) {\n meridian = meridian && meridian.toLowerCase()\n\n switch (meridian) {\n case 'a':\n hour += hour === 12 ? -12 : 0\n break\n case 'p':\n hour += hour !== 12 ? 12 : 0\n break\n }\n\n return hour\n}\n\nfunction processYear (yearStr) {\n let year = +yearStr\n\n if (yearStr.length < 4 && year < 100) {\n year += year < 70 ? 2000 : 1900\n }\n\n return year\n}\n\nfunction lookupMonth (monthStr) {\n return {\n jan: 0,\n january: 0,\n i: 0,\n feb: 1,\n february: 1,\n ii: 1,\n mar: 2,\n march: 2,\n iii: 2,\n apr: 3,\n april: 3,\n iv: 3,\n may: 4,\n v: 4,\n jun: 5,\n june: 5,\n vi: 5,\n jul: 6,\n july: 6,\n vii: 6,\n aug: 7,\n august: 7,\n viii: 7,\n sep: 8,\n sept: 8,\n september: 8,\n ix: 8,\n oct: 9,\n october: 9,\n x: 9,\n nov: 10,\n november: 10,\n xi: 10,\n dec: 11,\n december: 11,\n xii: 11\n }[monthStr.toLowerCase()]\n}\n\nfunction lookupWeekday (dayStr, desiredSundayNumber = 0) {\n const dayNumbers = {\n mon: 1,\n monday: 1,\n tue: 2,\n tuesday: 2,\n wed: 3,\n wednesday: 3,\n thu: 4,\n thursday: 4,\n fri: 5,\n friday: 5,\n sat: 6,\n saturday: 6,\n sun: 0,\n sunday: 0\n }\n\n return dayNumbers[dayStr.toLowerCase()] || desiredSundayNumber\n}\n\nfunction lookupRelative (relText) {\n const relativeNumbers = {\n last: -1,\n previous: -1,\n this: 0,\n first: 1,\n next: 1,\n second: 2,\n third: 3,\n fourth: 4,\n fifth: 5,\n sixth: 6,\n seventh: 7,\n eight: 8,\n eighth: 8,\n ninth: 9,\n tenth: 10,\n eleventh: 11,\n twelfth: 12\n }\n\n const relativeBehavior = {\n this: 1\n }\n\n const relTextLower = relText.toLowerCase()\n\n return {\n amount: relativeNumbers[relTextLower],\n behavior: relativeBehavior[relTextLower] || 0\n }\n}\n\nfunction processTzCorrection (tzOffset, oldValue) {\n const reTzCorrectionLoose = /(?:GMT)?([+-])(\\d+)(:?)(\\d{0,2})/i\n tzOffset = tzOffset && tzOffset.match(reTzCorrectionLoose)\n\n if (!tzOffset) {\n return oldValue\n }\n\n const sign = tzOffset[1] === '-' ? -1 : 1\n let hours = +tzOffset[2]\n let minutes = +tzOffset[4]\n\n if (!tzOffset[4] && !tzOffset[3]) {\n minutes = Math.floor(hours % 100)\n hours = Math.floor(hours / 100)\n }\n\n // timezone offset in seconds\n return sign * (hours * 60 + minutes) * 60\n}\n\n// tz abbrevation : tz offset in seconds\nconst tzAbbrOffsets = {\n acdt: 37800,\n acst: 34200,\n addt: -7200,\n adt: -10800,\n aedt: 39600,\n aest: 36000,\n ahdt: -32400,\n ahst: -36000,\n akdt: -28800,\n akst: -32400,\n amt: -13840,\n apt: -10800,\n ast: -14400,\n awdt: 32400,\n awst: 28800,\n awt: -10800,\n bdst: 7200,\n bdt: -36000,\n bmt: -14309,\n bst: 3600,\n cast: 34200,\n cat: 7200,\n cddt: -14400,\n cdt: -18000,\n cemt: 10800,\n cest: 7200,\n cet: 3600,\n cmt: -15408,\n cpt: -18000,\n cst: -21600,\n cwt: -18000,\n chst: 36000,\n dmt: -1521,\n eat: 10800,\n eddt: -10800,\n edt: -14400,\n eest: 10800,\n eet: 7200,\n emt: -26248,\n ept: -14400,\n est: -18000,\n ewt: -14400,\n ffmt: -14660,\n fmt: -4056,\n gdt: 39600,\n gmt: 0,\n gst: 36000,\n hdt: -34200,\n hkst: 32400,\n hkt: 28800,\n hmt: -19776,\n hpt: -34200,\n hst: -36000,\n hwt: -34200,\n iddt: 14400,\n idt: 10800,\n imt: 25025,\n ist: 7200,\n jdt: 36000,\n jmt: 8440,\n jst: 32400,\n kdt: 36000,\n kmt: 5736,\n kst: 30600,\n lst: 9394,\n mddt: -18000,\n mdst: 16279,\n mdt: -21600,\n mest: 7200,\n met: 3600,\n mmt: 9017,\n mpt: -21600,\n msd: 14400,\n msk: 10800,\n mst: -25200,\n mwt: -21600,\n nddt: -5400,\n ndt: -9052,\n npt: -9000,\n nst: -12600,\n nwt: -9000,\n nzdt: 46800,\n nzmt: 41400,\n nzst: 43200,\n pddt: -21600,\n pdt: -25200,\n pkst: 21600,\n pkt: 18000,\n plmt: 25590,\n pmt: -13236,\n ppmt: -17340,\n ppt: -25200,\n pst: -28800,\n pwt: -25200,\n qmt: -18840,\n rmt: 5794,\n sast: 7200,\n sdmt: -16800,\n sjmt: -20173,\n smt: -13884,\n sst: -39600,\n tbmt: 10751,\n tmt: 12344,\n uct: 0,\n utc: 0,\n wast: 7200,\n wat: 3600,\n wemt: 7200,\n west: 3600,\n wet: 0,\n wib: 25200,\n wita: 28800,\n wit: 32400,\n wmt: 5040,\n yddt: -25200,\n ydt: -28800,\n ypt: -28800,\n yst: -32400,\n ywt: -28800,\n a: 3600,\n b: 7200,\n c: 10800,\n d: 14400,\n e: 18000,\n f: 21600,\n g: 25200,\n h: 28800,\n i: 32400,\n k: 36000,\n l: 39600,\n m: 43200,\n n: -3600,\n o: -7200,\n p: -10800,\n q: -14400,\n r: -18000,\n s: -21600,\n t: -25200,\n u: -28800,\n v: -32400,\n w: -36000,\n x: -39600,\n y: -43200,\n z: 0\n}\n\nconst formats = {\n yesterday: {\n regex: /^yesterday/i,\n name: 'yesterday',\n callback () {\n this.rd -= 1\n return this.resetTime()\n }\n },\n\n now: {\n regex: /^now/i,\n name: 'now'\n // do nothing\n },\n\n noon: {\n regex: /^noon/i,\n name: 'noon',\n callback () {\n return this.resetTime() && this.time(12, 0, 0, 0)\n }\n },\n\n midnightOrToday: {\n regex: /^(midnight|today)/i,\n name: 'midnight | today',\n callback () {\n return this.resetTime()\n }\n },\n\n tomorrow: {\n regex: /^tomorrow/i,\n name: 'tomorrow',\n callback () {\n this.rd += 1\n return this.resetTime()\n }\n },\n\n timestamp: {\n regex: /^@(-?\\d+)/i,\n name: 'timestamp',\n callback (match, timestamp) {\n this.rs += +timestamp\n this.y = 1970\n this.m = 0\n this.d = 1\n this.dates = 0\n\n return this.resetTime() && this.zone(0)\n }\n },\n\n firstOrLastDay: {\n regex: /^(first|last) day of/i,\n name: 'firstdayof | lastdayof',\n callback (match, day) {\n if (day.toLowerCase() === 'first') {\n this.firstOrLastDayOfMonth = 1\n } else {\n this.firstOrLastDayOfMonth = -1\n }\n }\n },\n\n backOrFrontOf: {\n regex: RegExp('^(back|front) of ' + reHour24 + reSpaceOpt + reMeridian + '?', 'i'),\n name: 'backof | frontof',\n callback (match, side, hours, meridian) {\n const back = side.toLowerCase() === 'back'\n let hour = +hours\n let minute = 15\n\n if (!back) {\n hour -= 1\n minute = 45\n }\n\n hour = processMeridian(hour, meridian)\n\n return this.resetTime() && this.time(hour, minute, 0, 0)\n }\n },\n\n weekdayOf: {\n regex: RegExp('^(' + reReltextnumber + '|' + reReltexttext + ')' + reSpace + '(' + reDayfull + '|' + reDayabbr + ')' + reSpace + 'of', 'i'),\n name: 'weekdayof'\n // todo\n },\n\n mssqltime: {\n regex: RegExp('^' + reHour12 + ':' + reMinutelz + ':' + reSecondlz + '[:.]([0-9]+)' + reMeridian, 'i'),\n name: 'mssqltime',\n callback (match, hour, minute, second, frac, meridian) {\n return this.time(processMeridian(+hour, meridian), +minute, +second, +frac.substr(0, 3))\n }\n },\n\n timeLong12: {\n regex: RegExp('^' + reHour12 + '[:.]' + reMinute + '[:.]' + reSecondlz + reSpaceOpt + reMeridian, 'i'),\n name: 'timelong12',\n callback (match, hour, minute, second, meridian) {\n return this.time(processMeridian(+hour, meridian), +minute, +second, 0)\n }\n },\n\n timeShort12: {\n regex: RegExp('^' + reHour12 + '[:.]' + reMinutelz + reSpaceOpt + reMeridian, 'i'),\n name: 'timeshort12',\n callback (match, hour, minute, meridian) {\n return this.time(processMeridian(+hour, meridian), +minute, 0, 0)\n }\n },\n\n timeTiny12: {\n regex: RegExp('^' + reHour12 + reSpaceOpt + reMeridian, 'i'),\n name: 'timetiny12',\n callback (match, hour, meridian) {\n return this.time(processMeridian(+hour, meridian), 0, 0, 0)\n }\n },\n\n soap: {\n regex: RegExp('^' + reYear4 + '-' + reMonthlz + '-' + reDaylz + 'T' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz + reFrac + reTzCorrection + '?', 'i'),\n name: 'soap',\n callback (match, year, month, day, hour, minute, second, frac, tzCorrection) {\n return this.ymd(+year, month - 1, +day) &&\n this.time(+hour, +minute, +second, +frac.substr(0, 3)) &&\n this.zone(processTzCorrection(tzCorrection))\n }\n },\n\n wddx: {\n regex: RegExp('^' + reYear4 + '-' + reMonth + '-' + reDay + 'T' + reHour24 + ':' + reMinute + ':' + reSecond),\n name: 'wddx',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n exif: {\n regex: RegExp('^' + reYear4 + ':' + reMonthlz + ':' + reDaylz + ' ' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz, 'i'),\n name: 'exif',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n xmlRpc: {\n regex: RegExp('^' + reYear4 + reMonthlz + reDaylz + 'T' + reHour24 + ':' + reMinutelz + ':' + reSecondlz),\n name: 'xmlrpc',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n xmlRpcNoColon: {\n regex: RegExp('^' + reYear4 + reMonthlz + reDaylz + '[Tt]' + reHour24 + reMinutelz + reSecondlz),\n name: 'xmlrpcnocolon',\n callback (match, year, month, day, hour, minute, second) {\n return this.ymd(+year, month - 1, +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n clf: {\n regex: RegExp('^' + reDay + '/(' + reMonthAbbr + ')/' + reYear4 + ':' + reHour24lz + ':' + reMinutelz + ':' + reSecondlz + reSpace + reTzCorrection, 'i'),\n name: 'clf',\n callback (match, day, month, year, hour, minute, second, tzCorrection) {\n return this.ymd(+year, lookupMonth(month), +day) &&\n this.time(+hour, +minute, +second, 0) &&\n this.zone(processTzCorrection(tzCorrection))\n }\n },\n\n iso8601long: {\n regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond + reFrac, 'i'),\n name: 'iso8601long',\n callback (match, hour, minute, second, frac) {\n return this.time(+hour, +minute, +second, +frac.substr(0, 3))\n }\n },\n\n dateTextual: {\n regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reDay + '[,.stndrh\\\\t ]+' + reYear, 'i'),\n name: 'datetextual',\n callback (match, month, day, year) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n pointedDate4: {\n regex: RegExp('^' + reDay + '[.\\\\t-]' + reMonth + '[.-]' + reYear4),\n name: 'pointeddate4',\n callback (match, day, month, year) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n pointedDate2: {\n regex: RegExp('^' + reDay + '[.\\\\t]' + reMonth + '\\\\.' + reYear2),\n name: 'pointeddate2',\n callback (match, day, month, year) {\n return this.ymd(processYear(year), month - 1, +day)\n }\n },\n\n timeLong24: {\n regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond),\n name: 'timelong24',\n callback (match, hour, minute, second) {\n return this.time(+hour, +minute, +second, 0)\n }\n },\n\n dateNoColon: {\n regex: RegExp('^' + reYear4 + reMonthlz + reDaylz),\n name: 'datenocolon',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n pgydotd: {\n regex: RegExp('^' + reYear4 + '\\\\.?' + reDayOfYear),\n name: 'pgydotd',\n callback (match, year, day) {\n return this.ymd(+year, 0, +day)\n }\n },\n\n timeShort24: {\n regex: RegExp('^t?' + reHour24 + '[:.]' + reMinute, 'i'),\n name: 'timeshort24',\n callback (match, hour, minute) {\n return this.time(+hour, +minute, 0, 0)\n }\n },\n\n iso8601noColon: {\n regex: RegExp('^t?' + reHour24lz + reMinutelz + reSecondlz, 'i'),\n name: 'iso8601nocolon',\n callback (match, hour, minute, second) {\n return this.time(+hour, +minute, +second, 0)\n }\n },\n\n iso8601dateSlash: {\n // eventhough the trailing slash is optional in PHP\n // here it's mandatory and inputs without the slash\n // are handled by dateslash\n regex: RegExp('^' + reYear4 + '/' + reMonthlz + '/' + reDaylz + '/'),\n name: 'iso8601dateslash',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n dateSlash: {\n regex: RegExp('^' + reYear4 + '/' + reMonth + '/' + reDay),\n name: 'dateslash',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n american: {\n regex: RegExp('^' + reMonth + '/' + reDay + '/' + reYear),\n name: 'american',\n callback (match, month, day, year) {\n return this.ymd(processYear(year), month - 1, +day)\n }\n },\n\n americanShort: {\n regex: RegExp('^' + reMonth + '/' + reDay),\n name: 'americanshort',\n callback (match, month, day) {\n return this.ymd(this.y, month - 1, +day)\n }\n },\n\n gnuDateShortOrIso8601date2: {\n // iso8601date2 is complete subset of gnudateshort\n regex: RegExp('^' + reYear + '-' + reMonth + '-' + reDay),\n name: 'gnudateshort | iso8601date2',\n callback (match, year, month, day) {\n return this.ymd(processYear(year), month - 1, +day)\n }\n },\n\n iso8601date4: {\n regex: RegExp('^' + reYear4withSign + '-' + reMonthlz + '-' + reDaylz),\n name: 'iso8601date4',\n callback (match, year, month, day) {\n return this.ymd(+year, month - 1, +day)\n }\n },\n\n gnuNoColon: {\n regex: RegExp('^t?' + reHour24lz + reMinutelz, 'i'),\n name: 'gnunocolon',\n callback (match, hour, minute) {\n // this rule is a special case\n // if time was already set once by any preceding rule, it sets the captured value as year\n switch (this.times) {\n case 0:\n return this.time(+hour, +minute, 0, this.f)\n case 1:\n this.y = hour * 100 + +minute\n this.times++\n\n return true\n default:\n return false\n }\n }\n },\n\n gnuDateShorter: {\n regex: RegExp('^' + reYear4 + '-' + reMonth),\n name: 'gnudateshorter',\n callback (match, year, month) {\n return this.ymd(+year, month - 1, 1)\n }\n },\n\n pgTextReverse: {\n // note: allowed years are from 32-9999\n // years below 32 should be treated as days in datefull\n regex: RegExp('^' + '(\\\\d{3,4}|[4-9]\\\\d|3[2-9])-(' + reMonthAbbr + ')-' + reDaylz, 'i'),\n name: 'pgtextreverse',\n callback (match, year, month, day) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n dateFull: {\n regex: RegExp('^' + reDay + '[ \\\\t.-]*' + reMonthText + '[ \\\\t.-]*' + reYear, 'i'),\n name: 'datefull',\n callback (match, day, month, year) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n dateNoDay: {\n regex: RegExp('^' + reMonthText + '[ .\\\\t-]*' + reYear4, 'i'),\n name: 'datenoday',\n callback (match, month, year) {\n return this.ymd(+year, lookupMonth(month), 1)\n }\n },\n\n dateNoDayRev: {\n regex: RegExp('^' + reYear4 + '[ .\\\\t-]*' + reMonthText, 'i'),\n name: 'datenodayrev',\n callback (match, year, month) {\n return this.ymd(+year, lookupMonth(month), 1)\n }\n },\n\n pgTextShort: {\n regex: RegExp('^(' + reMonthAbbr + ')-' + reDaylz + '-' + reYear, 'i'),\n name: 'pgtextshort',\n callback (match, month, day, year) {\n return this.ymd(processYear(year), lookupMonth(month), +day)\n }\n },\n\n dateNoYear: {\n regex: RegExp('^' + reDateNoYear, 'i'),\n name: 'datenoyear',\n callback (match, month, day) {\n return this.ymd(this.y, lookupMonth(month), +day)\n }\n },\n\n dateNoYearRev: {\n regex: RegExp('^' + reDay + '[ .\\\\t-]*' + reMonthText, 'i'),\n name: 'datenoyearrev',\n callback (match, day, month) {\n return this.ymd(this.y, lookupMonth(month), +day)\n }\n },\n\n isoWeekDay: {\n regex: RegExp('^' + reYear4 + '-?W' + reWeekOfYear + '(?:-?([0-7]))?'),\n name: 'isoweekday | isoweek',\n callback (match, year, week, day) {\n day = day ? +day : 1\n\n if (!this.ymd(+year, 0, 1)) {\n return false\n }\n\n // get day of week for Jan 1st\n let dayOfWeek = new Date(this.y, this.m, this.d).getDay()\n\n // and use the day to figure out the offset for day 1 of week 1\n dayOfWeek = 0 - (dayOfWeek > 4 ? dayOfWeek - 7 : dayOfWeek)\n\n this.rd += dayOfWeek + ((week - 1) * 7) + day\n }\n },\n\n relativeText: {\n regex: RegExp('^(' + reReltextnumber + '|' + reReltexttext + ')' + reSpace + '(' + reReltextunit + ')', 'i'),\n name: 'relativetext',\n callback (match, relValue, relUnit) {\n // todo: implement handling of 'this time-unit'\n // eslint-disable-next-line no-unused-vars\n const { amount, behavior } = lookupRelative(relValue)\n\n switch (relUnit.toLowerCase()) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n this.rs += amount\n break\n case 'min':\n case 'mins':\n case 'minute':\n case 'minutes':\n this.ri += amount\n break\n case 'hour':\n case 'hours':\n this.rh += amount\n break\n case 'day':\n case 'days':\n this.rd += amount\n break\n case 'fortnight':\n case 'fortnights':\n case 'forthnight':\n case 'forthnights':\n this.rd += amount * 14\n break\n case 'week':\n case 'weeks':\n this.rd += amount * 7\n break\n case 'month':\n case 'months':\n this.rm += amount\n break\n case 'year':\n case 'years':\n this.ry += amount\n break\n case 'mon': case 'monday':\n case 'tue': case 'tuesday':\n case 'wed': case 'wednesday':\n case 'thu': case 'thursday':\n case 'fri': case 'friday':\n case 'sat': case 'saturday':\n case 'sun': case 'sunday':\n this.resetTime()\n this.weekday = lookupWeekday(relUnit, 7)\n this.weekdayBehavior = 1\n this.rd += (amount > 0 ? amount - 1 : amount) * 7\n break\n case 'weekday':\n case 'weekdays':\n // todo\n break\n }\n }\n },\n\n relative: {\n regex: RegExp('^([+-]*)[ \\\\t]*(\\\\d+)' + reSpaceOpt + '(' + reReltextunit + '|week)', 'i'),\n name: 'relative',\n callback (match, signs, relValue, relUnit) {\n const minuses = signs.replace(/[^-]/g, '').length\n\n const amount = +relValue * Math.pow(-1, minuses)\n\n switch (relUnit.toLowerCase()) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n this.rs += amount\n break\n case 'min':\n case 'mins':\n case 'minute':\n case 'minutes':\n this.ri += amount\n break\n case 'hour':\n case 'hours':\n this.rh += amount\n break\n case 'day':\n case 'days':\n this.rd += amount\n break\n case 'fortnight':\n case 'fortnights':\n case 'forthnight':\n case 'forthnights':\n this.rd += amount * 14\n break\n case 'week':\n case 'weeks':\n this.rd += amount * 7\n break\n case 'month':\n case 'months':\n this.rm += amount\n break\n case 'year':\n case 'years':\n this.ry += amount\n break\n case 'mon': case 'monday':\n case 'tue': case 'tuesday':\n case 'wed': case 'wednesday':\n case 'thu': case 'thursday':\n case 'fri': case 'friday':\n case 'sat': case 'saturday':\n case 'sun': case 'sunday':\n this.resetTime()\n this.weekday = lookupWeekday(relUnit, 7)\n this.weekdayBehavior = 1\n this.rd += (amount > 0 ? amount - 1 : amount) * 7\n break\n case 'weekday':\n case 'weekdays':\n // todo\n break\n }\n }\n },\n\n dayText: {\n regex: RegExp('^(' + reDaytext + ')', 'i'),\n name: 'daytext',\n callback (match, dayText) {\n this.resetTime()\n this.weekday = lookupWeekday(dayText, 0)\n\n if (this.weekdayBehavior !== 2) {\n this.weekdayBehavior = 1\n }\n }\n },\n\n relativeTextWeek: {\n regex: RegExp('^(' + reReltexttext + ')' + reSpace + 'week', 'i'),\n name: 'relativetextweek',\n callback (match, relText) {\n this.weekdayBehavior = 2\n\n switch (relText.toLowerCase()) {\n case 'this':\n this.rd += 0\n break\n case 'next':\n this.rd += 7\n break\n case 'last':\n case 'previous':\n this.rd -= 7\n break\n }\n\n if (isNaN(this.weekday)) {\n this.weekday = 1\n }\n }\n },\n\n monthFullOrMonthAbbr: {\n regex: RegExp('^(' + reMonthFull + '|' + reMonthAbbr + ')', 'i'),\n name: 'monthfull | monthabbr',\n callback (match, month) {\n return this.ymd(this.y, lookupMonth(month), this.d)\n }\n },\n\n tzCorrection: {\n regex: RegExp('^' + reTzCorrection, 'i'),\n name: 'tzcorrection',\n callback (tzCorrection) {\n return this.zone(processTzCorrection(tzCorrection))\n }\n },\n\n tzAbbr: {\n regex: RegExp('^' + reTzAbbr),\n name: 'tzabbr',\n callback (match, abbr) {\n const offset = tzAbbrOffsets[abbr.toLowerCase()]\n\n if (isNaN(offset)) {\n return false\n }\n\n return this.zone(offset)\n }\n },\n\n ago: {\n regex: /^ago/i,\n name: 'ago',\n callback () {\n this.ry = -this.ry\n this.rm = -this.rm\n this.rd = -this.rd\n this.rh = -this.rh\n this.ri = -this.ri\n this.rs = -this.rs\n this.rf = -this.rf\n }\n },\n\n year4: {\n regex: RegExp('^' + reYear4),\n name: 'year4',\n callback (match, year) {\n this.y = +year\n return true\n }\n },\n\n whitespace: {\n regex: /^[ .,\\t]+/,\n name: 'whitespace'\n // do nothing\n },\n\n dateShortWithTimeLong: {\n regex: RegExp('^' + reDateNoYear + 't?' + reHour24 + '[:.]' + reMinute + '[:.]' + reSecond, 'i'),\n name: 'dateshortwithtimelong',\n callback (match, month, day, hour, minute, second) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(+hour, +minute, +second, 0)\n }\n },\n\n dateShortWithTimeLong12: {\n regex: RegExp('^' + reDateNoYear + reHour12 + '[:.]' + reMinute + '[:.]' + reSecondlz + reSpaceOpt + reMeridian, 'i'),\n name: 'dateshortwithtimelong12',\n callback (match, month, day, hour, minute, second, meridian) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(processMeridian(+hour, meridian), +minute, +second, 0)\n }\n },\n\n dateShortWithTimeShort: {\n regex: RegExp('^' + reDateNoYear + 't?' + reHour24 + '[:.]' + reMinute, 'i'),\n name: 'dateshortwithtimeshort',\n callback (match, month, day, hour, minute) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(+hour, +minute, 0, 0)\n }\n },\n\n dateShortWithTimeShort12: {\n regex: RegExp('^' + reDateNoYear + reHour12 + '[:.]' + reMinutelz + reSpaceOpt + reMeridian, 'i'),\n name: 'dateshortwithtimeshort12',\n callback (match, month, day, hour, minute, meridian) {\n return this.ymd(this.y, lookupMonth(month), +day) && this.time(processMeridian(+hour, meridian), +minute, 0, 0)\n }\n }\n}\n\nconst resultProto = {\n // date\n y: NaN,\n m: NaN,\n d: NaN,\n // time\n h: NaN,\n i: NaN,\n s: NaN,\n f: NaN,\n\n // relative shifts\n ry: 0,\n rm: 0,\n rd: 0,\n rh: 0,\n ri: 0,\n rs: 0,\n rf: 0,\n\n // weekday related shifts\n weekday: NaN,\n weekdayBehavior: 0,\n\n // first or last day of month\n // 0 none, 1 first, -1 last\n firstOrLastDayOfMonth: 0,\n\n // timezone correction in minutes\n z: NaN,\n\n // counters\n dates: 0,\n times: 0,\n zones: 0,\n\n // helper functions\n ymd (y, m, d) {\n if (this.dates > 0) {\n return false\n }\n\n this.dates++\n this.y = y\n this.m = m\n this.d = d\n return true\n },\n\n time (h, i, s, f) {\n if (this.times > 0) {\n return false\n }\n\n this.times++\n this.h = h\n this.i = i\n this.s = s\n this.f = f\n\n return true\n },\n\n resetTime () {\n this.h = 0\n this.i = 0\n this.s = 0\n this.f = 0\n this.times = 0\n\n return true\n },\n\n zone (minutes) {\n if (this.zones <= 1) {\n this.zones++\n this.z = minutes\n return true\n }\n\n return false\n },\n\n toDate (relativeTo) {\n if (this.dates && !this.times) {\n this.h = this.i = this.s = this.f = 0\n }\n\n // fill holes\n if (isNaN(this.y)) {\n this.y = relativeTo.getFullYear()\n }\n\n if (isNaN(this.m)) {\n this.m = relativeTo.getMonth()\n }\n\n if (isNaN(this.d)) {\n this.d = relativeTo.getDate()\n }\n\n if (isNaN(this.h)) {\n this.h = relativeTo.getHours()\n }\n\n if (isNaN(this.i)) {\n this.i = relativeTo.getMinutes()\n }\n\n if (isNaN(this.s)) {\n this.s = relativeTo.getSeconds()\n }\n\n if (isNaN(this.f)) {\n this.f = relativeTo.getMilliseconds()\n }\n\n // adjust special early\n switch (this.firstOrLastDayOfMonth) {\n case 1:\n this.d = 1\n break\n case -1:\n this.d = 0\n this.m += 1\n break\n }\n\n if (!isNaN(this.weekday)) {\n const date = new Date(relativeTo.getTime())\n date.setFullYear(this.y, this.m, this.d)\n date.setHours(this.h, this.i, this.s, this.f)\n\n const dow = date.getDay()\n\n if (this.weekdayBehavior === 2) {\n // To make \"this week\" work, where the current day of week is a \"sunday\"\n if (dow === 0 && this.weekday !== 0) {\n this.weekday = -6\n }\n\n // To make \"sunday this week\" work, where the current day of week is not a \"sunday\"\n if (this.weekday === 0 && dow !== 0) {\n this.weekday = 7\n }\n\n this.d -= dow\n this.d += this.weekday\n } else {\n let diff = this.weekday - dow\n\n // some PHP magic\n if ((this.rd < 0 && diff < 0) || (this.rd >= 0 && diff <= -this.weekdayBehavior)) {\n diff += 7\n }\n\n if (this.weekday >= 0) {\n this.d += diff\n } else {\n this.d -= (7 - (Math.abs(this.weekday) - dow))\n }\n\n this.weekday = NaN\n }\n }\n\n // adjust relative\n this.y += this.ry\n this.m += this.rm\n this.d += this.rd\n\n this.h += this.rh\n this.i += this.ri\n this.s += this.rs\n this.f += this.rf\n\n this.ry = this.rm = this.rd = 0\n this.rh = this.ri = this.rs = this.rf = 0\n\n const result = new Date(relativeTo.getTime())\n // since Date constructor treats years <= 99 as 1900+\n // it can't be used, thus this weird way\n result.setFullYear(this.y, this.m, this.d)\n result.setHours(this.h, this.i, this.s, this.f)\n\n // note: this is done twice in PHP\n // early when processing special relatives\n // and late\n // todo: check if the logic can be reduced\n // to just one time action\n switch (this.firstOrLastDayOfMonth) {\n case 1:\n result.setDate(1)\n break\n case -1:\n result.setMonth(result.getMonth() + 1, 0)\n break\n }\n\n // adjust timezone\n if (!isNaN(this.z) && result.getTimezoneOffset() !== this.z) {\n result.setUTCFullYear(\n result.getFullYear(),\n result.getMonth(),\n result.getDate())\n\n result.setUTCHours(\n result.getHours(),\n result.getMinutes(),\n result.getSeconds() - this.z,\n result.getMilliseconds())\n }\n\n return result\n }\n}\n\nmodule.exports = function strtotime (str, now) {\n // discuss at: https://locutus.io/php/strtotime/\n // original by: Caio Ariede (https://caioariede.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Caio Ariede (https://caioariede.com)\n // improved by: A. Matías Quezada (https://amatiasq.com)\n // improved by: preuter\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Mirko Faber\n // input by: David\n // bugfixed by: Wagner B. Soares\n // bugfixed by: Artur Tchernychev\n // bugfixed by: Stephan Bösch-Plepelits (https://github.com/plepe)\n // reimplemented by: Rafał Kukawski\n // note 1: Examples all have a fixed timestamp to prevent\n // note 1: tests to fail because of variable time(zones)\n // example 1: strtotime('+1 day', 1129633200)\n // returns 1: 1129719600\n // example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200)\n // returns 2: 1130425202\n // example 3: strtotime('last month', 1129633200)\n // returns 3: 1127041200\n // example 4: strtotime('2009-05-04 08:30:00+00')\n // returns 4: 1241425800\n // example 5: strtotime('2009-05-04 08:30:00+02:00')\n // returns 5: 1241418600\n // example 6: strtotime('2009-05-04 08:30:00 YWT')\n // returns 6: 1241454600\n\n if (now == null) {\n now = Math.floor(Date.now() / 1000)\n }\n\n // the rule order is important\n // if multiple rules match, the longest match wins\n // if multiple rules match the same string, the first match wins\n const rules = [\n formats.yesterday,\n formats.now,\n formats.noon,\n formats.midnightOrToday,\n formats.tomorrow,\n formats.timestamp,\n formats.firstOrLastDay,\n formats.backOrFrontOf,\n // formats.weekdayOf, // not yet implemented\n formats.timeTiny12,\n formats.timeShort12,\n formats.timeLong12,\n formats.mssqltime,\n formats.timeShort24,\n formats.timeLong24,\n formats.iso8601long,\n formats.gnuNoColon,\n formats.iso8601noColon,\n formats.americanShort,\n formats.american,\n formats.iso8601date4,\n formats.iso8601dateSlash,\n formats.dateSlash,\n formats.gnuDateShortOrIso8601date2,\n formats.gnuDateShorter,\n formats.dateFull,\n formats.pointedDate4,\n formats.pointedDate2,\n formats.dateNoDay,\n formats.dateNoDayRev,\n formats.dateTextual,\n formats.dateNoYear,\n formats.dateNoYearRev,\n formats.dateNoColon,\n formats.xmlRpc,\n formats.xmlRpcNoColon,\n formats.soap,\n formats.wddx,\n formats.exif,\n formats.pgydotd,\n formats.isoWeekDay,\n formats.pgTextShort,\n formats.pgTextReverse,\n formats.clf,\n formats.year4,\n formats.ago,\n formats.dayText,\n formats.relativeTextWeek,\n formats.relativeText,\n formats.monthFullOrMonthAbbr,\n formats.tzCorrection,\n formats.tzAbbr,\n formats.dateShortWithTimeShort12,\n formats.dateShortWithTimeLong12,\n formats.dateShortWithTimeShort,\n formats.dateShortWithTimeLong,\n formats.relative,\n formats.whitespace\n ]\n\n const result = Object.create(resultProto)\n\n while (str.length) {\n let longestMatch = null\n let finalRule = null\n\n for (let i = 0, l = rules.length; i < l; i++) {\n const format = rules[i]\n\n const match = str.match(format.regex)\n\n if (match) {\n if (!longestMatch || match[0].length > longestMatch[0].length) {\n longestMatch = match\n finalRule = format\n }\n }\n }\n\n if (!finalRule || (finalRule.callback && finalRule.callback.apply(result, longestMatch) === false)) {\n return false\n }\n\n str = str.substr(longestMatch[0].length)\n finalRule = null\n longestMatch = null\n }\n\n return Math.floor(result.toDate(new Date(now * 1000)) / 1000)\n}\n"]}
@@ -2,16 +2,24 @@
2
2
 
3
3
  module.exports = function escapeshellarg(arg) {
4
4
  // discuss at: https://locutus.io/php/escapeshellarg/
5
+ // Warning: this function emulates escapeshellarg() for php-running-on-linux
6
+ // the function behaves differently when running on Windows, which is not covered by this code.
7
+ //
5
8
  // original by: Felix Geisendoerfer (https://www.debuggable.com/felix)
6
9
  // improved by: Brett Zamir (https://brett-zamir.me)
10
+ // bugfixed by: divinity76 (https://github.com/divinity76)
7
11
  // example 1: escapeshellarg("kevin's birthday")
8
- // returns 1: "'kevin\\'s birthday'"
12
+ // returns 1: "'kevin'\\''s birthday'"
13
+ // example 2: escapeshellarg("/home'; whoami;''")
14
+ // returns 2: "'/home'\\''; whoami;'\\'''\\'''"
15
+
16
+ if (arg.indexOf('\x00') !== -1) {
17
+ throw new Error('escapeshellarg(): Argument #1 ($arg) must not contain any null bytes');
18
+ }
9
19
 
10
20
  var ret = '';
11
21
 
12
- ret = arg.replace(/[^\\]'/g, function (m, i, s) {
13
- return m.slice(0, 1) + '\\\'';
14
- });
22
+ ret = arg.replace(/'/g, '\'\\\'\'');
15
23
 
16
24
  return "'" + ret + "'";
17
25
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/exec/escapeshellarg.js"],"names":["module","exports","escapeshellarg","arg","ret","replace","m","i","s","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,cAAT,CAAyBC,GAAzB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;;AAEA,MAAIC,MAAM,EAAV;;AAEAA,QAAMD,IAAIE,OAAJ,CAAY,SAAZ,EAAuB,UAAUC,CAAV,EAAaC,CAAb,EAAgBC,CAAhB,EAAmB;AAC9C,WAAOF,EAAEG,KAAF,CAAQ,CAAR,EAAW,CAAX,IAAgB,MAAvB;AACD,GAFK,CAAN;;AAIA,SAAO,MAAML,GAAN,GAAY,GAAnB;AACD,CAdD","file":"escapeshellarg.js","sourcesContent":["module.exports = function escapeshellarg (arg) {\n // discuss at: https://locutus.io/php/escapeshellarg/\n // original by: Felix Geisendoerfer (https://www.debuggable.com/felix)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: escapeshellarg(\"kevin's birthday\")\n // returns 1: \"'kevin\\\\'s birthday'\"\n\n var ret = ''\n\n ret = arg.replace(/[^\\\\]'/g, function (m, i, s) {\n return m.slice(0, 1) + '\\\\\\''\n })\n\n return \"'\" + ret + \"'\"\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/exec/escapeshellarg.js"],"names":["module","exports","escapeshellarg","arg","indexOf","Error","ret","replace"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,cAAT,CAAyBC,GAAzB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIA,IAAIC,OAAJ,CAAY,MAAZ,MAAwB,CAAC,CAA7B,EAAgC;AAC9B,UAAM,IAAIC,KAAJ,CAAU,sEAAV,CAAN;AACD;;AAED,MAAIC,MAAM,EAAV;;AAEAA,QAAMH,IAAII,OAAJ,CAAY,IAAZ,EAAkB,UAAlB,CAAN;;AAEA,SAAO,MAAMD,GAAN,GAAY,GAAnB;AACD,CAtBD","file":"escapeshellarg.js","sourcesContent":["module.exports = function escapeshellarg (arg) {\n // discuss at: https://locutus.io/php/escapeshellarg/\n // Warning: this function emulates escapeshellarg() for php-running-on-linux\n // the function behaves differently when running on Windows, which is not covered by this code.\n //\n // original by: Felix Geisendoerfer (https://www.debuggable.com/felix)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: divinity76 (https://github.com/divinity76)\n // example 1: escapeshellarg(\"kevin's birthday\")\n // returns 1: \"'kevin'\\\\''s birthday'\"\n // example 2: escapeshellarg(\"/home'; whoami;''\")\n // returns 2: \"'/home'\\\\''; whoami;'\\\\'''\\\\'''\"\n\n if (arg.indexOf('\\x00') !== -1) {\n throw new Error('escapeshellarg(): Argument #1 ($arg) must not contain any null bytes')\n }\n\n let ret = ''\n\n ret = arg.replace(/'/g, '\\'\\\\\\'\\'')\n\n return \"'\" + ret + \"'\"\n}\n"]}
package/php/exec/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
2
 
3
- module.exports['escapeshellarg'] = require('./escapeshellarg');
3
+ module.exports.escapeshellarg = require('./escapeshellarg');
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/exec/index.js"],"names":["module","exports","require"],"mappings":";;AAAAA,OAAOC,OAAP,CAAe,gBAAf,IAAmCC,QAAQ,kBAAR,CAAnC","file":"index.js","sourcesContent":["module.exports['escapeshellarg'] = require('./escapeshellarg')\n"]}
1
+ {"version":3,"sources":["../../../src/php/exec/index.js"],"names":["module","exports","escapeshellarg","require"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,cAAf,GAAgCC,QAAQ,kBAAR,CAAhC","file":"index.js","sourcesContent":["module.exports.escapeshellarg = require('./escapeshellarg')\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/filesystem/basename.js"],"names":["module","exports","basename","path","suffix","b","lastChar","charAt","length","slice","replace","substr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,QAAT,CAAmBC,IAAnB,EAAyBC,MAAzB,EAAiC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,IAAIF,IAAR;AACA,MAAIG,WAAWD,EAAEE,MAAF,CAASF,EAAEG,MAAF,GAAW,CAApB,CAAf;;AAEA,MAAIF,aAAa,GAAb,IAAoBA,aAAa,IAArC,EAA2C;AACzCD,QAAIA,EAAEI,KAAF,CAAQ,CAAR,EAAW,CAAC,CAAZ,CAAJ;AACD;;AAEDJ,MAAIA,EAAEK,OAAF,CAAU,WAAV,EAAuB,EAAvB,CAAJ;;AAEA,MAAI,OAAON,MAAP,KAAkB,QAAlB,IAA8BC,EAAEM,MAAF,CAASN,EAAEG,MAAF,GAAWJ,OAAOI,MAA3B,MAAuCJ,MAAzE,EAAiF;AAC/EC,QAAIA,EAAEM,MAAF,CAAS,CAAT,EAAYN,EAAEG,MAAF,GAAWJ,OAAOI,MAA9B,CAAJ;AACD;;AAED,SAAOH,CAAP;AACD,CA9BD","file":"basename.js","sourcesContent":["module.exports = function basename (path, suffix) {\n // discuss at: https://locutus.io/php/basename/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Ash Searle (https://hexmen.com/blog/)\n // improved by: Lincoln Ramsay\n // improved by: djmix\n // improved by: Dmitry Gorelenkov\n // example 1: basename('/www/site/home.htm', '.htm')\n // returns 1: 'home'\n // example 2: basename('ecra.php?p=1')\n // returns 2: 'ecra.php?p=1'\n // example 3: basename('/some/path/')\n // returns 3: 'path'\n // example 4: basename('/some/path_ext.ext/','.ext')\n // returns 4: 'path_ext'\n\n var b = path\n var lastChar = b.charAt(b.length - 1)\n\n if (lastChar === '/' || lastChar === '\\\\') {\n b = b.slice(0, -1)\n }\n\n b = b.replace(/^.*[/\\\\]/g, '')\n\n if (typeof suffix === 'string' && b.substr(b.length - suffix.length) === suffix) {\n b = b.substr(0, b.length - suffix.length)\n }\n\n return b\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/filesystem/basename.js"],"names":["module","exports","basename","path","suffix","b","lastChar","charAt","length","slice","replace","substr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,QAAT,CAAmBC,IAAnB,EAAyBC,MAAzB,EAAiC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,IAAIF,IAAR;AACA,MAAMG,WAAWD,EAAEE,MAAF,CAASF,EAAEG,MAAF,GAAW,CAApB,CAAjB;;AAEA,MAAIF,aAAa,GAAb,IAAoBA,aAAa,IAArC,EAA2C;AACzCD,QAAIA,EAAEI,KAAF,CAAQ,CAAR,EAAW,CAAC,CAAZ,CAAJ;AACD;;AAEDJ,MAAIA,EAAEK,OAAF,CAAU,WAAV,EAAuB,EAAvB,CAAJ;;AAEA,MAAI,OAAON,MAAP,KAAkB,QAAlB,IAA8BC,EAAEM,MAAF,CAASN,EAAEG,MAAF,GAAWJ,OAAOI,MAA3B,MAAuCJ,MAAzE,EAAiF;AAC/EC,QAAIA,EAAEM,MAAF,CAAS,CAAT,EAAYN,EAAEG,MAAF,GAAWJ,OAAOI,MAA9B,CAAJ;AACD;;AAED,SAAOH,CAAP;AACD,CA9BD","file":"basename.js","sourcesContent":["module.exports = function basename (path, suffix) {\n // discuss at: https://locutus.io/php/basename/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Ash Searle (https://hexmen.com/blog/)\n // improved by: Lincoln Ramsay\n // improved by: djmix\n // improved by: Dmitry Gorelenkov\n // example 1: basename('/www/site/home.htm', '.htm')\n // returns 1: 'home'\n // example 2: basename('ecra.php?p=1')\n // returns 2: 'ecra.php?p=1'\n // example 3: basename('/some/path/')\n // returns 3: 'path'\n // example 4: basename('/some/path_ext.ext/','.ext')\n // returns 4: 'path_ext'\n\n let b = path\n const lastChar = b.charAt(b.length - 1)\n\n if (lastChar === '/' || lastChar === '\\\\') {\n b = b.slice(0, -1)\n }\n\n b = b.replace(/^.*[/\\\\]/g, '')\n\n if (typeof suffix === 'string' && b.substr(b.length - suffix.length) === suffix) {\n b = b.substr(0, b.length - suffix.length)\n }\n\n return b\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/filesystem/file_get_contents.js"],"names":["module","exports","file_get_contents","url","flags","context","offset","maxLen","fs","require","readFileSync"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,iBAAT,CAA4BC,GAA5B,EAAiCC,KAAjC,EAAwCC,OAAxC,EAAiDC,MAAjD,EAAyDC,MAAzD,EAAiE;AAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,KAAKC,QAAQ,IAAR,CAAT;;AAEA,SAAOD,GAAGE,YAAH,CAAgBP,GAAhB,EAAqB,OAArB,CAAP;AACD,CArBD","file":"file_get_contents.js","sourcesContent":["module.exports = function file_get_contents (url, flags, context, offset, maxLen) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/file_get_contents/\n // original by: Legaev Andrey\n // input by: Jani Hartikainen\n // input by: Raphael (Ao) RUDLER\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // reimplemented by: Kevin van Zonneveld (https://kvz.io)\n // note 1: This used to work in the browser via blocking ajax\n // note 1: requests in 1.3.2 and earlier\n // note 1: but then people started using that for real app,\n // note 1: so we deprecated this behavior,\n // note 1: so this function is now Node-only\n // example 1: var $buf = file_get_contents('test/never-change.txt')\n // example 1: var $result = $buf.indexOf('hash') !== -1\n // returns 1: true\n\n var fs = require('fs')\n\n return fs.readFileSync(url, 'utf-8')\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/filesystem/file_get_contents.js"],"names":["module","exports","file_get_contents","url","flags","context","offset","maxLen","fs","require","readFileSync"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,iBAAT,CAA4BC,GAA5B,EAAiCC,KAAjC,EAAwCC,OAAxC,EAAiDC,MAAjD,EAAyDC,MAAzD,EAAiE;AAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,KAAKC,QAAQ,IAAR,CAAX;;AAEA,SAAOD,GAAGE,YAAH,CAAgBP,GAAhB,EAAqB,OAArB,CAAP;AACD,CArBD","file":"file_get_contents.js","sourcesContent":["module.exports = function file_get_contents (url, flags, context, offset, maxLen) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/file_get_contents/\n // original by: Legaev Andrey\n // input by: Jani Hartikainen\n // input by: Raphael (Ao) RUDLER\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // reimplemented by: Kevin van Zonneveld (https://kvz.io)\n // note 1: This used to work in the browser via blocking ajax\n // note 1: requests in 1.3.2 and earlier\n // note 1: but then people started using that for real app,\n // note 1: so we deprecated this behavior,\n // note 1: so this function is now Node-only\n // example 1: var $buf = file_get_contents('test/never-change.txt')\n // example 1: var $result = $buf.indexOf('hash') !== -1\n // returns 1: true\n\n const fs = require('fs')\n\n return fs.readFileSync(url, 'utf-8')\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- module.exports['basename'] = require('./basename');
4
- module.exports['dirname'] = require('./dirname');
5
- module.exports['file_get_contents'] = require('./file_get_contents');
6
- module.exports['pathinfo'] = require('./pathinfo');
7
- module.exports['realpath'] = require('./realpath');
3
+ module.exports.basename = require('./basename');
4
+ module.exports.dirname = require('./dirname');
5
+ module.exports.file_get_contents = require('./file_get_contents');
6
+ module.exports.pathinfo = require('./pathinfo');
7
+ module.exports.realpath = require('./realpath');
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/filesystem/index.js"],"names":["module","exports","require"],"mappings":";;AAAAA,OAAOC,OAAP,CAAe,UAAf,IAA6BC,QAAQ,YAAR,CAA7B;AACAF,OAAOC,OAAP,CAAe,SAAf,IAA4BC,QAAQ,WAAR,CAA5B;AACAF,OAAOC,OAAP,CAAe,mBAAf,IAAsCC,QAAQ,qBAAR,CAAtC;AACAF,OAAOC,OAAP,CAAe,UAAf,IAA6BC,QAAQ,YAAR,CAA7B;AACAF,OAAOC,OAAP,CAAe,UAAf,IAA6BC,QAAQ,YAAR,CAA7B","file":"index.js","sourcesContent":["module.exports['basename'] = require('./basename')\nmodule.exports['dirname'] = require('./dirname')\nmodule.exports['file_get_contents'] = require('./file_get_contents')\nmodule.exports['pathinfo'] = require('./pathinfo')\nmodule.exports['realpath'] = require('./realpath')\n"]}
1
+ {"version":3,"sources":["../../../src/php/filesystem/index.js"],"names":["module","exports","basename","require","dirname","file_get_contents","pathinfo","realpath"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,QAAf,GAA0BC,QAAQ,YAAR,CAA1B;AACAH,OAAOC,OAAP,CAAeG,OAAf,GAAyBD,QAAQ,WAAR,CAAzB;AACAH,OAAOC,OAAP,CAAeI,iBAAf,GAAmCF,QAAQ,qBAAR,CAAnC;AACAH,OAAOC,OAAP,CAAeK,QAAf,GAA0BH,QAAQ,YAAR,CAA1B;AACAH,OAAOC,OAAP,CAAeM,QAAf,GAA0BJ,QAAQ,YAAR,CAA1B","file":"index.js","sourcesContent":["module.exports.basename = require('./basename')\nmodule.exports.dirname = require('./dirname')\nmodule.exports.file_get_contents = require('./file_get_contents')\nmodule.exports.pathinfo = require('./pathinfo')\nmodule.exports.realpath = require('./realpath')\n"]}
@@ -58,14 +58,13 @@ module.exports = function pathinfo(path, options) {
58
58
  // Initialize binary arguments. Both the string & integer (constant) input is
59
59
  // allowed
60
60
  var OPTS = {
61
- 'PATHINFO_DIRNAME': 1,
62
- 'PATHINFO_BASENAME': 2,
63
- 'PATHINFO_EXTENSION': 4,
64
- 'PATHINFO_FILENAME': 8,
65
- 'PATHINFO_ALL': 0
66
- };
67
- // PATHINFO_ALL sums up all previously defined PATHINFOs (could just pre-calculate)
68
- for (optName in OPTS) {
61
+ PATHINFO_DIRNAME: 1,
62
+ PATHINFO_BASENAME: 2,
63
+ PATHINFO_EXTENSION: 4,
64
+ PATHINFO_FILENAME: 8,
65
+ PATHINFO_ALL: 0
66
+ // PATHINFO_ALL sums up all previously defined PATHINFOs (could just pre-calculate)
67
+ };for (optName in OPTS) {
69
68
  if (OPTS.hasOwnProperty(optName)) {
70
69
  OPTS.PATHINFO_ALL = OPTS.PATHINFO_ALL | OPTS[optName];
71
70
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/filesystem/pathinfo.js"],"names":["module","exports","pathinfo","path","options","basename","require","opt","realOpt","optName","optTemp","tmpArr","cnt","i","haveBasename","haveExtension","haveFilename","OPTS","hasOwnProperty","PATHINFO_ALL","concat","length","_getExt","str","dotP","lastIndexOf","substr","PATHINFO_DIRNAME","dirName","replace","dirname","PATHINFO_BASENAME","PATHINFO_EXTENSION","extension","PATHINFO_FILENAME","slice","filename"],"mappings":"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","file":"pathinfo.js","sourcesContent":["module.exports = function pathinfo (path, options) {\n // discuss at: https://locutus.io/php/pathinfo/\n // original by: Nate\n // revised by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Dmitry Gorelenkov\n // input by: Timo\n // note 1: Inspired by actual PHP source: php5-5.2.6/ext/standard/string.c line #1559\n // note 1: The way the bitwise arguments are handled allows for greater flexibility\n // note 1: & compatability. We might even standardize this\n // note 1: code and use a similar approach for\n // note 1: other bitwise PHP functions\n // note 1: Locutus tries very hard to stay away from a core.js\n // note 1: file with global dependencies, because we like\n // note 1: that you can just take a couple of functions and be on your way.\n // note 1: But by way we implemented this function,\n // note 1: if you want you can still declare the PATHINFO_*\n // note 1: yourself, and then you can use:\n // note 1: pathinfo('/www/index.html', PATHINFO_BASENAME | PATHINFO_EXTENSION);\n // note 1: which makes it fully compliant with PHP syntax.\n // example 1: pathinfo('/www/htdocs/index.html', 1)\n // returns 1: '/www/htdocs'\n // example 2: pathinfo('/www/htdocs/index.html', 'PATHINFO_BASENAME')\n // returns 2: 'index.html'\n // example 3: pathinfo('/www/htdocs/index.html', 'PATHINFO_EXTENSION')\n // returns 3: 'html'\n // example 4: pathinfo('/www/htdocs/index.html', 'PATHINFO_FILENAME')\n // returns 4: 'index'\n // example 5: pathinfo('/www/htdocs/index.html', 2 | 4)\n // returns 5: {basename: 'index.html', extension: 'html'}\n // example 6: pathinfo('/www/htdocs/index.html', 'PATHINFO_ALL')\n // returns 6: {dirname: '/www/htdocs', basename: 'index.html', extension: 'html', filename: 'index'}\n // example 7: pathinfo('/www/htdocs/index.html')\n // returns 7: {dirname: '/www/htdocs', basename: 'index.html', extension: 'html', filename: 'index'}\n\n var basename = require('../filesystem/basename')\n var opt = ''\n var realOpt = ''\n var optName = ''\n var optTemp = 0\n var tmpArr = {}\n var cnt = 0\n var i = 0\n var haveBasename = false\n var haveExtension = false\n var haveFilename = false\n\n // Input defaulting & sanitation\n if (!path) {\n return false\n }\n if (!options) {\n options = 'PATHINFO_ALL'\n }\n\n // Initialize binary arguments. Both the string & integer (constant) input is\n // allowed\n var OPTS = {\n 'PATHINFO_DIRNAME': 1,\n 'PATHINFO_BASENAME': 2,\n 'PATHINFO_EXTENSION': 4,\n 'PATHINFO_FILENAME': 8,\n 'PATHINFO_ALL': 0\n }\n // PATHINFO_ALL sums up all previously defined PATHINFOs (could just pre-calculate)\n for (optName in OPTS) {\n if (OPTS.hasOwnProperty(optName)) {\n OPTS.PATHINFO_ALL = OPTS.PATHINFO_ALL | OPTS[optName]\n }\n }\n if (typeof options !== 'number') {\n // Allow for a single string or an array of string flags\n options = [].concat(options)\n for (i = 0; i < options.length; i++) {\n // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4\n if (OPTS[options[i]]) {\n optTemp = optTemp | OPTS[options[i]]\n }\n }\n options = optTemp\n }\n\n // Internal Functions\n var _getExt = function (path) {\n var str = path + ''\n var dotP = str.lastIndexOf('.') + 1\n return !dotP ? false : dotP !== str.length ? str.substr(dotP) : ''\n }\n\n // Gather path infos\n if (options & OPTS.PATHINFO_DIRNAME) {\n var dirName = path\n .replace(/\\\\/g, '/')\n .replace(/\\/[^/]*\\/?$/, '') // dirname\n tmpArr.dirname = dirName === path ? '.' : dirName\n }\n\n if (options & OPTS.PATHINFO_BASENAME) {\n if (haveBasename === false) {\n haveBasename = basename(path)\n }\n tmpArr.basename = haveBasename\n }\n\n if (options & OPTS.PATHINFO_EXTENSION) {\n if (haveBasename === false) {\n haveBasename = basename(path)\n }\n if (haveExtension === false) {\n haveExtension = _getExt(haveBasename)\n }\n if (haveExtension !== false) {\n tmpArr.extension = haveExtension\n }\n }\n\n if (options & OPTS.PATHINFO_FILENAME) {\n if (haveBasename === false) {\n haveBasename = basename(path)\n }\n if (haveExtension === false) {\n haveExtension = _getExt(haveBasename)\n }\n if (haveFilename === false) {\n haveFilename = haveBasename.slice(0, haveBasename.length - (haveExtension\n ? haveExtension.length + 1\n : haveExtension === false\n ? 0\n : 1\n )\n )\n }\n\n tmpArr.filename = haveFilename\n }\n\n // If array contains only 1 element: return string\n cnt = 0\n for (opt in tmpArr) {\n if (tmpArr.hasOwnProperty(opt)) {\n cnt++\n realOpt = opt\n }\n }\n if (cnt === 1) {\n return tmpArr[realOpt]\n }\n\n // Return full-blown array\n return tmpArr\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/filesystem/pathinfo.js"],"names":["module","exports","pathinfo","path","options","basename","require","opt","realOpt","optName","optTemp","tmpArr","cnt","i","haveBasename","haveExtension","haveFilename","OPTS","PATHINFO_DIRNAME","PATHINFO_BASENAME","PATHINFO_EXTENSION","PATHINFO_FILENAME","PATHINFO_ALL","hasOwnProperty","concat","length","_getExt","str","dotP","lastIndexOf","substr","dirName","replace","dirname","extension","slice","filename"],"mappings":"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","file":"pathinfo.js","sourcesContent":["module.exports = function pathinfo (path, options) {\n // discuss at: https://locutus.io/php/pathinfo/\n // original by: Nate\n // revised by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // improved by: Dmitry Gorelenkov\n // input by: Timo\n // note 1: Inspired by actual PHP source: php5-5.2.6/ext/standard/string.c line #1559\n // note 1: The way the bitwise arguments are handled allows for greater flexibility\n // note 1: & compatability. We might even standardize this\n // note 1: code and use a similar approach for\n // note 1: other bitwise PHP functions\n // note 1: Locutus tries very hard to stay away from a core.js\n // note 1: file with global dependencies, because we like\n // note 1: that you can just take a couple of functions and be on your way.\n // note 1: But by way we implemented this function,\n // note 1: if you want you can still declare the PATHINFO_*\n // note 1: yourself, and then you can use:\n // note 1: pathinfo('/www/index.html', PATHINFO_BASENAME | PATHINFO_EXTENSION);\n // note 1: which makes it fully compliant with PHP syntax.\n // example 1: pathinfo('/www/htdocs/index.html', 1)\n // returns 1: '/www/htdocs'\n // example 2: pathinfo('/www/htdocs/index.html', 'PATHINFO_BASENAME')\n // returns 2: 'index.html'\n // example 3: pathinfo('/www/htdocs/index.html', 'PATHINFO_EXTENSION')\n // returns 3: 'html'\n // example 4: pathinfo('/www/htdocs/index.html', 'PATHINFO_FILENAME')\n // returns 4: 'index'\n // example 5: pathinfo('/www/htdocs/index.html', 2 | 4)\n // returns 5: {basename: 'index.html', extension: 'html'}\n // example 6: pathinfo('/www/htdocs/index.html', 'PATHINFO_ALL')\n // returns 6: {dirname: '/www/htdocs', basename: 'index.html', extension: 'html', filename: 'index'}\n // example 7: pathinfo('/www/htdocs/index.html')\n // returns 7: {dirname: '/www/htdocs', basename: 'index.html', extension: 'html', filename: 'index'}\n\n const basename = require('../filesystem/basename')\n let opt = ''\n let realOpt = ''\n let optName = ''\n let optTemp = 0\n const tmpArr = {}\n let cnt = 0\n let i = 0\n let haveBasename = false\n let haveExtension = false\n let haveFilename = false\n\n // Input defaulting & sanitation\n if (!path) {\n return false\n }\n if (!options) {\n options = 'PATHINFO_ALL'\n }\n\n // Initialize binary arguments. Both the string & integer (constant) input is\n // allowed\n const OPTS = {\n PATHINFO_DIRNAME: 1,\n PATHINFO_BASENAME: 2,\n PATHINFO_EXTENSION: 4,\n PATHINFO_FILENAME: 8,\n PATHINFO_ALL: 0\n }\n // PATHINFO_ALL sums up all previously defined PATHINFOs (could just pre-calculate)\n for (optName in OPTS) {\n if (OPTS.hasOwnProperty(optName)) {\n OPTS.PATHINFO_ALL = OPTS.PATHINFO_ALL | OPTS[optName]\n }\n }\n if (typeof options !== 'number') {\n // Allow for a single string or an array of string flags\n options = [].concat(options)\n for (i = 0; i < options.length; i++) {\n // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4\n if (OPTS[options[i]]) {\n optTemp = optTemp | OPTS[options[i]]\n }\n }\n options = optTemp\n }\n\n // Internal Functions\n const _getExt = function (path) {\n const str = path + ''\n const dotP = str.lastIndexOf('.') + 1\n return !dotP ? false : dotP !== str.length ? str.substr(dotP) : ''\n }\n\n // Gather path infos\n if (options & OPTS.PATHINFO_DIRNAME) {\n const dirName = path\n .replace(/\\\\/g, '/')\n .replace(/\\/[^/]*\\/?$/, '') // dirname\n tmpArr.dirname = dirName === path ? '.' : dirName\n }\n\n if (options & OPTS.PATHINFO_BASENAME) {\n if (haveBasename === false) {\n haveBasename = basename(path)\n }\n tmpArr.basename = haveBasename\n }\n\n if (options & OPTS.PATHINFO_EXTENSION) {\n if (haveBasename === false) {\n haveBasename = basename(path)\n }\n if (haveExtension === false) {\n haveExtension = _getExt(haveBasename)\n }\n if (haveExtension !== false) {\n tmpArr.extension = haveExtension\n }\n }\n\n if (options & OPTS.PATHINFO_FILENAME) {\n if (haveBasename === false) {\n haveBasename = basename(path)\n }\n if (haveExtension === false) {\n haveExtension = _getExt(haveBasename)\n }\n if (haveFilename === false) {\n haveFilename = haveBasename.slice(0, haveBasename.length - (haveExtension\n ? haveExtension.length + 1\n : haveExtension === false\n ? 0\n : 1\n )\n )\n }\n\n tmpArr.filename = haveFilename\n }\n\n // If array contains only 1 element: return string\n cnt = 0\n for (opt in tmpArr) {\n if (tmpArr.hasOwnProperty(opt)) {\n cnt++\n realOpt = opt\n }\n }\n if (cnt === 1) {\n return tmpArr[realOpt]\n }\n\n // Return full-blown array\n return tmpArr\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/filesystem/realpath.js"],"names":["module","exports","realpath","path","window","nodePath","require","normalize","p","arr","r","location","href","replace","indexOf","substring","lastIndexOf","split","k","length","pop","push","join"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,QAAT,CAAmBC,IAAnB,EAAyB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;AACjC,QAAIC,WAAWC,QAAQ,MAAR,CAAf;AACA,WAAOD,SAASE,SAAT,CAAmBJ,IAAnB,CAAP;AACD;;AAED,MAAIK,IAAI,CAAR;AACA,MAAIC,MAAM,EAAV,CAdwC,CAc3B;AACb,MAAIC,IAAI,KAAKN,MAAL,CAAYO,QAAZ,CAAqBC,IAA7B,CAfwC,CAeN;;AAElC;AACAT,SAAO,CAACA,OAAO,EAAR,EAAYU,OAAZ,CAAoB,IAApB,EAA0B,GAA1B,CAAP;AACA,MAAIV,KAAKW,OAAL,CAAa,KAAb,MAAwB,CAAC,CAA7B,EAAgC;AAC9BN,QAAI,CAAJ;AACD;;AAED;AACA,MAAI,CAACA,CAAL,EAAQ;AACNL,WAAOO,EAAEK,SAAF,CAAY,CAAZ,EAAeL,EAAEM,WAAF,CAAc,GAAd,IAAqB,CAApC,IAAyCb,IAAhD;AACD;;AAED;AACAM,QAAMN,KAAKc,KAAL,CAAW,GAAX,CAAN,CA7BwC,CA6BlB;AACtBd,SAAO,EAAP,CA9BwC,CA8B9B;AACV,OAAK,IAAIe,CAAT,IAAcT,GAAd,EAAmB;AAAE;AACnB,QAAIA,IAAIS,CAAJ,MAAW,GAAf,EAAoB;AAClB;AACD;AACD;AACA,QAAIT,IAAIS,CAAJ,MAAW,IAAf,EAAqB;AACnB;;AAEA,UAAIf,KAAKgB,MAAL,GAAc,CAAlB,EAAqB;AACnBhB,aAAKiB,GAAL;AACD;AACF,KAND,MAMO;AACL;AACA;AACA;AACA;AACA,UAAKjB,KAAKgB,MAAL,GAAc,CAAf,IAAsBV,IAAIS,CAAJ,MAAW,EAArC,EAA0C;AACxCf,aAAKkB,IAAL,CAAUZ,IAAIS,CAAJ,CAAV;AACD;AACF;AACF;;AAED;AACA,SAAOf,KAAKmB,IAAL,CAAU,GAAV,CAAP;AACD,CAvDD","file":"realpath.js","sourcesContent":["module.exports = function realpath (path) {\n // discuss at: https://locutus.io/php/realpath/\n // original by: mk.keck\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // note 1: Returned path is an url like e.g. 'https://yourhost.tld/path/'\n // example 1: realpath('some/dir/.././_supporters/pj_test_supportfile_1.htm')\n // returns 1: 'some/_supporters/pj_test_supportfile_1.htm'\n\n if (typeof window === 'undefined') {\n var nodePath = require('path')\n return nodePath.normalize(path)\n }\n\n var p = 0\n var arr = [] // Save the root, if not given\n var r = this.window.location.href // Avoid input failures\n\n // Check if there's a port in path (like 'https://')\n path = (path + '').replace('\\\\', '/')\n if (path.indexOf('://') !== -1) {\n p = 1\n }\n\n // Ok, there's not a port in path, so let's take the root\n if (!p) {\n path = r.substring(0, r.lastIndexOf('/') + 1) + path\n }\n\n // Explode the given path into it's parts\n arr = path.split('/') // The path is an array now\n path = [] // Foreach part make a check\n for (var k in arr) { // This is'nt really interesting\n if (arr[k] === '.') {\n continue\n }\n // This reduces the realpath\n if (arr[k] === '..') {\n /* But only if there more than 3 parts in the path-array.\n * The first three parts are for the uri */\n if (path.length > 3) {\n path.pop()\n }\n } else {\n // This adds parts to the realpath\n // But only if the part is not empty or the uri\n // (the first three parts ar needed) was not\n // saved\n if ((path.length < 2) || (arr[k] !== '')) {\n path.push(arr[k])\n }\n }\n }\n\n // Returns the absloute path as a string\n return path.join('/')\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/filesystem/realpath.js"],"names":["module","exports","realpath","path","window","nodePath","require","normalize","p","arr","r","location","href","replace","indexOf","substring","lastIndexOf","split","k","length","pop","push","join"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,QAAT,CAAmBC,IAAnB,EAAyB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;AACjC,QAAMC,WAAWC,QAAQ,MAAR,CAAjB;AACA,WAAOD,SAASE,SAAT,CAAmBJ,IAAnB,CAAP;AACD;;AAED,MAAIK,IAAI,CAAR;AACA,MAAIC,MAAM,EAAV,CAdwC,CAc3B;AACb,MAAMC,IAAI,KAAKN,MAAL,CAAYO,QAAZ,CAAqBC,IAA/B,CAfwC,CAeJ;;AAEpC;AACAT,SAAO,CAACA,OAAO,EAAR,EAAYU,OAAZ,CAAoB,IAApB,EAA0B,GAA1B,CAAP;AACA,MAAIV,KAAKW,OAAL,CAAa,KAAb,MAAwB,CAAC,CAA7B,EAAgC;AAC9BN,QAAI,CAAJ;AACD;;AAED;AACA,MAAI,CAACA,CAAL,EAAQ;AACNL,WAAOO,EAAEK,SAAF,CAAY,CAAZ,EAAeL,EAAEM,WAAF,CAAc,GAAd,IAAqB,CAApC,IAAyCb,IAAhD;AACD;;AAED;AACAM,QAAMN,KAAKc,KAAL,CAAW,GAAX,CAAN,CA7BwC,CA6BlB;AACtBd,SAAO,EAAP,CA9BwC,CA8B9B;AACV,OAAK,IAAMe,CAAX,IAAgBT,GAAhB,EAAqB;AAAE;AACrB,QAAIA,IAAIS,CAAJ,MAAW,GAAf,EAAoB;AAClB;AACD;AACD;AACA,QAAIT,IAAIS,CAAJ,MAAW,IAAf,EAAqB;AACnB;;AAEA,UAAIf,KAAKgB,MAAL,GAAc,CAAlB,EAAqB;AACnBhB,aAAKiB,GAAL;AACD;AACF,KAND,MAMO;AACL;AACA;AACA;AACA;AACA,UAAKjB,KAAKgB,MAAL,GAAc,CAAf,IAAsBV,IAAIS,CAAJ,MAAW,EAArC,EAA0C;AACxCf,aAAKkB,IAAL,CAAUZ,IAAIS,CAAJ,CAAV;AACD;AACF;AACF;;AAED;AACA,SAAOf,KAAKmB,IAAL,CAAU,GAAV,CAAP;AACD,CAvDD","file":"realpath.js","sourcesContent":["module.exports = function realpath (path) {\n // discuss at: https://locutus.io/php/realpath/\n // original by: mk.keck\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // note 1: Returned path is an url like e.g. 'https://yourhost.tld/path/'\n // example 1: realpath('some/dir/.././_supporters/pj_test_supportfile_1.htm')\n // returns 1: 'some/_supporters/pj_test_supportfile_1.htm'\n\n if (typeof window === 'undefined') {\n const nodePath = require('path')\n return nodePath.normalize(path)\n }\n\n let p = 0\n let arr = [] // Save the root, if not given\n const r = this.window.location.href // Avoid input failures\n\n // Check if there's a port in path (like 'https://')\n path = (path + '').replace('\\\\', '/')\n if (path.indexOf('://') !== -1) {\n p = 1\n }\n\n // Ok, there's not a port in path, so let's take the root\n if (!p) {\n path = r.substring(0, r.lastIndexOf('/') + 1) + path\n }\n\n // Explode the given path into it's parts\n arr = path.split('/') // The path is an array now\n path = [] // Foreach part make a check\n for (const k in arr) { // This is'nt really interesting\n if (arr[k] === '.') {\n continue\n }\n // This reduces the realpath\n if (arr[k] === '..') {\n /* But only if there more than 3 parts in the path-array.\n * The first three parts are for the uri */\n if (path.length > 3) {\n path.pop()\n }\n } else {\n // This adds parts to the realpath\n // But only if the part is not empty or the uri\n // (the first three parts ar needed) was not\n // saved\n if ((path.length < 2) || (arr[k] !== '')) {\n path.push(arr[k])\n }\n }\n }\n\n // Returns the absloute path as a string\n return path.join('/')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/php/funchand/call_user_func.js"],"names":["module","exports","call_user_func","cb","parameters","callUserFuncArray","require","Array","prototype","slice","call","arguments"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,cAAT,CAAyBC,EAAzB,EAA6BC,UAA7B,EAAyC;AAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,oBAAoBC,QAAQ,kCAAR,CAAxB;AACAF,eAAaG,MAAMC,SAAN,CAAgBC,KAAhB,CAAsBC,IAAtB,CAA2BC,SAA3B,EAAsC,CAAtC,CAAb;AACA,SAAON,kBAAkBF,EAAlB,EAAsBC,UAAtB,CAAP;AACD,CAhBD","file":"call_user_func.js","sourcesContent":["module.exports = function call_user_func (cb, parameters) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/call_user_func/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Diplom@t (https://difane.com/)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // note 1: Depends on call_user_func_array which in turn depends on the `cb` that is passed,\n // note 1: this function can use `eval`.\n // note 1: The `eval` input is however checked to only allow valid function names,\n // note 1: So it should not be unsafer than uses without eval (seeing as you can)\n // note 1: already pass any function to be executed here.\n // example 1: call_user_func('isNaN', 'a')\n // returns 1: true\n\n var callUserFuncArray = require('../funchand/call_user_func_array')\n parameters = Array.prototype.slice.call(arguments, 1)\n return callUserFuncArray(cb, parameters)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/php/funchand/call_user_func.js"],"names":["module","exports","call_user_func","cb","parameters","callUserFuncArray","require","Array","prototype","slice","call","arguments"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,cAAT,CAAyBC,EAAzB,EAA6BC,UAA7B,EAAyC;AAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,oBAAoBC,QAAQ,kCAAR,CAA1B;AACAF,eAAaG,MAAMC,SAAN,CAAgBC,KAAhB,CAAsBC,IAAtB,CAA2BC,SAA3B,EAAsC,CAAtC,CAAb;AACA,SAAON,kBAAkBF,EAAlB,EAAsBC,UAAtB,CAAP;AACD,CAhBD","file":"call_user_func.js","sourcesContent":["module.exports = function call_user_func (cb, parameters) { // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/call_user_func/\n // original by: Brett Zamir (https://brett-zamir.me)\n // improved by: Diplom@t (https://difane.com/)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // note 1: Depends on call_user_func_array which in turn depends on the `cb` that is passed,\n // note 1: this function can use `eval`.\n // note 1: The `eval` input is however checked to only allow valid function names,\n // note 1: So it should not be unsafer than uses without eval (seeing as you can)\n // note 1: already pass any function to be executed here.\n // example 1: call_user_func('isNaN', 'a')\n // returns 1: true\n\n const callUserFuncArray = require('../funchand/call_user_func_array')\n parameters = Array.prototype.slice.call(arguments, 1)\n return callUserFuncArray(cb, parameters)\n}\n"]}
@@ -21,7 +21,7 @@ module.exports = function call_user_func_array(cb, parameters) {
21
21
  // returns 2: false
22
22
 
23
23
  var $global = typeof window !== 'undefined' ? window : global;
24
- var func;
24
+ var func = void 0;
25
25
  var scope = null;
26
26
 
27
27
  var validJSFunctionNamePattern = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;