@visulima/pail 4.0.0-alpha.4 → 4.0.0-alpha.6

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 (31) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/LICENSE.md +4 -4
  3. package/dist/index.browser.js +1488 -2
  4. package/dist/index.server.js +2656 -12
  5. package/dist/interactive/index.js +2 -2
  6. package/dist/packem_shared/AbstractJsonReporter-DWRpTtGw.js +204 -0
  7. package/dist/packem_shared/{InteractiveManager-CbE7d1kY.js → InteractiveManager-Cd6A14ZK.js} +1 -1
  8. package/dist/packem_shared/{interactive-stream-hook-DG4BtN12.js → InteractiveStreamHook-ePIURL_U.js} +1 -9
  9. package/dist/packem_shared/{JsonReporter-VzgyLEYz.js → JsonReporter-BV5lMnJX.js} +1 -1
  10. package/dist/packem_shared/{PrettyReporter-DySIXBjQ.js → PrettyReporter-BYL3NrdA.js} +49 -4
  11. package/dist/packem_shared/{format-label-De49vNPd.js → PrettyReporter-BjXCFQlo.js} +268 -3
  12. package/dist/packem_shared/Spinner-DIdVcfWq.js +2183 -0
  13. package/dist/packem_shared/abstract-pretty-reporter-jU8WL_6c.js +2602 -0
  14. package/dist/packem_shared/constants-B1RjD_ps.js +99 -0
  15. package/dist/packem_shared/getBarChar-BWj1UrH3.js +404 -0
  16. package/dist/packem_shared/{index-BomQ3E6J.js → index-DnkF86LQ.js} +9 -1
  17. package/dist/packem_shared/{index-EZ_WSQZS.js → index-frijFf5m.js} +120 -14
  18. package/dist/processor/message-formatter-processor.js +648 -1
  19. package/dist/reporter/file/json-file-reporter.js +1 -1
  20. package/dist/reporter/http/abstract-http-reporter.js +1 -1
  21. package/dist/reporter/json/index.js +2 -2
  22. package/dist/reporter/pretty/index.browser.js +1 -1
  23. package/dist/reporter/pretty/index.js +1 -1
  24. package/dist/reporter/simple/simple-reporter.server.js +2 -7
  25. package/dist/spinner.js +34 -1
  26. package/package.json +4 -4
  27. package/dist/packem_shared/InteractiveStreamHook-DiSubbJ1.js +0 -21
  28. package/dist/packem_shared/PrettyReporter-C2wVB7yu.js +0 -222
  29. package/dist/packem_shared/abstract-pretty-reporter-Di_sdm2r.js +0 -50
  30. package/dist/packem_shared/get-longest-label-C9PWeyKq.js +0 -9
  31. package/dist/packem_shared/pail.browser-u2CSR_af.js +0 -1427
@@ -79,25 +79,104 @@ const RE_ANSI = /[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-O
79
79
  const RE_CONTROL = /[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y;
80
80
  const RE_EMOJI = emojiRegex();
81
81
 
82
- function isAmbiguous(x) {
83
- return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
84
- }
85
- function isFullWidth(x) {
86
- return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
87
- }
88
- function isWide(x) {
89
- return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x >= 94192 && x <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128728 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
82
+ const ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
83
+ const fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
84
+ const halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
85
+ const narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
86
+ const wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
87
+ const isInRange = (ranges, codePoint) => {
88
+ let low = 0;
89
+ let high = Math.floor(ranges.length / 2) - 1;
90
+ while (low <= high) {
91
+ const mid = Math.floor((low + high) / 2);
92
+ const i = mid * 2;
93
+ if (codePoint < ranges[i]) {
94
+ high = mid - 1;
95
+ } else if (codePoint > ranges[i + 1]) {
96
+ low = mid + 1;
97
+ } else {
98
+ return true;
99
+ }
100
+ }
101
+ return false;
102
+ };
103
+ const minimumAmbiguousCodePoint = ambiguousRanges[0];
104
+ const maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
105
+ const minimumFullWidthCodePoint = fullwidthRanges[0];
106
+ const maximumFullWidthCodePoint = fullwidthRanges.at(-1);
107
+ const minimumHalfWidthCodePoint = halfwidthRanges[0];
108
+ const maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
109
+ const minimumNarrowCodePoint = narrowRanges[0];
110
+ const maximumNarrowCodePoint = narrowRanges.at(-1);
111
+ const minimumWideCodePoint = wideRanges[0];
112
+ const maximumWideCodePoint = wideRanges.at(-1);
113
+ const commonCjkCodePoint = 19968;
114
+ const [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
115
+ function findWideFastPathRange(ranges) {
116
+ let fastPathStart = ranges[0];
117
+ let fastPathEnd = ranges[1];
118
+ for (let index = 0; index < ranges.length; index += 2) {
119
+ const start = ranges[index];
120
+ const end = ranges[index + 1];
121
+ if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
122
+ return [start, end];
123
+ }
124
+ if (end - start > fastPathEnd - fastPathStart) {
125
+ fastPathStart = start;
126
+ fastPathEnd = end;
127
+ }
128
+ }
129
+ return [fastPathStart, fastPathEnd];
90
130
  }
91
- function getCategory(x) {
92
- if (isAmbiguous(x)) return "ambiguous";
93
- if (isFullWidth(x)) return "fullwidth";
94
- if (x === 8361 || x >= 65377 && x <= 65470 || x >= 65474 && x <= 65479 || x >= 65482 && x <= 65487 || x >= 65490 && x <= 65495 || x >= 65498 && x <= 65500 || x >= 65512 && x <= 65518) {
131
+ const isAmbiguous = (codePoint) => {
132
+ if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
133
+ return false;
134
+ }
135
+ return isInRange(ambiguousRanges, codePoint);
136
+ };
137
+ const isFullWidth = (codePoint) => {
138
+ if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
139
+ return false;
140
+ }
141
+ return isInRange(fullwidthRanges, codePoint);
142
+ };
143
+ const isHalfWidth = (codePoint) => {
144
+ if (codePoint < minimumHalfWidthCodePoint || codePoint > maximumHalfWidthCodePoint) {
145
+ return false;
146
+ }
147
+ return isInRange(halfwidthRanges, codePoint);
148
+ };
149
+ const isNarrow = (codePoint) => {
150
+ if (codePoint < minimumNarrowCodePoint || codePoint > maximumNarrowCodePoint) {
151
+ return false;
152
+ }
153
+ return isInRange(narrowRanges, codePoint);
154
+ };
155
+ const isWide = (codePoint) => {
156
+ if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
157
+ return true;
158
+ }
159
+ if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
160
+ return false;
161
+ }
162
+ return isInRange(wideRanges, codePoint);
163
+ };
164
+ function getCategory(codePoint) {
165
+ if (isAmbiguous(codePoint)) {
166
+ return "ambiguous";
167
+ }
168
+ if (isFullWidth(codePoint)) {
169
+ return "fullwidth";
170
+ }
171
+ if (isHalfWidth(codePoint)) {
95
172
  return "halfwidth";
96
173
  }
97
- if (x >= 32 && x <= 126 || x === 162 || x === 163 || x === 165 || x === 166 || x === 172 || x === 175 || x >= 10214 && x <= 10221 || x === 10629 || x === 10630) {
174
+ if (isNarrow(codePoint)) {
98
175
  return "narrow";
99
176
  }
100
- if (isWide(x)) return "wide";
177
+ if (isWide(codePoint)) {
178
+ return "wide";
179
+ }
101
180
  return "neutral";
102
181
  }
103
182
  function validate(codePoint) {
@@ -1092,6 +1171,30 @@ const createIfNotDefault = (maybeColumns, maybeRows) => {
1092
1171
  }
1093
1172
  return { columns, rows };
1094
1173
  };
1174
+ const isForegroundProcess = () => {
1175
+ if (process.platform !== "linux") {
1176
+ return true;
1177
+ }
1178
+ try {
1179
+ const statContents = fs.readFileSync("/proc/self/stat", "utf8");
1180
+ const closingParenthesisIndex = statContents.lastIndexOf(") ");
1181
+ if (closingParenthesisIndex === -1) {
1182
+ return false;
1183
+ }
1184
+ const statFields = statContents.slice(closingParenthesisIndex + 2).trim().split(/\s+/);
1185
+ const processGroupId = Number.parseInt(statFields[2], 10);
1186
+ const foregroundProcessGroupId = Number.parseInt(statFields[5], 10);
1187
+ if (Number.isNaN(processGroupId) || Number.isNaN(foregroundProcessGroupId)) {
1188
+ return false;
1189
+ }
1190
+ if (foregroundProcessGroupId <= 0) {
1191
+ return false;
1192
+ }
1193
+ return processGroupId === foregroundProcessGroupId;
1194
+ } catch {
1195
+ return false;
1196
+ }
1197
+ };
1095
1198
  function terminalSize() {
1096
1199
  const { env, stdout, stderr } = process;
1097
1200
  if (stdout?.columns && stdout?.rows) {
@@ -1135,6 +1238,9 @@ const tput = () => {
1135
1238
  };
1136
1239
  const resize = () => {
1137
1240
  try {
1241
+ if (!isForegroundProcess()) {
1242
+ return;
1243
+ }
1138
1244
  const size = exec("resize", ["-u"]).match(/\d+/g);
1139
1245
  if (size.length === 2) {
1140
1246
  return createIfNotDefault(size[0], size[1]);