mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-04 08:57:49 +00:00
Compare commits
1800 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afcd5bc1e8 | ||
|
|
6a2cc1dfcf | ||
|
|
a67a085cc0 | ||
|
|
c7c70a7da5 | ||
|
|
aa18212085 | ||
|
|
a79c5c434c | ||
|
|
bd518dd906 | ||
|
|
49683ffd5d | ||
|
|
5308be3ba6 | ||
|
|
b5c59317ea | ||
|
|
0b28b7f7b6 | ||
|
|
97d4a2fe19 | ||
|
|
2da024c3b4 | ||
|
|
540148d2c0 | ||
|
|
2f79053d7b | ||
|
|
5aaf898a8f | ||
|
|
bcd0610069 | ||
|
|
2f900b62fe | ||
|
|
e0029485ab | ||
|
|
86a852fe76 | ||
|
|
74b09d6272 | ||
|
|
08110bdcf3 | ||
|
|
0541ec89cc | ||
|
|
588bf3e20d | ||
|
|
3f585df05c | ||
|
|
04ebca6c86 | ||
|
|
cefddab1ca | ||
|
|
a6b960be00 | ||
|
|
657f8bf71e | ||
|
|
619ac69746 | ||
|
|
23b2a33e75 | ||
|
|
23286d6428 | ||
|
|
898b378f06 | ||
|
|
29eb5713f5 | ||
|
|
5df1777477 | ||
|
|
ad38dc0115 | ||
|
|
0e9d44eedb | ||
|
|
e51a424513 | ||
|
|
abb54cc49a | ||
|
|
3ebb38d389 | ||
|
|
ed4b3a2ddb | ||
|
|
91c9cb1ea3 | ||
|
|
9971765d0c | ||
|
|
e5f840745b | ||
|
|
1011cfdf4c | ||
|
|
2cf08be625 | ||
|
|
8b441a506b | ||
|
|
f90d0aec23 | ||
|
|
e2555a43ad | ||
|
|
15e1557b2a | ||
|
|
5b4dc54465 | ||
|
|
37cd5dc97a | ||
|
|
a965836cf3 | ||
|
|
ff4949b8c2 | ||
|
|
4f68e93a43 | ||
|
|
142cee066d | ||
|
|
e2ae5b857c | ||
|
|
f8c7064d45 | ||
|
|
becd982749 | ||
|
|
dce7fccbb6 | ||
|
|
8bc17fe659 | ||
|
|
4df32723c2 | ||
|
|
abde9319fd | ||
|
|
488e62bd79 | ||
|
|
8fdf0ed9fa | ||
|
|
6b1d83c968 | ||
|
|
c68170b336 | ||
|
|
750067f42d | ||
|
|
c541e4ccdc | ||
|
|
e7221b96ec | ||
|
|
d5ef31929a | ||
|
|
7606ea3e25 | ||
|
|
fe7da41956 | ||
|
|
3ae8f23bff | ||
|
|
6248f8a658 | ||
|
|
f4ca396a79 | ||
|
|
afab656cfe | ||
|
|
a7e0428889 | ||
|
|
238e763aa1 | ||
|
|
aa1d7d870d | ||
|
|
c77650a17b | ||
|
|
6cb1f71adf | ||
|
|
4c55ea7068 | ||
|
|
7f2ee90c9f | ||
|
|
2130eacf41 | ||
|
|
daf1f1b10b | ||
|
|
c33df3147f | ||
|
|
151e316263 | ||
|
|
8eccdd098a | ||
|
|
508d46a7a4 | ||
|
|
3b199c30e0 | ||
|
|
377e2d87c8 | ||
|
|
c3740e0847 | ||
|
|
78854835aa | ||
|
|
4cae8fb22f | ||
|
|
3b96b91991 | ||
|
|
136d5253e7 | ||
|
|
580cd4cd1b | ||
|
|
f822dd8d70 | ||
|
|
1e939919c0 | ||
|
|
c4075c18cb | ||
|
|
d9c5082727 | ||
|
|
6bdb8a2f75 | ||
|
|
715aae679d | ||
|
|
6018350ac1 | ||
|
|
4851183757 | ||
|
|
ab960bdc96 | ||
|
|
4ea8c2ec24 | ||
|
|
4ba0f8b612 | ||
|
|
51c562256b | ||
|
|
b8dfb7cc14 | ||
|
|
92a6575137 | ||
|
|
aff1928482 | ||
|
|
0d361bc7b6 | ||
|
|
1859802d05 | ||
|
|
50860fded2 | ||
|
|
79dc90dfcb | ||
|
|
04a66a01e2 | ||
|
|
fe14140c69 | ||
|
|
a9d3ca8737 | ||
|
|
224a256f69 | ||
|
|
da0fad328a | ||
|
|
363fef0efc | ||
|
|
6e4cdc0c5e | ||
|
|
f73b35bb49 | ||
|
|
c1f805f497 | ||
|
|
678eb000b7 | ||
|
|
7f24cab7dd | ||
|
|
54f05aa5cb | ||
|
|
47a6d538f5 | ||
|
|
803c05dc68 | ||
|
|
77c128fc20 | ||
|
|
75690245aa | ||
|
|
e9562a6ce3 | ||
|
|
d985dbffb8 | ||
|
|
fa73d46885 | ||
|
|
b2ea6b1cd2 | ||
|
|
3a330e0cb7 | ||
|
|
462bc9bf3b | ||
|
|
40e096b6d5 | ||
|
|
8464b184b7 | ||
|
|
c3b3c71b0a | ||
|
|
76c2e0accb | ||
|
|
b36f21cbaf | ||
|
|
e23c874272 | ||
|
|
424d9fc34e | ||
|
|
30d305da0f | ||
|
|
7c006f7445 | ||
|
|
102d9e34d7 | ||
|
|
e8c87cfc45 | ||
|
|
bcd2c35604 | ||
|
|
413a38cdf2 | ||
|
|
bf5d0867a6 | ||
|
|
00705afc19 | ||
|
|
270ca7166a | ||
|
|
3ab99065ad | ||
|
|
1b1bb79b05 | ||
|
|
6ad829fa90 | ||
|
|
f5ea579db3 | ||
|
|
8e631dfcd4 | ||
|
|
03e23ecc19 | ||
|
|
a0a3a6af91 | ||
|
|
c2616dd4f3 | ||
|
|
76c1ed2fd4 | ||
|
|
527b167bc5 | ||
|
|
bcd13b270d | ||
|
|
536f09b68c | ||
|
|
01148a1df8 | ||
|
|
534296bba4 | ||
|
|
e908519fc3 | ||
|
|
61acdd0c29 | ||
|
|
bacaaaef8a | ||
|
|
b107653a0f | ||
|
|
8620733457 | ||
|
|
0274d3dd2d | ||
|
|
f659da740d | ||
|
|
0b31164008 | ||
|
|
f6827f482d | ||
|
|
5dce119b9f | ||
|
|
67a3fb99ef | ||
|
|
f03b3edca4 | ||
|
|
a6019d5316 | ||
|
|
ae4e45d8f9 | ||
|
|
08a3f533b7 | ||
|
|
65b148a3b2 | ||
|
|
4092747dde | ||
|
|
bb059c0f64 | ||
|
|
e5e8f35c06 | ||
|
|
a023f92049 | ||
|
|
58e484f389 | ||
|
|
aa5e1b2fe0 | ||
|
|
e2941dda3b | ||
|
|
64a9975488 | ||
|
|
8b74809f1c | ||
|
|
0bdc73195f | ||
|
|
73ce6066f8 | ||
|
|
8a51574acf | ||
|
|
e02db41f99 | ||
|
|
b79b715383 | ||
|
|
aafd66da62 | ||
|
|
f888dfe4f8 | ||
|
|
b89854766a | ||
|
|
23ae2c537d | ||
|
|
d10b44bdef | ||
|
|
303502efa7 | ||
|
|
3390d9309b | ||
|
|
99fb4c8ff7 | ||
|
|
b506174410 | ||
|
|
2538a56577 | ||
|
|
bbd59f800b | ||
|
|
7c92111067 | ||
|
|
96ebd44509 | ||
|
|
645acd4275 | ||
|
|
402ca89c50 | ||
|
|
3e2b0bb763 | ||
|
|
f3957ac416 | ||
|
|
571e752a42 | ||
|
|
ca2fd5c64a | ||
|
|
53cac4eef4 | ||
|
|
6dc03831d8 | ||
|
|
6543d3277e | ||
|
|
1bdda20e49 | ||
|
|
b679e9cc22 | ||
|
|
43a520c971 | ||
|
|
64d92ddf32 | ||
|
|
dad1fccdb4 | ||
|
|
6d19563a9f | ||
|
|
8be26ac755 | ||
|
|
d7bdf0ae25 | ||
|
|
4b80666a30 | ||
|
|
ecb3c108d1 | ||
|
|
8db488b943 | ||
|
|
a8abced07a | ||
|
|
f7a6cddc9e | ||
|
|
f3e0cbe5bf | ||
|
|
0acb2847bf | ||
|
|
3c324a716d | ||
|
|
76ab9cd539 | ||
|
|
929a996987 | ||
|
|
164bc71328 | ||
|
|
9d11b48ce5 | ||
|
|
b8a3a42278 | ||
|
|
351e44a127 | ||
|
|
f983ff2b7c | ||
|
|
bb7c959479 | ||
|
|
2f281c68b0 | ||
|
|
c89637e4db | ||
|
|
ad3236a859 | ||
|
|
98969648e9 | ||
|
|
3e03cbf2b8 | ||
|
|
3b302b822c | ||
|
|
fa8c607742 | ||
|
|
4c77d8807c | ||
|
|
357ce4663f | ||
|
|
b247502116 | ||
|
|
5f2a03076d | ||
|
|
9260bd2f57 | ||
|
|
41a8d2272e | ||
|
|
7ffe700d66 | ||
|
|
49ac4a5b52 | ||
|
|
59e45d99f2 | ||
|
|
bda6d56c60 | ||
|
|
89829331f0 | ||
|
|
3c2795b816 | ||
|
|
17f7069d07 | ||
|
|
ba52c744ae | ||
|
|
e7bbcfa72b | ||
|
|
a2fe303463 | ||
|
|
e2096c0ef1 | ||
|
|
d0f23b67ac | ||
|
|
46ffbc1d90 | ||
|
|
d8b5183b1d | ||
|
|
4c4b29cdef | ||
|
|
b6a426a10d | ||
|
|
d1d86811bc | ||
|
|
2fd70c8eca | ||
|
|
3e80dffd48 | ||
|
|
7cc1328bf1 | ||
|
|
ffcb38f74d | ||
|
|
37f168d466 | ||
|
|
b9c61eea60 | ||
|
|
1e8ac50ab5 | ||
|
|
56b7d339a6 | ||
|
|
0350d4904f | ||
|
|
5baad4df10 | ||
|
|
aaef6f6737 | ||
|
|
2a3296111d | ||
|
|
3a375c0ae1 | ||
|
|
31500cd6e4 | ||
|
|
b4e815c04b | ||
|
|
27644a7bd5 | ||
|
|
e52ed26c7a | ||
|
|
0369bf7afe | ||
|
|
16413cc32a | ||
|
|
753e47de13 | ||
|
|
b87bd5250b | ||
|
|
a61f41a79a | ||
|
|
53dba0a211 | ||
|
|
86e8437514 | ||
|
|
2d83592273 | ||
|
|
2baf7a3e9e | ||
|
|
677c01b753 | ||
|
|
43bcecf52f | ||
|
|
e31e1306c8 | ||
|
|
135cb0ad88 | ||
|
|
3411cce1d2 | ||
|
|
4f3ef2e8d8 | ||
|
|
a822979881 | ||
|
|
8429c1db36 | ||
|
|
d007878935 | ||
|
|
b3810c2afa | ||
|
|
d931d6e8e8 | ||
|
|
d460c42230 | ||
|
|
39931f9eaa | ||
|
|
477fdb2cf2 | ||
|
|
f5b2031211 | ||
|
|
b37e973463 | ||
|
|
2ab6da5b51 | ||
|
|
5fe15a160d | ||
|
|
8f8b29368e | ||
|
|
5e38259044 | ||
|
|
30c32908a3 | ||
|
|
3b125166d5 | ||
|
|
fdd7a5b8d2 | ||
|
|
62a88ce256 | ||
|
|
04348ab176 | ||
|
|
47abf76e88 | ||
|
|
cb7612aef6 | ||
|
|
b0980a90fc | ||
|
|
7479d282bc | ||
|
|
23c0bc0e7a | ||
|
|
5219385eb2 | ||
|
|
6cb3460fce | ||
|
|
f3a8e55e70 | ||
|
|
9d445ec238 | ||
|
|
ac53cc7d69 | ||
|
|
c068eedcf3 | ||
|
|
a6ff1ea9d5 | ||
|
|
41133cf40f | ||
|
|
42b48b3d86 | ||
|
|
a0b928dfbb | ||
|
|
3c5b828d7e | ||
|
|
bac4291086 | ||
|
|
868fd1253b | ||
|
|
c5c0ff77b6 | ||
|
|
54abb96a85 | ||
|
|
c5dac98e1d | ||
|
|
999022d647 | ||
|
|
85255da560 | ||
|
|
c8285a41bc | ||
|
|
ee1c64fafe | ||
|
|
73df84c0b4 | ||
|
|
be6a50b0ed | ||
|
|
401016d260 | ||
|
|
b856263af6 | ||
|
|
085dc1aa01 | ||
|
|
563059c4b9 | ||
|
|
168322fda5 | ||
|
|
f5e7671fbc | ||
|
|
d80077ed94 | ||
|
|
3b4cbc70e7 | ||
|
|
36927bff8b | ||
|
|
dcded33f58 | ||
|
|
fe5c7a7f3b | ||
|
|
aa60e55db4 | ||
|
|
7baf2267a0 | ||
|
|
c6854fa8fc | ||
|
|
454219fbfe | ||
|
|
379b7a057c | ||
|
|
34ca4f3efa | ||
|
|
11052f4d87 | ||
|
|
401c0f053c | ||
|
|
6c54ae2ae5 | ||
|
|
70379910f7 | ||
|
|
41e6991d2e | ||
|
|
3b990b7916 | ||
|
|
dc4671dd0d | ||
|
|
b2504adb30 | ||
|
|
e45db2e507 | ||
|
|
e52c421c1d | ||
|
|
0aa7a62dc3 | ||
|
|
b6bdb23ffd | ||
|
|
003c11c36b | ||
|
|
c5d4bb8dcb | ||
|
|
fc1a360212 | ||
|
|
4ecd69e4fa | ||
|
|
b2f69ea36a | ||
|
|
71f49dda0f | ||
|
|
c64a3bd3df | ||
|
|
0cd28f982d | ||
|
|
400b5c09d7 | ||
|
|
69cac05575 | ||
|
|
20befcdf84 | ||
|
|
ef2c4bf5e1 | ||
|
|
8c97051909 | ||
|
|
c500b2cc16 | ||
|
|
26ea38dcf4 | ||
|
|
2b05673125 | ||
|
|
8bc7e006db | ||
|
|
8501b0c2ef | ||
|
|
6d28724e48 | ||
|
|
71039740c3 | ||
|
|
6434747ef6 | ||
|
|
68190b8546 | ||
|
|
395a81058b | ||
|
|
82e681a191 | ||
|
|
1392d37ca2 | ||
|
|
627bfe6bfa | ||
|
|
f2c49500ee | ||
|
|
bc4262f901 | ||
|
|
44950212a0 | ||
|
|
9e467f872e | ||
|
|
db4bbc9b47 | ||
|
|
77cc37ba49 | ||
|
|
65654f8f9e | ||
|
|
efcf51c7bf | ||
|
|
59124c4cfe | ||
|
|
aacfefc752 | ||
|
|
648722f1a6 | ||
|
|
c2208f82dc | ||
|
|
40e9c66ca6 | ||
|
|
dc687c1d85 | ||
|
|
e6152a97e8 | ||
|
|
4d0c15b49e | ||
|
|
ca9e6fa087 | ||
|
|
10f64ee9c4 | ||
|
|
4c881b2726 | ||
|
|
41ad5e901f | ||
|
|
bf54267f0b | ||
|
|
f4a6e9ede9 | ||
|
|
7167d7e09f | ||
|
|
d461c87979 | ||
|
|
0e24641cb8 | ||
|
|
1a1e462f80 | ||
|
|
2900cfd288 | ||
|
|
912d6b04a1 | ||
|
|
165572022d | ||
|
|
ae467c7313 | ||
|
|
1e80c19b0f | ||
|
|
6eeafd3dc2 | ||
|
|
e33b15674d | ||
|
|
a23b918bef | ||
|
|
ef618992b5 | ||
|
|
708b962860 | ||
|
|
da2d08d771 | ||
|
|
30863e5fa6 | ||
|
|
6672a4f942 | ||
|
|
f7263047bf | ||
|
|
02fdf4e673 | ||
|
|
e2c703a96f | ||
|
|
32fdfcc1e5 | ||
|
|
6c1ae0b54d | ||
|
|
0c1c87b046 | ||
|
|
b51786e72e | ||
|
|
5ee5099af1 | ||
|
|
482dc9478b | ||
|
|
528b6a98a9 | ||
|
|
a8bcb5f3d5 | ||
|
|
d429f90ec5 | ||
|
|
72f559e1a3 | ||
|
|
2f92d55024 | ||
|
|
5a86b67263 | ||
|
|
bea4b29bc4 | ||
|
|
0cd4134bc6 | ||
|
|
ec74813be6 | ||
|
|
67926a4df2 | ||
|
|
40a591d0c0 | ||
|
|
783e03ffa3 | ||
|
|
1dddf27a39 | ||
|
|
2890eabf66 | ||
|
|
a3e077324a | ||
|
|
86ee93650d | ||
|
|
dd0d984d37 | ||
|
|
eba18891e5 | ||
|
|
5cb80a0a84 | ||
|
|
db14f324f6 | ||
|
|
238defb150 | ||
|
|
53ba1e0c3c | ||
|
|
95d3477c22 | ||
|
|
a06d1a0313 | ||
|
|
330c8cb46e | ||
|
|
da2e8a1030 | ||
|
|
5bc9e6b8bd | ||
|
|
9a02bd5fc7 | ||
|
|
89656fdf4a | ||
|
|
4cb7bea97d | ||
|
|
eb4861c3cd | ||
|
|
170c13b5ba | ||
|
|
26a6117889 | ||
|
|
014982cb2c | ||
|
|
058361e222 | ||
|
|
e344b66af9 | ||
|
|
54cb3599e3 | ||
|
|
6c427b7a26 | ||
|
|
ce093845e1 | ||
|
|
102c5f00d7 | ||
|
|
13d315a93b | ||
|
|
2cc247ddf8 | ||
|
|
5488644658 | ||
|
|
1fe9042953 | ||
|
|
8bde34dda0 | ||
|
|
98720bea4a | ||
|
|
032637bba1 | ||
|
|
dadde87cab | ||
|
|
fcd0bbfc56 | ||
|
|
600fbbadfb | ||
|
|
3d0df11e50 | ||
|
|
2e4c997dba | ||
|
|
5aaf7e40ae | ||
|
|
57703b040d | ||
|
|
c6ff776147 | ||
|
|
9ac729e1bc | ||
|
|
6d951ccc87 | ||
|
|
3217118fab | ||
|
|
6ef973ae33 | ||
|
|
e0a65ac34a | ||
|
|
b833d83a3e | ||
|
|
220713109c | ||
|
|
cafb9822ce | ||
|
|
1b3815928d | ||
|
|
fbb67f9dbe | ||
|
|
8d24f393ac | ||
|
|
7759376b91 | ||
|
|
ccc3081be0 | ||
|
|
62b66305f2 | ||
|
|
65daae2043 | ||
|
|
0fcf43b02b | ||
|
|
46d1f53ee9 | ||
|
|
fc22665dd8 | ||
|
|
7862e5ce2d | ||
|
|
7cbffd5ebf | ||
|
|
5028267c72 | ||
|
|
6f03ef955c | ||
|
|
f75bf13ad1 | ||
|
|
d7dbf0951d | ||
|
|
daf6de6a46 | ||
|
|
7d4c3ed404 | ||
|
|
a9fd17950a | ||
|
|
b91a515258 | ||
|
|
bc5729a9de | ||
|
|
729d1a57aa | ||
|
|
73e2562cd1 | ||
|
|
849423c9d8 | ||
|
|
1c9a9f364d | ||
|
|
e485e16d28 | ||
|
|
bc49e7fe18 | ||
|
|
6a9337434f | ||
|
|
0c89b9aeb5 | ||
|
|
6f7a8501cb | ||
|
|
7a03898ffe | ||
|
|
609ae34b4e | ||
|
|
2d21faf68a | ||
|
|
26ee0c5c2a | ||
|
|
cafb5e1331 | ||
|
|
7717b8aa64 | ||
|
|
c82322c490 | ||
|
|
4af0c066ec | ||
|
|
d2b10de40b | ||
|
|
26bfb74a60 | ||
|
|
ef129e4c8c | ||
|
|
0b04309ea5 | ||
|
|
fb4852f6db | ||
|
|
5046943020 | ||
|
|
14d7f89f75 | ||
|
|
d431e97030 | ||
|
|
8f06ea259a | ||
|
|
0a0fa58e2d | ||
|
|
286f1abb87 | ||
|
|
a621ba236a | ||
|
|
a041a3782d | ||
|
|
9f8064a8b5 | ||
|
|
729f424622 | ||
|
|
6a8e978fd7 | ||
|
|
aea509c230 | ||
|
|
21113b8c87 | ||
|
|
dcf6d382c4 | ||
|
|
c541598f40 | ||
|
|
bd8e38518f | ||
|
|
067036a359 | ||
|
|
22b51ed232 | ||
|
|
054e78572b | ||
|
|
31cb06a643 | ||
|
|
ee4a5a2604 | ||
|
|
05b60871c5 | ||
|
|
03a194fcb9 | ||
|
|
52e96c38dc | ||
|
|
f5dd98cac4 | ||
|
|
b890d40b54 | ||
|
|
457a0dc703 | ||
|
|
e4837cd75d | ||
|
|
67b2c6f900 | ||
|
|
260a84c4d8 | ||
|
|
4b0db6ec6c | ||
|
|
9c4c194bb5 | ||
|
|
ac74a1ea15 | ||
|
|
e4ddf3e155 | ||
|
|
896b27ef73 | ||
|
|
bdf0b9f288 | ||
|
|
1665e5cbff | ||
|
|
6e8c0de1ff | ||
|
|
4fb41ac6a9 | ||
|
|
af983b2dd3 | ||
|
|
405d5875b8 | ||
|
|
b30f979ec7 | ||
|
|
836bd258a0 | ||
|
|
d2f74ee245 | ||
|
|
45f668b416 | ||
|
|
d29d74f687 | ||
|
|
9fba7be296 | ||
|
|
f30851bac1 | ||
|
|
d308bce09f | ||
|
|
3d7dbd140c | ||
|
|
15bd64a1b4 | ||
|
|
3c30100837 | ||
|
|
81bdb9da43 | ||
|
|
60e3a93a30 | ||
|
|
158f2839fd | ||
|
|
c7b9df4286 | ||
|
|
0eca941e22 | ||
|
|
8592f4163f | ||
|
|
29e2598a39 | ||
|
|
32e75acb9f | ||
|
|
b54501a771 | ||
|
|
6062860628 | ||
|
|
a12c3797fb | ||
|
|
48bc8b4f1a | ||
|
|
e861681963 | ||
|
|
9985e81808 | ||
|
|
ffde99b216 | ||
|
|
492caa4fd2 | ||
|
|
01c0950ae8 | ||
|
|
20fa52309c | ||
|
|
7a345b5606 | ||
|
|
b6d8116882 | ||
|
|
4495e74f77 | ||
|
|
c009349d99 | ||
|
|
26d5ba992c | ||
|
|
320ef6f933 | ||
|
|
b678bb4a74 | ||
|
|
c1c394ac60 | ||
|
|
70d3057e17 | ||
|
|
3d27920226 | ||
|
|
33a43a5f93 | ||
|
|
fac9501840 | ||
|
|
4d6aade733 | ||
|
|
d9e2c1cc34 | ||
|
|
c8c6a7e7b1 | ||
|
|
69addb855e | ||
|
|
55fb0172c0 | ||
|
|
2026cbeebd | ||
|
|
d6d01cdfa0 | ||
|
|
cb07604dc6 | ||
|
|
549def0e48 | ||
|
|
a3c215919d | ||
|
|
ab904a1047 | ||
|
|
60381f4d6c | ||
|
|
8f607295ae | ||
|
|
27218a95af | ||
|
|
8e150ad6bc | ||
|
|
c8914a890c | ||
|
|
b25a86f352 | ||
|
|
ec8e279235 | ||
|
|
1cc16029db | ||
|
|
5c912bcc62 | ||
|
|
b3742c8d3c | ||
|
|
c3a7516712 | ||
|
|
12319d5775 | ||
|
|
45e1965936 | ||
|
|
6091c8ec49 | ||
|
|
cfb7dab0f3 | ||
|
|
2d9f3cde0f | ||
|
|
e5f4770247 | ||
|
|
dc7c321514 | ||
|
|
40164659b1 | ||
|
|
7829f3d224 | ||
|
|
92359257c1 | ||
|
|
d2a2b3a8c4 | ||
|
|
4019eb65f2 | ||
|
|
4c5bead5c6 | ||
|
|
0163aae357 | ||
|
|
8fa23a94a0 | ||
|
|
8176d56c72 | ||
|
|
5add168743 | ||
|
|
27e59404d3 | ||
|
|
54f5ac7b8d | ||
|
|
5c688cc0b7 | ||
|
|
86efb0ea09 | ||
|
|
bc13666222 | ||
|
|
d1abde7d1a | ||
|
|
691db4d406 | ||
|
|
fb833b0c19 | ||
|
|
4d2181ad83 | ||
|
|
9dd291a96e | ||
|
|
1344803e7e | ||
|
|
4a5f8fa974 | ||
|
|
212e4a6407 | ||
|
|
d47123779e | ||
|
|
fc734a6371 | ||
|
|
02be5b808e | ||
|
|
0d757fdc40 | ||
|
|
0263a879c4 | ||
|
|
c309ed1c49 | ||
|
|
e58de14437 | ||
|
|
78a7fa1d14 | ||
|
|
77178a9583 | ||
|
|
d2ab33eb52 | ||
|
|
7b3194660c | ||
|
|
f627b25e9d | ||
|
|
1bbb7c9d3b | ||
|
|
08a4ae1f56 | ||
|
|
7c398f8019 | ||
|
|
6651023f7f | ||
|
|
021df666a3 | ||
|
|
d7e60cb6d0 | ||
|
|
4cd26e6860 | ||
|
|
946a3bf5c8 | ||
|
|
b10e6a01b2 | ||
|
|
e23341a118 | ||
|
|
4446fb13a3 | ||
|
|
4dfbde7716 | ||
|
|
3c03d4a1f3 | ||
|
|
a0ecdfff0b | ||
|
|
60023a23df | ||
|
|
e96442631c | ||
|
|
94750bfa3c | ||
|
|
5cc02555d0 | ||
|
|
6e2f7e2f38 | ||
|
|
de92cc32e6 | ||
|
|
e97205409d | ||
|
|
091d8e3dbf | ||
|
|
171ca53c29 | ||
|
|
5be61796d9 | ||
|
|
1aee1c6cb8 | ||
|
|
343f48b08c | ||
|
|
358ecfd2eb | ||
|
|
8066ad7e65 | ||
|
|
7ae0d0099d | ||
|
|
2e4fc41c9b | ||
|
|
71247ff556 | ||
|
|
5ef163f143 | ||
|
|
510cbfaa3f | ||
|
|
bd3fcab9c0 | ||
|
|
9841e6aa4c | ||
|
|
1bf125eebd | ||
|
|
f9936b8b54 | ||
|
|
d11aa6de06 | ||
|
|
1c4fccc0fd | ||
|
|
aa0323f04d | ||
|
|
2916e9dd11 | ||
|
|
6958d7abd4 | ||
|
|
9e661cb858 | ||
|
|
a972026c67 | ||
|
|
2b1bda7418 | ||
|
|
a6a3f3ed80 | ||
|
|
5cca51e978 | ||
|
|
7c971587dc | ||
|
|
40a13d4b86 | ||
|
|
a0971d016d | ||
|
|
410e9e3eb8 | ||
|
|
37813c3826 | ||
|
|
e00c243662 | ||
|
|
f504f5aac5 | ||
|
|
0b63f2c259 | ||
|
|
14fb27ce77 | ||
|
|
7da7d7b7e0 | ||
|
|
907add6acc | ||
|
|
f110e3ddcd | ||
|
|
ed206e5611 | ||
|
|
e4d8af175b | ||
|
|
ba7ddc8cdc | ||
|
|
389f5790a7 | ||
|
|
6071982dd9 | ||
|
|
f71c0bd4c3 | ||
|
|
50b45d013a | ||
|
|
93a047e77c | ||
|
|
a3bf0e8888 | ||
|
|
d8fa2f3e89 | ||
|
|
e361c5a5b3 | ||
|
|
3ef032cbaf | ||
|
|
36cf5a7ff3 | ||
|
|
6d930d6920 | ||
|
|
f676a8c9c1 | ||
|
|
941ffee2d3 | ||
|
|
0a71f3372f | ||
|
|
f817f68487 | ||
|
|
826975f392 | ||
|
|
5f244d3c31 | ||
|
|
71be34859f | ||
|
|
f9a4705c9c | ||
|
|
a546842792 | ||
|
|
ba86e20179 | ||
|
|
b32fc6f6e6 | ||
|
|
1f13a34687 | ||
|
|
f212b4850d | ||
|
|
1b4555afb6 | ||
|
|
358013c67e | ||
|
|
a98667ca05 | ||
|
|
02e9f4c333 | ||
|
|
d7951db01b | ||
|
|
21fba2df9f | ||
|
|
a4947139a6 | ||
|
|
c01e7580cd | ||
|
|
8b4f22ed75 | ||
|
|
669b76bf99 | ||
|
|
efee02ace7 | ||
|
|
cd8adf5611 | ||
|
|
d216106b88 | ||
|
|
6dd8fb12ad | ||
|
|
a4999575d0 | ||
|
|
fcaff8ff28 | ||
|
|
cf0b3e3212 | ||
|
|
bccb4150fd | ||
|
|
9a297b0eb5 | ||
|
|
9c4baf7645 | ||
|
|
73b2f20509 | ||
|
|
642690e692 | ||
|
|
1468c74c36 | ||
|
|
0bfa1ec2d0 | ||
|
|
7c74464d7a | ||
|
|
de051ac1ac | ||
|
|
ba0c4c413d | ||
|
|
7e6f5ef4f5 | ||
|
|
712eeb009f | ||
|
|
b54e28deb7 | ||
|
|
1f44cebac3 | ||
|
|
9c05e8392b | ||
|
|
9a67fec48a | ||
|
|
1966ac7979 | ||
|
|
8b624217c5 | ||
|
|
40499af9b9 | ||
|
|
b3bd359a0d | ||
|
|
de07e3f874 | ||
|
|
c7e8953b68 | ||
|
|
80e7fe4bf9 | ||
|
|
2bc199d7fc | ||
|
|
9b710d8e81 | ||
|
|
cc6a0ee98d | ||
|
|
c9492d79a1 | ||
|
|
94c4719c0d | ||
|
|
c253e8d7b8 | ||
|
|
98f12fb8e1 | ||
|
|
e05a40bb16 | ||
|
|
c73bb67486 | ||
|
|
3ad0cbc86d | ||
|
|
6402af7db9 | ||
|
|
6a41a79ded | ||
|
|
fbd9a804a9 | ||
|
|
694e1175a1 | ||
|
|
80dbd4cbfa | ||
|
|
d459f4ac7c | ||
|
|
2c5c4bfbea | ||
|
|
a1a68bb5d7 | ||
|
|
984a10c1b1 | ||
|
|
3c4c06cb5e | ||
|
|
8d28a5ca3f | ||
|
|
801c4a56c3 | ||
|
|
ea000e6ce7 | ||
|
|
6723cdfa07 | ||
|
|
2cf10711f5 | ||
|
|
bde171e947 | ||
|
|
2696615523 | ||
|
|
f98028d1d8 | ||
|
|
97475fc365 | ||
|
|
ea7aa52ea3 | ||
|
|
ec4ae5978b | ||
|
|
90d73143e1 | ||
|
|
249f0cd72c | ||
|
|
232cc1ab34 | ||
|
|
2cea31cb1b | ||
|
|
02c4d60861 | ||
|
|
8c9073308a | ||
|
|
8cb5455671 | ||
|
|
8bc44e3bff | ||
|
|
73f84baaec | ||
|
|
d3acace1c4 | ||
|
|
7f3539d001 | ||
|
|
3ef19f1ab1 | ||
|
|
749b2db846 | ||
|
|
a3e99b5d89 | ||
|
|
dbbb3fbb55 | ||
|
|
6eeac45d23 | ||
|
|
5669cc0a0b | ||
|
|
d986901a1c | ||
|
|
5394bbf06a | ||
|
|
d7b2f922b5 | ||
|
|
9ab55443eb | ||
|
|
67c7a43e6f | ||
|
|
26a4bfb838 | ||
|
|
e7a16b2e64 | ||
|
|
a5612ed668 | ||
|
|
f55d15692b | ||
|
|
107994859b | ||
|
|
a8d3689061 | ||
|
|
4fb4ec5328 | ||
|
|
9bc8519656 | ||
|
|
af36d2d8e5 | ||
|
|
6b0069f10f | ||
|
|
a64b629333 | ||
|
|
fc4cc977ed | ||
|
|
7483520c8c | ||
|
|
5d18fb8c70 | ||
|
|
1163bfac5c | ||
|
|
d643bbd7e4 | ||
|
|
32158935f8 | ||
|
|
50bf1ea784 | ||
|
|
fa29123c5e | ||
|
|
314c652818 | ||
|
|
a3dd60370e | ||
|
|
3d82567118 | ||
|
|
eaac5e02c0 | ||
|
|
3bd5703bdb | ||
|
|
bf80a75474 | ||
|
|
bea7016223 | ||
|
|
c8ff2b4612 | ||
|
|
6c673cd19b | ||
|
|
c1ae43e041 | ||
|
|
9605072200 | ||
|
|
9cabc7c222 | ||
|
|
b2b3391827 | ||
|
|
19e94b8889 | ||
|
|
4bee8c9ead | ||
|
|
3f1ae77306 | ||
|
|
9f6d6d7b37 | ||
|
|
adac412f58 | ||
|
|
31ca38515a | ||
|
|
4a35929979 | ||
|
|
4a0610f107 | ||
|
|
9a1b3d813a | ||
|
|
a7a4862491 | ||
|
|
5783536837 | ||
|
|
f8646d1a5d | ||
|
|
39bb7064e7 | ||
|
|
388bf6934d | ||
|
|
5122e9271c | ||
|
|
32b36435f8 | ||
|
|
807ad48bbc | ||
|
|
b5842314b4 | ||
|
|
efb4db2b86 | ||
|
|
ecbf8cd722 | ||
|
|
9992144130 | ||
|
|
1f9cba6f53 | ||
|
|
2465a6bdbd | ||
|
|
1a7199fd6b | ||
|
|
57f0a4c6d7 | ||
|
|
138cf77916 | ||
|
|
43d1ca89c2 | ||
|
|
51e619b18f | ||
|
|
21df7426e2 | ||
|
|
2f6b2ca0c7 | ||
|
|
cf1b9f9595 | ||
|
|
b0ec8339fa | ||
|
|
762748684e | ||
|
|
bdfd5880e9 | ||
|
|
9e55e5bcea | ||
|
|
887576e4a5 | ||
|
|
ccd1d6ab29 | ||
|
|
fcbb63ad60 | ||
|
|
1607e7914c | ||
|
|
68e98397ab | ||
|
|
3983d4f473 | ||
|
|
9eda959489 | ||
|
|
4880f9923c | ||
|
|
87e8a4290e | ||
|
|
fd96d59963 | ||
|
|
1a1771f0b5 | ||
|
|
22ed53260f | ||
|
|
77cf88a3bf | ||
|
|
695d74d7c5 | ||
|
|
a164735369 | ||
|
|
6ccea636b1 | ||
|
|
0ccaf76661 | ||
|
|
593f6f9f86 | ||
|
|
fbdda6df03 | ||
|
|
a7dcce3e8d | ||
|
|
ee5718003b | ||
|
|
a43065ec08 | ||
|
|
1740ee91da | ||
|
|
90f95306f9 | ||
|
|
0964f9175e | ||
|
|
dbde3f8826 | ||
|
|
33e08baf3f | ||
|
|
6e67ebab05 | ||
|
|
5fbc5303ff | ||
|
|
e582ad226a | ||
|
|
dfb71a3a50 | ||
|
|
5355f4f25e | ||
|
|
98c422d227 | ||
|
|
e18b577d20 | ||
|
|
7226df593e | ||
|
|
8a376f647e | ||
|
|
050087f6c4 | ||
|
|
c67e347255 | ||
|
|
3fdac985c7 | ||
|
|
02ff3e6258 | ||
|
|
65ce1b0bb5 | ||
|
|
7e8528104b | ||
|
|
40ac55acb6 | ||
|
|
42c639d252 | ||
|
|
d110b64ee4 | ||
|
|
a2617d810c | ||
|
|
90d07bc04c | ||
|
|
013d9db86f | ||
|
|
9d4d725bc7 | ||
|
|
9881cc9e10 | ||
|
|
01474fed0b | ||
|
|
024e6d8ae8 | ||
|
|
607ba653f7 | ||
|
|
9090c1904f | ||
|
|
158b762367 | ||
|
|
e8b3b2dc31 | ||
|
|
5d72eec742 | ||
|
|
6fe020c920 | ||
|
|
40c5a6af49 | ||
|
|
803dce242b | ||
|
|
4ed722ccd8 | ||
|
|
f35d479d5e | ||
|
|
f3af61de97 | ||
|
|
077fb89083 | ||
|
|
d4d4390846 | ||
|
|
33e54546fe | ||
|
|
bf008e0680 | ||
|
|
08694bd709 | ||
|
|
91242440fc | ||
|
|
68ae6fc212 | ||
|
|
14a16c2a7a | ||
|
|
9cbb50d3a6 | ||
|
|
47635b9978 | ||
|
|
f90c3f2483 | ||
|
|
5a67ecc142 | ||
|
|
a542f8ab54 | ||
|
|
f32349db7d | ||
|
|
32f5db3f72 | ||
|
|
670e3983b4 | ||
|
|
e1cc4d8552 | ||
|
|
8422bb37b0 | ||
|
|
ebf9b64062 | ||
|
|
56b397b506 | ||
|
|
de6cc79ac8 | ||
|
|
d28395fdb9 | ||
|
|
84b8ee7bda | ||
|
|
b56c732332 | ||
|
|
041c1b4586 | ||
|
|
0edc480d17 | ||
|
|
1a3bcb4ebd | ||
|
|
7d8c2a84b7 | ||
|
|
4faac431c4 | ||
|
|
df9ded3282 | ||
|
|
1fe8d1679e | ||
|
|
708505f2b1 | ||
|
|
b2da5ee1a7 | ||
|
|
315e751f43 | ||
|
|
dc5544223f | ||
|
|
c14728d31a | ||
|
|
7d4b154866 | ||
|
|
b69647a0c3 | ||
|
|
d054442e2c | ||
|
|
e50bf1fb44 | ||
|
|
d40b6a75da | ||
|
|
e124e7fb5f | ||
|
|
7c3a163f9c | ||
|
|
03af0791aa | ||
|
|
464885a539 | ||
|
|
346579ac7a | ||
|
|
76ed206e9b | ||
|
|
06e7c963ef | ||
|
|
573d902026 | ||
|
|
66cdfe5896 | ||
|
|
9afd4659c7 | ||
|
|
7249217600 | ||
|
|
2f20c672e0 | ||
|
|
6d02a64c47 | ||
|
|
3d078383cb | ||
|
|
64e765bf7a | ||
|
|
b5b6125730 | ||
|
|
e45984f6b8 | ||
|
|
a95cf1c26c | ||
|
|
4a19913726 | ||
|
|
52ae769bfa | ||
|
|
44d7c3887d | ||
|
|
315271996c | ||
|
|
2357704540 | ||
|
|
262049f737 | ||
|
|
04d6e351a6 | ||
|
|
9fa86ec712 | ||
|
|
901e3dcff2 | ||
|
|
43fffe3200 | ||
|
|
1123e13072 | ||
|
|
996636d25b | ||
|
|
8864095bab | ||
|
|
def9f5d84a | ||
|
|
47d024ae7b | ||
|
|
05135ca171 | ||
|
|
ca1f22a7c6 | ||
|
|
9a461a5e48 | ||
|
|
73e7bab839 | ||
|
|
572060aedc | ||
|
|
f1b63d41f8 | ||
|
|
9ee423edcf | ||
|
|
70c8651182 | ||
|
|
2b54f23dad | ||
|
|
67ef2bb008 | ||
|
|
f2b5e58500 | ||
|
|
b8fa0d9b29 | ||
|
|
264d68dec9 | ||
|
|
71f5264ee1 | ||
|
|
ce8a1feb94 | ||
|
|
05c32044e9 | ||
|
|
44927be6e2 | ||
|
|
d1779d6cdd | ||
|
|
a13d640bcc | ||
|
|
c7d4106f66 | ||
|
|
2e59faad8f | ||
|
|
6d70b64b2e | ||
|
|
767f9c6bce | ||
|
|
edd7c2f0b1 | ||
|
|
b9cfd31bd5 | ||
|
|
6883f99141 | ||
|
|
c2aee218d2 | ||
|
|
8e44d73705 | ||
|
|
9e30cc4542 | ||
|
|
963e2c23b0 | ||
|
|
7ee4bf8d02 | ||
|
|
c3c6bc9666 | ||
|
|
ef1024bb60 | ||
|
|
6c6e1c2be3 | ||
|
|
e9a08ba9a9 | ||
|
|
59546b9989 | ||
|
|
816edcce2e | ||
|
|
8accfb3372 | ||
|
|
da146a9afd | ||
|
|
cbcd5ffdc4 | ||
|
|
6f600ebeac | ||
|
|
9aa456f26f | ||
|
|
dc77d7605d | ||
|
|
f7c4410f41 | ||
|
|
9fa0ec00b8 | ||
|
|
0125ff7303 | ||
|
|
fbc91cf7ae | ||
|
|
43c26b5d6f | ||
|
|
4e38f70e0e | ||
|
|
e2c86dac63 | ||
|
|
aebc0650f8 | ||
|
|
44cf971405 | ||
|
|
c0d7418054 | ||
|
|
a0db54b53f | ||
|
|
32b813e42b | ||
|
|
3c144b8601 | ||
|
|
076e4e6db5 | ||
|
|
2ea08ccd36 | ||
|
|
fc48518f2b | ||
|
|
594c3b3406 | ||
|
|
38edd713e4 | ||
|
|
6987d70dc2 | ||
|
|
0e4b307585 | ||
|
|
c81bbe95c6 | ||
|
|
b21a87b50f | ||
|
|
e3566eb1ce | ||
|
|
0429434dbb | ||
|
|
80f35ee713 | ||
|
|
224595c837 | ||
|
|
61ace9a24b | ||
|
|
8c630ede7e | ||
|
|
ca3b583695 | ||
|
|
c2cbb06d57 | ||
|
|
f6bf8d2e6d | ||
|
|
60c89b2754 | ||
|
|
b72fba911d | ||
|
|
3930c388e4 | ||
|
|
ddf5ef0839 | ||
|
|
c66947405b | ||
|
|
ad27b62343 | ||
|
|
5283b0f407 | ||
|
|
af41f9267a | ||
|
|
6e8c984250 | ||
|
|
c2e018b2ac | ||
|
|
a47ce3cf13 | ||
|
|
ba58f35f37 | ||
|
|
30fd1693ee | ||
|
|
161c17ce7f | ||
|
|
27dfe542bd | ||
|
|
353113f17f | ||
|
|
762e858c48 | ||
|
|
db49702046 | ||
|
|
7239bf791f | ||
|
|
9cb75cae1d | ||
|
|
fdb4cf1208 | ||
|
|
714cf7b18c | ||
|
|
1a1e0e1a6b | ||
|
|
f6c14ec31f | ||
|
|
da7f413f6f | ||
|
|
3cf28953a7 | ||
|
|
080b761f7f | ||
|
|
7f6ad484ec | ||
|
|
391a930d49 | ||
|
|
a532773703 | ||
|
|
49f8aa4289 | ||
|
|
44b9b085c0 | ||
|
|
a447353977 | ||
|
|
dea6ccbf43 | ||
|
|
0c4d8836e7 | ||
|
|
ef67e07732 | ||
|
|
7e885a4ddd | ||
|
|
a3c1f42708 | ||
|
|
d3ef5a3acb | ||
|
|
5098d63a22 | ||
|
|
4275a73170 | ||
|
|
78a157d675 | ||
|
|
97a437e8e6 | ||
|
|
3c37f290a8 | ||
|
|
dcd5d470e0 | ||
|
|
b424f3b60f | ||
|
|
201ea9a9f0 | ||
|
|
2469af6c3f | ||
|
|
bfe6e06b5a | ||
|
|
091b5fbe30 | ||
|
|
93168e6018 | ||
|
|
16ed081818 | ||
|
|
c38b4b29cf | ||
|
|
a20b88d114 | ||
|
|
87912a3b3f | ||
|
|
53bde1238c | ||
|
|
fd365c27e2 | ||
|
|
4f43841699 | ||
|
|
e60e97c03f | ||
|
|
e619f8ca83 | ||
|
|
cf2f538167 | ||
|
|
17e1a6dbe8 | ||
|
|
74f6af8686 | ||
|
|
351236f526 | ||
|
|
51ad056710 | ||
|
|
6512b7f925 | ||
|
|
c7264e3f1f | ||
|
|
349ec35c48 | ||
|
|
057dd5b0a8 | ||
|
|
f6ac7cb1a1 | ||
|
|
c1958daf65 | ||
|
|
ee73c9b436 | ||
|
|
fac5e727e6 | ||
|
|
977264f55b | ||
|
|
e776e679af | ||
|
|
23901dfd45 | ||
|
|
87444e1a45 | ||
|
|
dc63bc2bd9 | ||
|
|
f4ff4f29b1 | ||
|
|
06412d5f12 | ||
|
|
bbc84903a7 | ||
|
|
e014592ea0 | ||
|
|
4305ffde18 | ||
|
|
0588dcb3e9 | ||
|
|
58afd8c364 | ||
|
|
e120d63ee2 | ||
|
|
d7f43eba6a | ||
|
|
786a92669e | ||
|
|
504aead673 | ||
|
|
8c72ffc583 | ||
|
|
27d3311b6a | ||
|
|
5e2f113d50 | ||
|
|
55e7b8764e | ||
|
|
513c0ae64d | ||
|
|
f0f6a1e382 | ||
|
|
6f3fb587e2 | ||
|
|
083c5b703a | ||
|
|
3583c56067 | ||
|
|
9999199d2b | ||
|
|
c084e358bd | ||
|
|
238d45a2cb | ||
|
|
21d056c470 | ||
|
|
0308d4de62 | ||
|
|
f2a6f6ce6a | ||
|
|
cf5d6b5bc8 | ||
|
|
7a6b64b2f6 | ||
|
|
bca11bd21e | ||
|
|
bf39a31907 | ||
|
|
792bfbb604 | ||
|
|
1ef96896d5 | ||
|
|
2293de07a7 | ||
|
|
804ad3d805 | ||
|
|
c797f83ca5 | ||
|
|
a71ac53fa7 | ||
|
|
7165ef6f5e | ||
|
|
c01e0cd7d1 | ||
|
|
a5990a4c4e | ||
|
|
75d196b01b | ||
|
|
69ce7cde7d | ||
|
|
6861734010 | ||
|
|
0f75d967d0 | ||
|
|
012bff97e0 | ||
|
|
2b58525816 | ||
|
|
579cf00d10 | ||
|
|
cfd25cec75 | ||
|
|
c267c4e06b | ||
|
|
c4a78445b3 | ||
|
|
4c8836a24a | ||
|
|
972624297b | ||
|
|
ebf9904e8a | ||
|
|
64652c263f | ||
|
|
58f93567fc | ||
|
|
f599c4817a | ||
|
|
930b034da5 | ||
|
|
c21174f7f9 | ||
|
|
e22be612e2 | ||
|
|
669bc1520e | ||
|
|
b257bb9c9e | ||
|
|
b8096df6d8 | ||
|
|
43d530ead9 | ||
|
|
9dbd665d05 | ||
|
|
3902fd1a67 | ||
|
|
642d248f99 | ||
|
|
8bd9a4d2c3 | ||
|
|
e96ee69f1c | ||
|
|
5bb899a700 | ||
|
|
431e0fa2f6 | ||
|
|
ec92292c38 | ||
|
|
45953b2ac1 | ||
|
|
d9f93d0895 | ||
|
|
252ea445ca | ||
|
|
9826d9bd46 | ||
|
|
b53f178c46 | ||
|
|
5ad5eb8f5d | ||
|
|
7add87739a | ||
|
|
2cd12c38e3 | ||
|
|
ad72b5b565 | ||
|
|
608e74a111 | ||
|
|
c36d0af5cd | ||
|
|
55c3299d5c | ||
|
|
7a3dda6105 | ||
|
|
171d9eab78 | ||
|
|
ab9d2056da | ||
|
|
4310329971 | ||
|
|
d038315f61 | ||
|
|
c0f91c9169 | ||
|
|
519a02ff34 | ||
|
|
643ce1da74 | ||
|
|
4c789197f9 | ||
|
|
277c9bdc7c | ||
|
|
455eace9c5 | ||
|
|
f263a87983 | ||
|
|
4f92fb7007 | ||
|
|
4fd43f7fe7 | ||
|
|
3fe2efa311 | ||
|
|
a7bf3352df | ||
|
|
2ddd893ca2 | ||
|
|
5d92b37550 | ||
|
|
dcec882262 | ||
|
|
de53132692 | ||
|
|
23a7871e2d | ||
|
|
792347978a | ||
|
|
61c740a4eb | ||
|
|
c3a614858b | ||
|
|
75727d073b | ||
|
|
b1d7450052 | ||
|
|
60e557b059 | ||
|
|
071e13363c | ||
|
|
acf4651c0e | ||
|
|
9b15dc2017 | ||
|
|
f4f0791e0c | ||
|
|
654976c826 | ||
|
|
50e86c70bd | ||
|
|
d135b846db | ||
|
|
ee2153364d | ||
|
|
6d76cdc1b7 | ||
|
|
259bdb6151 | ||
|
|
12438fa0d7 | ||
|
|
654df6f7f8 | ||
|
|
0dfe176fe6 | ||
|
|
0f3338013e | ||
|
|
dcc239b070 | ||
|
|
613488eaf8 | ||
|
|
97193b9680 | ||
|
|
71c0861675 | ||
|
|
f3b35919ef | ||
|
|
06316f1d47 | ||
|
|
271f64ee3f | ||
|
|
583b03ba5f | ||
|
|
16e2c06ab4 | ||
|
|
016de80ce7 | ||
|
|
577226bbd0 | ||
|
|
1670800df3 | ||
|
|
9674d67693 | ||
|
|
f65d36b3c1 | ||
|
|
8d93455076 | ||
|
|
cfe5ea264d | ||
|
|
9a4e11f6f7 | ||
|
|
24cef1a919 | ||
|
|
5fe373f7aa | ||
|
|
25eb4df563 | ||
|
|
6d587bdf34 | ||
|
|
03dd9df78e | ||
|
|
96c60bab46 | ||
|
|
811341efa1 | ||
|
|
5f94723d7f | ||
|
|
9d1536799b | ||
|
|
85057d588c | ||
|
|
234e693d92 | ||
|
|
51833b91d0 | ||
|
|
dfb7a4c078 | ||
|
|
04ddaf49f5 | ||
|
|
b7a6560d90 | ||
|
|
7d8531d6ed | ||
|
|
ab77d9d83a | ||
|
|
37454b8f42 | ||
|
|
ef95f165ff | ||
|
|
6494a072d2 | ||
|
|
984bcc556e | ||
|
|
be77e7366c | ||
|
|
01d961bad8 | ||
|
|
6eb0cb1565 | ||
|
|
b2bff1ad45 | ||
|
|
6ed9c005d7 | ||
|
|
6ef8693bf0 | ||
|
|
8c5025f935 | ||
|
|
9735961090 | ||
|
|
8d7058e6ad | ||
|
|
4d89d9a1b7 | ||
|
|
594f414b1a | ||
|
|
b61d30da1a | ||
|
|
412e19006b | ||
|
|
b8ebceadaf | ||
|
|
2b4f271899 | ||
|
|
c83857c42a | ||
|
|
b95d1d6123 | ||
|
|
7d1d7d909a | ||
|
|
c89a80357c | ||
|
|
1bbb24fa0c | ||
|
|
dd0aa991ff | ||
|
|
6f9b1b1822 | ||
|
|
65fd579ed2 | ||
|
|
f3279b7ee1 | ||
|
|
4d185ae7b5 | ||
|
|
81ee5d76b8 | ||
|
|
8bed7137c7 | ||
|
|
f8bcc5b917 | ||
|
|
81f8518d15 | ||
|
|
f88d27ccda | ||
|
|
40ed92d2af | ||
|
|
c7319d004d | ||
|
|
51a3c5d4e8 | ||
|
|
ecfa002a05 | ||
|
|
62962791b3 | ||
|
|
864e14cb20 | ||
|
|
092f90d2fc | ||
|
|
49b33d667d | ||
|
|
63b097329c | ||
|
|
2c3ab276ea | ||
|
|
c30c43d69e | ||
|
|
230c18d5d6 | ||
|
|
c16e64cd36 | ||
|
|
64704e16c1 | ||
|
|
b41103ee6b | ||
|
|
8ac1d54858 | ||
|
|
0a9af2968e | ||
|
|
7eba5a2221 | ||
|
|
19a8b3886e | ||
|
|
03716f62e8 | ||
|
|
d38000bc33 | ||
|
|
a6c88a173b | ||
|
|
0bad210dec | ||
|
|
62cc7574fc | ||
|
|
f5a134bcbd | ||
|
|
a7bb6b5383 | ||
|
|
e02ce1ea8b | ||
|
|
760a00b82f | ||
|
|
e6929e801b | ||
|
|
8682da4962 | ||
|
|
8e6f3e48d0 | ||
|
|
0589dd6909 | ||
|
|
1b8071d2c4 | ||
|
|
4debf155d7 | ||
|
|
f6df126c43 | ||
|
|
c406e33fcc | ||
|
|
9e11ebb62a | ||
|
|
16ed42b188 | ||
|
|
a19890469e | ||
|
|
cc1c1c127e | ||
|
|
3c1e95a3c2 | ||
|
|
d4c0777d2c | ||
|
|
8f00000676 | ||
|
|
4240f737d1 | ||
|
|
25121a86bb | ||
|
|
e4b3cde0a4 | ||
|
|
cf74ebeb71 | ||
|
|
d682357189 | ||
|
|
ddd4c391a1 | ||
|
|
930ee1d650 | ||
|
|
c5344d5336 | ||
|
|
d59c644a10 | ||
|
|
28171945e9 | ||
|
|
ddf9354d26 | ||
|
|
5f58b65c04 | ||
|
|
1ec20c5281 | ||
|
|
3421fab58a | ||
|
|
deeaf27b54 | ||
|
|
429be57b8a | ||
|
|
7f00e8f2f1 | ||
|
|
89f891ac86 | ||
|
|
63147cd145 | ||
|
|
2c5f026d3c | ||
|
|
c10146e2f0 | ||
|
|
548fe881d6 | ||
|
|
b560b7047b | ||
|
|
6f470abdff | ||
|
|
eabe95c4e3 | ||
|
|
fab50ec384 | ||
|
|
0f298de36a | ||
|
|
f8132e3be4 | ||
|
|
dfd865dadc | ||
|
|
98bdd67cf2 | ||
|
|
e842bec025 | ||
|
|
8278d38a8e | ||
|
|
0699d4cf3d | ||
|
|
8865633ccd | ||
|
|
7066b9a5c7 | ||
|
|
63f8b1dcec | ||
|
|
2e790fb865 | ||
|
|
ac62c24c4a | ||
|
|
629de594d5 | ||
|
|
7a69a45ccc | ||
|
|
916431118e | ||
|
|
83e584d579 | ||
|
|
bbd536fc04 | ||
|
|
0b76654b71 | ||
|
|
ff7d79d5fc | ||
|
|
b40b555386 | ||
|
|
efa1ebff16 | ||
|
|
8f0dcde98f | ||
|
|
3b1efb635b | ||
|
|
055fdfa0b4 | ||
|
|
a5a21235dc | ||
|
|
dfbcfdb0ae | ||
|
|
a1e917bac2 | ||
|
|
62a9208944 | ||
|
|
1bf8eb8cac | ||
|
|
893573485c | ||
|
|
d5231ad94b | ||
|
|
a578935621 | ||
|
|
c88c7ff6bb | ||
|
|
21f9cfa6d3 | ||
|
|
45d2fb8a30 | ||
|
|
9c162624fe | ||
|
|
80b5731709 | ||
|
|
bab4ffff62 | ||
|
|
f644c82da4 | ||
|
|
54294f15ef | ||
|
|
dfe77571fb | ||
|
|
f40f66d29b | ||
|
|
af06529283 | ||
|
|
d8da7a2142 | ||
|
|
c1f8e31775 | ||
|
|
cc4b49226b | ||
|
|
f9a2f74716 | ||
|
|
a326a6badf | ||
|
|
e21f4862e1 | ||
|
|
f0c3ac1789 | ||
|
|
e24513e6e2 | ||
|
|
a224b6f1b0 | ||
|
|
26299eb364 | ||
|
|
772c461a33 | ||
|
|
110ca4d1b5 | ||
|
|
aafb05b675 | ||
|
|
ff6fc56a15 | ||
|
|
2dfbe9fe77 | ||
|
|
4a0fe2c17b | ||
|
|
9f7e626b9a | ||
|
|
f2985bda5f | ||
|
|
1517745a6a | ||
|
|
887cb55919 | ||
|
|
5c42d0ef31 | ||
|
|
837d47a309 | ||
|
|
f3766cf889 | ||
|
|
2b8b63e59f | ||
|
|
d64583b743 | ||
|
|
9ec65d5ed5 | ||
|
|
9fe6afcdcc | ||
|
|
6a4e0fb41b | ||
|
|
b570884bb3 | ||
|
|
8f8f8e288c | ||
|
|
8698a5e0e8 | ||
|
|
ad5e30e189 | ||
|
|
19ee0c74f8 | ||
|
|
007e5aa27a | ||
|
|
2509f562b5 | ||
|
|
a58a276ffd | ||
|
|
1a5b9dcce1 | ||
|
|
1240a0dfdd | ||
|
|
0194169e79 | ||
|
|
a71c19e1b5 | ||
|
|
bfbfa719ff | ||
|
|
49389d0a2f | ||
|
|
e380062403 | ||
|
|
b83abfa9c1 | ||
|
|
48dbf203a5 | ||
|
|
23768398c5 | ||
|
|
ab73503859 | ||
|
|
a4f7d4cc2a | ||
|
|
cca5ac60d6 | ||
|
|
9f7f9fc3c5 | ||
|
|
6e2fb92e9a | ||
|
|
4f702e2381 | ||
|
|
b188f903ce | ||
|
|
7b93dc9c32 | ||
|
|
664d66a89e | ||
|
|
d9dc0e6fd1 | ||
|
|
53168e4cfd | ||
|
|
7998632685 | ||
|
|
86f2a1061c | ||
|
|
9ca02a448e | ||
|
|
17091d3a0e | ||
|
|
c94b1488e9 | ||
|
|
7b2274cb44 | ||
|
|
7c27a6f51e | ||
|
|
e91371d406 | ||
|
|
e878559fb9 | ||
|
|
36af8de116 | ||
|
|
09dd3a8fea | ||
|
|
5dd6b90692 | ||
|
|
97fd94744e | ||
|
|
0da3674d5e | ||
|
|
01d530d65e | ||
|
|
10dd42b6e4 | ||
|
|
ba2d3f7704 | ||
|
|
607fe2a5f6 | ||
|
|
4643679d79 | ||
|
|
04180c7c96 | ||
|
|
3846348f8a | ||
|
|
dc2fc9428d | ||
|
|
6e399ce311 | ||
|
|
641b544801 | ||
|
|
761a100397 | ||
|
|
cf1a4f893f | ||
|
|
19613be861 | ||
|
|
c163659713 | ||
|
|
aae02af265 | ||
|
|
cb96bf15b7 | ||
|
|
c006c28f55 | ||
|
|
d358d00531 | ||
|
|
abcebb4f48 | ||
|
|
6e74724c0f | ||
|
|
c5f6c43326 | ||
|
|
a9e8c0ba76 | ||
|
|
5388d8a7b0 | ||
|
|
ee499b36ea | ||
|
|
13e4b959a4 | ||
|
|
5a336403f9 | ||
|
|
26265c011a | ||
|
|
4a390bca1c | ||
|
|
af46ead30d | ||
|
|
de0f936e92 | ||
|
|
bf9dcfe89c | ||
|
|
df0ecd2a93 | ||
|
|
b3ebb3c3d3 | ||
|
|
0bead0c69a | ||
|
|
a055b0a04f | ||
|
|
d6f6007692 | ||
|
|
8ee7ffb2ab | ||
|
|
40ff04911e | ||
|
|
a3676618af | ||
|
|
b1ed66c6f5 | ||
|
|
53b3f81abe | ||
|
|
bd2428dde5 | ||
|
|
b7ae5f0885 | ||
|
|
8c5b64c7d7 | ||
|
|
641112dd4d | ||
|
|
1c47acd040 | ||
|
|
d58d6f45cc | ||
|
|
7efa921bab | ||
|
|
feafdb3c6a | ||
|
|
784ee6a086 | ||
|
|
3014f20b6c | ||
|
|
40bb035b09 | ||
|
|
ba32bf3b8d | ||
|
|
e9edc06aaf | ||
|
|
c91196d240 | ||
|
|
08c7bf3c85 | ||
|
|
046470a8db | ||
|
|
2b1eedb036 | ||
|
|
02bea6534c | ||
|
|
6f4099c20b | ||
|
|
39735df82f | ||
|
|
5062f22839 | ||
|
|
e397707dc9 | ||
|
|
66d6e226a9 | ||
|
|
fbfa578c11 | ||
|
|
5cd7208ef3 | ||
|
|
e5bc6a0315 | ||
|
|
495c890aac | ||
|
|
5fe4a1b05d | ||
|
|
d8bf62995b | ||
|
|
e36f7e7161 | ||
|
|
285b667c3e | ||
|
|
aefbdbb6d5 | ||
|
|
8debfc6e6c | ||
|
|
c9ca772a32 | ||
|
|
dc65792776 | ||
|
|
18ae1d7c18 | ||
|
|
d790a1b3c6 | ||
|
|
349c627110 | ||
|
|
db23fcfe9f | ||
|
|
d5a6a75639 | ||
|
|
404a7181a8 | ||
|
|
e392b8e240 | ||
|
|
6752d75ad0 | ||
|
|
e00d9821a8 | ||
|
|
1cf7093f46 | ||
|
|
88708ec00f | ||
|
|
984b0af883 | ||
|
|
8810754ada | ||
|
|
0d340b378b | ||
|
|
e30dc968ef | ||
|
|
ea942b0642 | ||
|
|
7e9d49b300 | ||
|
|
ce60ac4274 | ||
|
|
a04fc310b4 | ||
|
|
4a805ea666 | ||
|
|
1595651780 | ||
|
|
fc85cac91d | ||
|
|
73134f9dcc | ||
|
|
eb72bbe6f7 | ||
|
|
a5ae078f8f | ||
|
|
1cd9dc49a9 | ||
|
|
d64a97195b | ||
|
|
c6a3ace553 | ||
|
|
497d57ca95 | ||
|
|
3a07b411fb | ||
|
|
b0c2a8d5fd | ||
|
|
e404d214aa | ||
|
|
7f295dc6e8 | ||
|
|
d2a8203efb | ||
|
|
33bfa8f961 | ||
|
|
f944254cb8 | ||
|
|
30339cfd86 | ||
|
|
7dd5549b05 | ||
|
|
b6b59d93d7 | ||
|
|
5af68bbf94 | ||
|
|
db7debd3da | ||
|
|
29bc8d965b | ||
|
|
daeb55e99d | ||
|
|
fa4d85897c | ||
|
|
983363e0cd | ||
|
|
d95dad76b8 | ||
|
|
18f74aa5b2 | ||
|
|
e96a8f7bc6 | ||
|
|
29f39be6ad | ||
|
|
7a17967d79 | ||
|
|
de5bd32aba | ||
|
|
199b2e1a3a | ||
|
|
a43e4f10ef | ||
|
|
5522e4641d | ||
|
|
6c82ea8fc3 | ||
|
|
b4b45b7139 | ||
|
|
7ebb033016 | ||
|
|
163fdb46f0 | ||
|
|
b38cf204f7 | ||
|
|
fe5381b0f4 | ||
|
|
c99e7f1337 | ||
|
|
b61b674fec | ||
|
|
3bdaf99cfa | ||
|
|
6c85e7015a | ||
|
|
9788f7101b | ||
|
|
d0d5a3802d | ||
|
|
1f160b31ff | ||
|
|
13659e87cb | ||
|
|
ac9b0bfc1b | ||
|
|
07f7a3f3c5 | ||
|
|
22984f4eb2 | ||
|
|
2286283f98 | ||
|
|
5ca26e6ae0 | ||
|
|
e7c3afc1e5 | ||
|
|
82e9b4197b | ||
|
|
820939f014 | ||
|
|
e4c9916e17 | ||
|
|
ce88b120eb | ||
|
|
23c5101227 | ||
|
|
de3eeb2d47 | ||
|
|
03f7205e6d | ||
|
|
7bf7ab954b | ||
|
|
97612f3b31 | ||
|
|
71702d058c | ||
|
|
6a4164d9f3 | ||
|
|
d3b0eae84c | ||
|
|
0105b93f38 | ||
|
|
cae0d2c707 | ||
|
|
dcb1572240 | ||
|
|
e20f43018b | ||
|
|
01e176694f | ||
|
|
a239ccaa9a | ||
|
|
b97a05b7f2 | ||
|
|
c86754afde | ||
|
|
95da9c0dd4 | ||
|
|
567171993b | ||
|
|
60a0d554a0 | ||
|
|
f87af6c642 | ||
|
|
df849e8698 | ||
|
|
7a8ef7aeb7 | ||
|
|
25c7c8b153 | ||
|
|
8048f015e5 | ||
|
|
8a7fce41bb | ||
|
|
094a272443 | ||
|
|
552be2f5fb | ||
|
|
d99954133c | ||
|
|
c49ace5587 |
29
.commitlintrc.js
Normal file
29
.commitlintrc.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
extends: [
|
||||||
|
'@commitlint/config-conventional', // scoped packages are not prefixed
|
||||||
|
],
|
||||||
|
rules: {
|
||||||
|
'type-enum': [
|
||||||
|
2,
|
||||||
|
'always',
|
||||||
|
[
|
||||||
|
'build',
|
||||||
|
'chore',
|
||||||
|
'ci',
|
||||||
|
'docs',
|
||||||
|
'feat',
|
||||||
|
'fix',
|
||||||
|
'perf',
|
||||||
|
'proposal',
|
||||||
|
'refactor',
|
||||||
|
'release',
|
||||||
|
'revert',
|
||||||
|
'style',
|
||||||
|
'test',
|
||||||
|
'wip',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -8,7 +8,5 @@ charset = utf-8
|
|||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
indent_style = space
|
indent_style = space
|
||||||
trim_trailing_whitespace = true
|
|
||||||
|
|
||||||
[**.{html,js,json,md}]
|
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|||||||
5
.eslintignore
Normal file
5
.eslintignore
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
coverage/
|
||||||
|
coverage-merged/
|
||||||
|
dist/
|
||||||
|
node_modules/
|
||||||
|
types/
|
||||||
99
.eslintrc
Normal file
99
.eslintrc
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"extends": ["airbnb-base", "prettier"],
|
||||||
|
"root": true,
|
||||||
|
"env": {
|
||||||
|
"amd": true,
|
||||||
|
"browser": true,
|
||||||
|
"es6": true,
|
||||||
|
"jest": true,
|
||||||
|
"node": true
|
||||||
|
},
|
||||||
|
"globals": {
|
||||||
|
"BigInt": "readonly",
|
||||||
|
"BigInt64Array": "readonly",
|
||||||
|
"BigUint64Array": "readonly",
|
||||||
|
"globalThis": "readonly"
|
||||||
|
},
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": 2020,
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"prettier"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"prettier/prettier": "error",
|
||||||
|
// Overridden
|
||||||
|
"camelcase": ["error", { "properties": "never", "allow": [ "W[0-9]+_"] }],
|
||||||
|
"import/extensions": "off",
|
||||||
|
"no-eval": "off",
|
||||||
|
"no-self-compare": "off",
|
||||||
|
"one-var": ["error", "never"],
|
||||||
|
// @TODO: Fix the following rules progressively.
|
||||||
|
"arrow-body-style": "warn",
|
||||||
|
"prefer-arrow-callback": "warn",
|
||||||
|
"prefer-object-spread": "off",
|
||||||
|
"max-classes-per-file": "off",
|
||||||
|
"dot-notation": "off",
|
||||||
|
"object-shorthand": "off",
|
||||||
|
"no-param-reassign": "off",
|
||||||
|
"no-cond-assign": "off",
|
||||||
|
"prefer-destructuring": "off",
|
||||||
|
"func-names": "off",
|
||||||
|
"no-nested-ternary": "off",
|
||||||
|
"no-plusplus": "off",
|
||||||
|
"strict": "off",
|
||||||
|
"no-restricted-syntax": "off",
|
||||||
|
"import/no-mutable-exports": "off",
|
||||||
|
"guard-for-in": "off",
|
||||||
|
"import/prefer-default-export": "off",
|
||||||
|
"prefer-rest-params": "off",
|
||||||
|
"prefer-spread": "off",
|
||||||
|
"no-lonely-if": "off",
|
||||||
|
"no-prototype-builtins": "off",
|
||||||
|
"no-continue": "off",
|
||||||
|
"no-shadow": "off",
|
||||||
|
// Rules up for discussion.
|
||||||
|
"no-multi-assign": "off",
|
||||||
|
"new-cap": "off"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["**/*.ts"],
|
||||||
|
"parserOptions": {
|
||||||
|
"project": "./tsconfig.json"
|
||||||
|
},
|
||||||
|
"extends": [
|
||||||
|
"airbnb-typescript/base",
|
||||||
|
"prettier"
|
||||||
|
],
|
||||||
|
"plugins": ["@typescript-eslint"],
|
||||||
|
"rules": {
|
||||||
|
"@typescript-eslint/no-unused-vars": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"vars": "all",
|
||||||
|
"args": "after-used",
|
||||||
|
"ignoreRestSiblings": true,
|
||||||
|
"argsIgnorePattern": "^_" // For tsc compatibility.
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"comma-dangle": "off",
|
||||||
|
"implicit-arrow-linebreak": "off", // Conflicts with prettier.
|
||||||
|
"import/extensions": "off",
|
||||||
|
"import/prefer-default-export": "off",
|
||||||
|
"operator-linebreak": "off",
|
||||||
|
"object-curly-newline": "off",
|
||||||
|
"prefer-rest-params": "off", // We need to use params.
|
||||||
|
"prettier/prettier": "error",
|
||||||
|
"@typescript-eslint/no-shadow": "warn",
|
||||||
|
"@typescript-eslint/no-use-before-define": ["warn", { "functions": false }],
|
||||||
|
"import/no-cycle": "warn",
|
||||||
|
"no-bitwise": "off",
|
||||||
|
"no-unsafe-finally": "warn",
|
||||||
|
"no-param-reassign": "off",
|
||||||
|
"no-shadow": "warn"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +1,2 @@
|
|||||||
* text=auto
|
* text=auto
|
||||||
|
*.lockb binary diff=lockb
|
||||||
|
|||||||
71
.github/CONTRIBUTING.md
vendored
Normal file
71
.github/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# :construction: Notice :construction:
|
||||||
|
|
||||||
|
Pardon the mess. The `master` branch is in flux while we work on Lodash v5. This
|
||||||
|
means things like npm scripts, which we encourage using for contributions, may
|
||||||
|
not be working. Thank you for your patience.
|
||||||
|
|
||||||
|
# Contributing to Lodash
|
||||||
|
|
||||||
|
Contributions are always welcome. Before contributing please read the
|
||||||
|
[code of conduct](https://code-of-conduct.openjsf.org) &
|
||||||
|
[search the issue tracker](https://github.com/lodash/lodash/issues); your issue
|
||||||
|
may have already been discussed or fixed in `master`. To contribute,
|
||||||
|
[fork](https://help.github.com/articles/fork-a-repo/) Lodash, commit your changes,
|
||||||
|
& [send a pull request](https://help.github.com/articles/using-pull-requests/).
|
||||||
|
|
||||||
|
## Feature Requests
|
||||||
|
|
||||||
|
Feature requests should be submitted in the
|
||||||
|
[issue tracker](https://github.com/lodash/lodash/issues), with a description of
|
||||||
|
the expected behavior & use case, where they’ll remain closed until sufficient interest,
|
||||||
|
[e.g. :+1: reactions](https://help.github.com/articles/about-discussions-in-issues-and-pull-requests/),
|
||||||
|
has been [shown by the community](https://github.com/lodash/lodash/issues?q=label%3A%22votes+needed%22+sort%3Areactions-%2B1-desc).
|
||||||
|
Before submitting a request, please search for similar ones in the
|
||||||
|
[closed issues](https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
|
||||||
|
|
||||||
|
## Pull Requests
|
||||||
|
|
||||||
|
For additions or bug fixes, please modify the relevant files. Include
|
||||||
|
updated unit tests in the `test` directory as part of your pull request.
|
||||||
|
Unit test files should be named `[filename].test.js`.
|
||||||
|
|
||||||
|
Before running the unit tests you’ll need to install, `npm i`,
|
||||||
|
[development dependencies](https://docs.npmjs.com/files/package.json#devdependencies).
|
||||||
|
Run unit tests from the command-line via `npm test`.
|
||||||
|
|
||||||
|
## Contributor License Agreement
|
||||||
|
|
||||||
|
Lodash is a member of the [JS Foundation](https://openjsf.org/).
|
||||||
|
As such, we request that all contributors sign the JS Foundation
|
||||||
|
[contributor license agreement (CLA)](https://cla.js.foundation/lodash/lodash).
|
||||||
|
|
||||||
|
For more information about CLAs, please check out Alex Russell’s excellent post,
|
||||||
|
[“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
|
||||||
|
|
||||||
|
## Coding Guidelines
|
||||||
|
|
||||||
|
In addition to the following guidelines, please follow the conventions already
|
||||||
|
established in the code.
|
||||||
|
|
||||||
|
- **Spacing**:<br>
|
||||||
|
Use two spaces for indentation. No tabs.
|
||||||
|
|
||||||
|
- **Naming**:<br>
|
||||||
|
Keep variable & method names concise & descriptive.<br>
|
||||||
|
Variable names `index`, `array`, & `iteratee` are preferable to
|
||||||
|
`i`, `arr`, & `fn`.
|
||||||
|
|
||||||
|
- **Quotes**:<br>
|
||||||
|
Single-quoted strings are preferred to double-quoted strings; however,
|
||||||
|
please use a double-quoted string if the value contains a single-quote
|
||||||
|
character to avoid unnecessary escaping.
|
||||||
|
|
||||||
|
- **Comments**:<br>
|
||||||
|
Please use single-line comments to annotate significant additions, &
|
||||||
|
[JSDoc-style](http://www.2ality.com/2011/08/jsdoc-intro.html) comments for
|
||||||
|
functions.
|
||||||
|
|
||||||
|
Guidelines are enforced using [ESLint](https://www.npmjs.com/package/eslint):
|
||||||
|
```bash
|
||||||
|
$ npm run style
|
||||||
|
```
|
||||||
24
.github/lock.yml
vendored
Normal file
24
.github/lock.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Configuration for lock-threads - https://github.com/dessant/lock-threads
|
||||||
|
|
||||||
|
# Number of days of inactivity before a closed issue or pull request is locked
|
||||||
|
daysUntilLock: 365
|
||||||
|
|
||||||
|
# Skip issues and pull requests created before a given timestamp. Timestamp must
|
||||||
|
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
|
||||||
|
skipCreatedBefore: false
|
||||||
|
|
||||||
|
# Issues and pull requests with these labels will not be locked. Set to `[]` to disable
|
||||||
|
exemptLabels:
|
||||||
|
- votes needed
|
||||||
|
|
||||||
|
# Label to add before locking, such as `outdated`. Set to `false` to disable
|
||||||
|
lockLabel: false
|
||||||
|
|
||||||
|
# Comment to post before locking. Set to `false` to disable
|
||||||
|
lockComment: >
|
||||||
|
This thread has been automatically locked since there has not been
|
||||||
|
any recent activity after it was closed. Please open a new issue for
|
||||||
|
related bugs.
|
||||||
|
|
||||||
|
# Assign `resolved` as the reason for locking. Set to `false` to disable
|
||||||
|
setLockReason: true
|
||||||
16
.github/workflows/tests.yml
vendored
Normal file
16
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: oven-sh/setup-bun@v1
|
||||||
|
with:
|
||||||
|
bun-version: 1.0.2
|
||||||
|
- run: bun install
|
||||||
13
.gitignore
vendored
13
.gitignore
vendored
@@ -1,7 +1,8 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
*.custom.*
|
*.log*
|
||||||
*.log
|
dist/
|
||||||
*.map
|
node_modules/
|
||||||
lodash.compat.min.js
|
*.code-workspace
|
||||||
coverage
|
*.lockb
|
||||||
node_modules
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
||||||
|
|||||||
1
.husky/.gitignore
vendored
Normal file
1
.husky/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
_
|
||||||
4
.husky/commit-msg
Executable file
4
.husky/commit-msg
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
bun run commitlint --edit "$1"
|
||||||
4
.husky/pre-commit
Executable file
4
.husky/pre-commit
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
bun run lint-staged
|
||||||
97
.jscsrc
97
.jscsrc
@@ -1,97 +0,0 @@
|
|||||||
{
|
|
||||||
"maxErrors": "2000",
|
|
||||||
"maximumLineLength": {
|
|
||||||
"value": 180,
|
|
||||||
"allExcept": ["comments", "functionSignature", "regex"]
|
|
||||||
},
|
|
||||||
"requireCurlyBraces": [
|
|
||||||
"if",
|
|
||||||
"else",
|
|
||||||
"for",
|
|
||||||
"while",
|
|
||||||
"do",
|
|
||||||
"try",
|
|
||||||
"catch"
|
|
||||||
],
|
|
||||||
"requireOperatorBeforeLineBreak": [
|
|
||||||
"=",
|
|
||||||
"+",
|
|
||||||
"-",
|
|
||||||
"/",
|
|
||||||
"*",
|
|
||||||
"==",
|
|
||||||
"===",
|
|
||||||
"!=",
|
|
||||||
"!==",
|
|
||||||
">",
|
|
||||||
">=",
|
|
||||||
"<",
|
|
||||||
"<="
|
|
||||||
],
|
|
||||||
"requireSpaceAfterKeywords": [
|
|
||||||
"if",
|
|
||||||
"else",
|
|
||||||
"for",
|
|
||||||
"while",
|
|
||||||
"do",
|
|
||||||
"switch",
|
|
||||||
"return",
|
|
||||||
"try",
|
|
||||||
"catch"
|
|
||||||
],
|
|
||||||
"requireSpaceBeforeBinaryOperators": [
|
|
||||||
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
|
|
||||||
"&=", "|=", "^=", "+=",
|
|
||||||
|
|
||||||
"+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
|
|
||||||
"|", "^", "&&", "||", "===", "==", ">=",
|
|
||||||
"<=", "<", ">", "!=", "!=="
|
|
||||||
],
|
|
||||||
"requireSpacesInFunctionExpression": {
|
|
||||||
"beforeOpeningCurlyBrace": true
|
|
||||||
},
|
|
||||||
"requireCamelCaseOrUpperCaseIdentifiers": true,
|
|
||||||
"requireDotNotation": { "allExcept": ["keywords"] },
|
|
||||||
"requireEarlyReturn": true,
|
|
||||||
"requireLineFeedAtFileEnd": true,
|
|
||||||
"requireSemicolons": true,
|
|
||||||
"requireSpaceAfterBinaryOperators": true,
|
|
||||||
"requireSpacesInConditionalExpression": true,
|
|
||||||
"requireSpaceBeforeObjectValues": true,
|
|
||||||
"requireSpaceBeforeBlockStatements": true,
|
|
||||||
"requireSpacesInForStatement": true,
|
|
||||||
|
|
||||||
"validateIndentation": 2,
|
|
||||||
"validateParameterSeparator": ", ",
|
|
||||||
"validateQuoteMarks": { "mark": "'", "escape": true },
|
|
||||||
|
|
||||||
"disallowSpacesInAnonymousFunctionExpression": {
|
|
||||||
"beforeOpeningRoundBrace": true
|
|
||||||
},
|
|
||||||
"disallowSpacesInFunctionDeclaration": {
|
|
||||||
"beforeOpeningRoundBrace": true
|
|
||||||
},
|
|
||||||
"disallowSpacesInFunctionExpression": {
|
|
||||||
"beforeOpeningRoundBrace": true
|
|
||||||
},
|
|
||||||
"disallowKeywords": ["with"],
|
|
||||||
"disallowMixedSpacesAndTabs": true,
|
|
||||||
"disallowMultipleLineBreaks": true,
|
|
||||||
"disallowMultipleLineStrings": true,
|
|
||||||
"disallowNewlineBeforeBlockStatements": true,
|
|
||||||
"disallowSpaceAfterObjectKeys": true,
|
|
||||||
"disallowSpaceAfterPrefixUnaryOperators": true,
|
|
||||||
"disallowSpacesInCallExpression": true,
|
|
||||||
"disallowSpacesInsideArrayBrackets": true,
|
|
||||||
"disallowSpacesInsideParentheses": true,
|
|
||||||
"disallowTrailingWhitespace": true,
|
|
||||||
|
|
||||||
"jsDoc": {
|
|
||||||
"checkRedundantAccess": true,
|
|
||||||
"checkTypes": true,
|
|
||||||
"requireNewlineAfterDescription": true,
|
|
||||||
"requireParamDescription": true,
|
|
||||||
"requireParamTypes": true,
|
|
||||||
"requireReturnTypes": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
5
.prettierignore
Normal file
5
.prettierignore
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
coverage/
|
||||||
|
coverage-merged/
|
||||||
|
dist/
|
||||||
|
node_modules/
|
||||||
|
types/
|
||||||
6
.prettierrc
Normal file
6
.prettierrc
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"printWidth": 100,
|
||||||
|
"useTabs": false,
|
||||||
|
"tabWidth": 4,
|
||||||
|
"singleQuote": true
|
||||||
|
}
|
||||||
76
.travis.yml
76
.travis.yml
@@ -1,76 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
sudo: false
|
|
||||||
node_js:
|
|
||||||
- "5"
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- BIN="node" ISTANBUL=false OPTION=""
|
|
||||||
- SAUCE_LABS=false SAUCE_USERNAME="lodash"
|
|
||||||
- secure: "tg1JFsIFnxzLaTboFPOnm+aJCuMm5+JdhLlESlqg9x3fwro++7KCnwHKLNovhchaPe4otC43ZMB/nfWhDnDm11dKbm/V6HlTkED+dadTsaLxVDg6J+7yK41QhokBPJOxLV78iDaNaAQVYEirAgZ0yn8kFubxmNKV+bpCGQNc9yU="
|
|
||||||
matrix:
|
|
||||||
-
|
|
||||||
- BIN="phantomjs"
|
|
||||||
- ISTANBUL=true
|
|
||||||
- SAUCE_LABS=true
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- node_js: "0.10"
|
|
||||||
env:
|
|
||||||
- node_js: "0.12"
|
|
||||||
env:
|
|
||||||
- node_js: "4"
|
|
||||||
env:
|
|
||||||
git:
|
|
||||||
depth: 10
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
notifications:
|
|
||||||
webhooks:
|
|
||||||
urls:
|
|
||||||
- https://webhooks.gitter.im/e/4aab6358b0e9aed0b628
|
|
||||||
on_success: change
|
|
||||||
on_failure: always
|
|
||||||
before_install:
|
|
||||||
- "nvm use $TRAVIS_NODE_VERSION"
|
|
||||||
- "npm config set loglevel error"
|
|
||||||
- "npm i -g npm@\"^2.0.0\""
|
|
||||||
- |
|
|
||||||
PATTERN[0]="|\s*if\s*\(isHostObject\b[\s\S]+?\}(?=\n)|"
|
|
||||||
PATTERN[1]="|\s*if\s*\(enumerate\b[\s\S]+?\};\s*\}|"
|
|
||||||
PATTERN[2]="|\s*while\s*\([^)]+\)\s*\{\s*iteratee\(index\);\s*\}|"
|
|
||||||
PATTERN[3]="|\s*else\s*\{\s*assocSet\(data\b[\s\S]+?\}|"
|
|
||||||
PATTERN[4]="|\s*if\s*\(ctorString\b[\s\S]+?\}\s*\}|"
|
|
||||||
PATTERN[5]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|"
|
|
||||||
PATTERN[6]="|\s*if\s*\(!lodashFunc\)\s*\{\s*return;\s*\}|"
|
|
||||||
PATTERN[7]="|\s*define\([\s\S]+?\);|"
|
|
||||||
PATTERN[8]="|\s*root\._\s*=\s*_;|"
|
|
||||||
|
|
||||||
if [ $ISTANBUL == true ]; then
|
|
||||||
set -e
|
|
||||||
for PTRN in ${PATTERN[@]}; do
|
|
||||||
node ./test/remove.js "$PTRN" ./lodash.js
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
- "git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli && mkdir $_/node_modules && cd $_ && ln -s ../../../ ./lodash && cd ../ && npm i && cd ../../"
|
|
||||||
- "node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js"
|
|
||||||
script:
|
|
||||||
- "[ $ISTANBUL == false ] || istanbul cover -x \"**/vendor/**\" --report lcovonly ./test/test.js -- ./lodash.js"
|
|
||||||
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/lcov.info | coveralls) || true"
|
|
||||||
- "[ $ISTANBUL == false ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || (cat ./coverage/coverage.json | codecov) || true"
|
|
||||||
- "[ $SAUCE_LABS == true ] || [ $ISTANBUL == true ] || cd ./test"
|
|
||||||
- "[ $SAUCE_LABS == true ] || [ $ISTANBUL == true ] || $BIN $OPTION ./test.js ../lodash.js"
|
|
||||||
- "[ $SAUCE_LABS == true ] || [ $ISTANBUL == true ] || [ $TRAVIS_SECURE_ENV_VARS == false ] || $BIN $OPTION ./test.js ../dist/lodash.min.js"
|
|
||||||
- "[ $SAUCE_LABS == false ] || rm -rf ./node_modules/lodash"
|
|
||||||
- "[ $SAUCE_LABS == false ] || ($BIN ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./node_modules/lodash && node ./node_modules/lodash-cli/bin/lodash -d -o ./node_modules/lodash/index.js)"
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js"
|
|
||||||
- "[ $SAUCE_LABS == false ] || npm run build"
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash tests\" runner=\"test/index.html?build=../dist/lodash.js&noglobals=true\" tags=\"development\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash tests\" runner=\"test/index.html?build=../dist/lodash.min.js&noglobals=true\" tags=\"production\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"lodash-fp tests\" runner=\"test/fp.html?noglobals=true\" tags=\"development\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"underscore tests\" runner=\"test/underscore.html?build=../dist/lodash.js\" tags=\"development,underscore\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"underscore tests\" runner=\"test/underscore.html?build=../dist/lodash.min.js\" tags=\"production,underscore\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.js\" tags=\"development,backbone\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.min.js\" tags=\"production,backbone\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.core.js\" tags=\"development,backbone\""
|
|
||||||
- "[ $SAUCE_LABS == false ] || $BIN ./test/saucelabs.js name=\"backbone tests\" runner=\"test/backbone.html?build=../dist/lodash.core.min.js\" tags=\"production,backbone\""
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# Contributor Code of Conduct
|
|
||||||
|
|
||||||
As contributors and maintainers of this project, and in the interest of
|
|
||||||
fostering an open and welcoming community, we pledge to respect all people who
|
|
||||||
contribute through reporting issues, posting feature requests, updating
|
|
||||||
documentation, submitting pull requests or patches, and other activities.
|
|
||||||
|
|
||||||
We are committed to making participation in this project a harassment-free
|
|
||||||
experience for everyone, regardless of level of experience, gender, gender
|
|
||||||
identity and expression, sexual orientation, disability, personal appearance,
|
|
||||||
body size, race, ethnicity, age, religion, or nationality.
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery
|
|
||||||
* Personal attacks
|
|
||||||
* Trolling or insulting/derogatory comments
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing other's private information, such as physical or electronic
|
|
||||||
addresses, without explicit permission
|
|
||||||
* Other unethical or unprofessional conduct
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
||||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
By adopting this Code of Conduct, project maintainers commit themselves to
|
|
||||||
fairly and consistently applying these principles to every aspect of managing
|
|
||||||
this project. Project maintainers who do not follow or enforce the Code of
|
|
||||||
Conduct may be permanently removed from the project team.
|
|
||||||
|
|
||||||
This code of conduct applies both within project spaces and in public spaces
|
|
||||||
when an individual is representing the project or its community.
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported by contacting a project maintainer at
|
|
||||||
[coc@lodash.com](mailto:coc@lodash.com). All complaints will be reviewed and
|
|
||||||
investigated and will result in a response that is deemed necessary and
|
|
||||||
appropriate to the circumstances. Maintainers are obligated to maintain
|
|
||||||
confidentiality with regard to the reporter of an incident.
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
|
||||||
version 1.3.0, available at
|
|
||||||
[http://contributor-covenant.org/version/1/3/0/][version]
|
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
|
||||||
[version]: http://contributor-covenant.org/version/1/3/0/
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
# Contributing to lodash
|
|
||||||
|
|
||||||
Contributions are always welcome. Before contributing, please read the [code of conduct](https://github.com/lodash/lodash/blob/master/CODE_OF_CONDUCT.md) & [search the issue tracker](https://github.com/lodash/lodash/issues);
|
|
||||||
your issue may have already been discussed or fixed in `master`. To contribute, [fork](https://help.github.com/articles/fork-a-repo/) lodash, commit your changes, & [send a pull request](https://help.github.com/articles/using-pull-requests/).
|
|
||||||
|
|
||||||
## Tests
|
|
||||||
|
|
||||||
Include updated unit tests in the `test` directory as part of your pull request.
|
|
||||||
Don’t worry about regenerating the `dist/` or `doc/` files.
|
|
||||||
|
|
||||||
Before running the unit tests you’ll need to install, `npm i`, [development dependencies](https://docs.npmjs.com/files/package.json#devdependencies).
|
|
||||||
Run unit tests from the command-line via `npm test`, or open `test/index.html` & `test/fp.html` in a web browser.
|
|
||||||
The [Backbone](http://backbonejs.org/) & [Underscore](http://underscorejs.org/) test suites are included as well.
|
|
||||||
|
|
||||||
## Contributor License Agreement
|
|
||||||
|
|
||||||
lodash is a member of the [Dojo Foundation](http://dojofoundation.org/).
|
|
||||||
As such, we request that all contributors sign the Dojo Foundation [contributor license agreement](http://dojofoundation.org/about/claForm).
|
|
||||||
|
|
||||||
For more information about CLAs, please check out Alex Russell’s excellent post, [“Why Do I Need to Sign This?”](http://infrequently.org/2008/06/why-do-i-need-to-sign-this/).
|
|
||||||
|
|
||||||
## Coding Guidelines
|
|
||||||
|
|
||||||
In addition to the following guidelines, please follow the conventions already established in the code.
|
|
||||||
|
|
||||||
- **Spacing**:<br>
|
|
||||||
Use two spaces for indentation. No tabs.
|
|
||||||
|
|
||||||
- **Naming**:<br>
|
|
||||||
Keep variable & method names concise & descriptive.<br>
|
|
||||||
Variable names `index`, `collection`, & `callback` are preferable to `i`, `arr`, & `fn`.
|
|
||||||
|
|
||||||
- **Quotes**:<br>
|
|
||||||
Single-quoted strings are preferred to double-quoted strings; however, please use a double-quoted string if the value contains a single-quote character to avoid unnecessary escaping.
|
|
||||||
|
|
||||||
- **Comments**:<br>
|
|
||||||
Please use single-line comments to annotate significant additions, & [JSDoc-style](http://www.2ality.com/2011/08/jsdoc-intro.html) comments for functions.
|
|
||||||
|
|
||||||
Guidelines are enforced using [JSCS](https://www.npmjs.com/package/jscs):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm run style
|
|
||||||
```
|
|
||||||
31
LICENSE
31
LICENSE
@@ -1,7 +1,19 @@
|
|||||||
Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
|
The MIT License
|
||||||
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
|
|
||||||
|
Copyright JS Foundation and other contributors <https://js.foundation/>
|
||||||
|
|
||||||
|
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||||
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
This software consists of voluntary contributions made by many
|
||||||
|
individuals. For exact contribution history, see the revision history
|
||||||
|
available at https://github.com/lodash/lodash
|
||||||
|
|
||||||
|
The following license applies to all parts of this software except as
|
||||||
|
documented below:
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
"Software"), to deal in the Software without restriction, including
|
"Software"), to deal in the Software without restriction, including
|
||||||
@@ -20,3 +32,18 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|||||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Copyright and related rights for sample code are waived via CC0. Sample
|
||||||
|
code is defined as all source code displayed within the prose of the
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Files located in the node_modules and vendor directories are externally
|
||||||
|
maintained libraries used by this software which have their own
|
||||||
|
licenses; we recommend you read them, as their terms may differ from the
|
||||||
|
terms above.
|
||||||
|
|||||||
78
README.md
78
README.md
@@ -1,30 +1,72 @@
|
|||||||
# lodash v4.0.1
|
# lodash
|
||||||
|
|
||||||
The [lodash](https://lodash.com/) library exported as a [UMD](https://github.com/umdjs/umd) module.
|
[Site](https://lodash.com/) |
|
||||||
|
[Docs](https://lodash.com/docs) |
|
||||||
|
[Contributing](https://github.com/lodash/lodash/blob/master/.github/CONTRIBUTING.md) |
|
||||||
|
[Wiki](https://github.com/lodash/lodash/wiki "Changelog, Roadmap, etc.") |
|
||||||
|
[Code of Conduct](https://code-of-conduct.openjsf.org)
|
||||||
|
|
||||||
Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
|
The [Lodash](https://lodash.com/) library exported as a [UMD](https://github.com/umdjs/umd) module.
|
||||||
```bash
|
|
||||||
$ npm run build
|
```shell
|
||||||
|
$ bun run build
|
||||||
$ lodash -o ./dist/lodash.js
|
$ lodash -o ./dist/lodash.js
|
||||||
$ lodash core -o ./dist/lodash.core.js
|
$ lodash core -o ./dist/lodash.core.js
|
||||||
```
|
```
|
||||||
|
|
||||||
## Community
|
## Download
|
||||||
|
|
||||||
[](https://gitter.im/lodash/lodash)
|
* [Core build](https://raw.githubusercontent.com/lodash/lodash/4.17.10-npm/core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.17.10-npm/core.min.js))
|
||||||
|
* [Full build](https://raw.githubusercontent.com/lodash/lodash/4.17.10-npm/lodash.js) ([~24 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.17.10-npm/lodash.min.js))
|
||||||
|
* [CDN copies](https://www.jsdelivr.com/projects/lodash) [](https://www.jsdelivr.com/package/npm/lodash)
|
||||||
|
|
||||||
## Module formats
|
Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.17.10-npm/LICENSE) & supports modern environments.<br>
|
||||||
|
Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick one that’s right for you.
|
||||||
|
|
||||||
Lodash is also available in a variety of other builds & module formats.
|
## Installation
|
||||||
|
|
||||||
* [lodash](https://www.npmjs.com/package/lodash) & [per method](https://www.npmjs.com/browse/keyword/lodash-modularized) packages
|
In a browser:
|
||||||
* [lodash-amd](https://github.com/lodash/lodash/tree/4.0.1-amd)
|
```html
|
||||||
* [lodash-es](https://github.com/lodash/lodash/tree/4.0.1-es)
|
<script src="lodash.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
## Further Reading
|
Using bun:
|
||||||
|
```shell
|
||||||
|
$ bun i lodash
|
||||||
|
```
|
||||||
|
|
||||||
* [API Documentation](https://lodash.com/docs)
|
In [Bun](https://bun.sh):
|
||||||
* [Build Differences](https://github.com/lodash/lodash/wiki/Build-Differences)
|
```js
|
||||||
* [Changelog](https://github.com/lodash/lodash/wiki/Changelog)
|
// Load the full build.
|
||||||
* [Roadmap](https://github.com/lodash/lodash/wiki/Roadmap)
|
var _ = require('lodash');
|
||||||
* [More Resources](https://github.com/lodash/lodash/wiki/Resources)
|
// Load the core build.
|
||||||
|
var _ = require('lodash/core');
|
||||||
|
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
|
||||||
|
var fp = require('lodash/fp');
|
||||||
|
|
||||||
|
// Load method categories.
|
||||||
|
var array = require('lodash/array');
|
||||||
|
var object = require('lodash/fp/object');
|
||||||
|
|
||||||
|
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
|
||||||
|
var at = require('lodash/at');
|
||||||
|
var curryN = require('lodash/fp/curryN');
|
||||||
|
```
|
||||||
|
|
||||||
|
Looking for Lodash modules written in ES6 or smaller bundle sizes? Check out [lodash-es](https://www.npmjs.com/package/lodash-es).
|
||||||
|
|
||||||
|
## Why Lodash?
|
||||||
|
|
||||||
|
Lodash makes JavaScript easier by taking the hassle out of working with arrays,<br>
|
||||||
|
numbers, objects, strings, etc. Lodash’s modular methods are great for:
|
||||||
|
|
||||||
|
* Iterating arrays, objects, & strings
|
||||||
|
* Manipulating & testing values
|
||||||
|
* Creating composite functions
|
||||||
|
|
||||||
|
## Module Formats
|
||||||
|
|
||||||
|
Lodash is available in a [variety of builds](https://lodash.com/custom-builds) & module formats.
|
||||||
|
|
||||||
|
* [lodash](https://www.npmjs.com/package/lodash) & [per method packages](https://www.npmjs.com/search?q=keywords:lodash-modularized)
|
||||||
|
* [lodash-es](https://www.npmjs.com/package/lodash-es), [babel-plugin-lodash](https://www.npmjs.com/package/babel-plugin-lodash), & [lodash-webpack-plugin](https://www.npmjs.com/package/lodash-webpack-plugin)
|
||||||
|
|||||||
35
SECURITY.md
Normal file
35
SECURITY.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported versions
|
||||||
|
|
||||||
|
The following table describes the versions of this project that are currently
|
||||||
|
supported with security updates:
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 4.x | :white_check_mark: |
|
||||||
|
| 3.x | :x: |
|
||||||
|
| 2.x | :x: |
|
||||||
|
| 1.x | :x: |
|
||||||
|
|
||||||
|
## Responsible disclosure security policy
|
||||||
|
|
||||||
|
A responsible disclosure policy helps protect users of the project from publicly
|
||||||
|
disclosed security vulnerabilities without a fix by employing a process where
|
||||||
|
vulnerabilities are first triaged in a private manner, and only publicly disclosed
|
||||||
|
after a reasonable time period that allows patching the vulnerability and provides
|
||||||
|
an upgrade path for users.
|
||||||
|
|
||||||
|
We kindly ask you to refrain from malicious acts that put our users, the project,
|
||||||
|
or any of the project’s team members at risk.
|
||||||
|
|
||||||
|
## Reporting a security issue
|
||||||
|
|
||||||
|
We consider the security of Lodash a top priority. But no matter how much effort
|
||||||
|
we put into security, there can still be vulnerabilities present.
|
||||||
|
|
||||||
|
If you discover a security vulnerability, please report the security issue
|
||||||
|
directly to the Lodash maintainers through the Security tab of the Lodash
|
||||||
|
repository.
|
||||||
|
|
||||||
|
Your efforts to responsibly disclose your findings are sincerely appreciated.
|
||||||
2
bunfig.toml
Normal file
2
bunfig.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[install.lockfile]
|
||||||
|
print = "yarn"
|
||||||
3857
dist/lodash.core.js
vendored
3857
dist/lodash.core.js
vendored
File diff suppressed because it is too large
Load Diff
30
dist/lodash.core.min.js
vendored
30
dist/lodash.core.min.js
vendored
@@ -1,30 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* lodash 4.0.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
|
||||||
* Build: `lodash core -o ./dist/lodash.core.js`
|
|
||||||
*/
|
|
||||||
;(function(){function n(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function t(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===ln?i===i:r(i,c)))var c=i,f=o}return f}function r(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return w(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return vn[n];
|
|
||||||
}function c(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function f(n,t){return n=typeof n=="number"||hn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function a(n){if(Z(n)&&!Vn(n)){if(n instanceof l)return n;if(En.call(n,"__wrapped__")){var t=new l(n.__wrapped__,n.__chain__);return t.__actions__=k(n.__actions__),t}}return new l(n)}function l(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function p(n,t,r,e){return n===ln||H(n,xn[r])&&!En.call(e,r)?t:n;
|
|
||||||
}function s(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(ln,r)},t)}function h(n,t){var r=true;return $n(n,function(n,e,u){return r=!!t(n,e,u)}),r}function v(n,t){var r=[];return $n(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function y(t,r,e,u){u||(u=[]);for(var o=-1,i=t.length;++o<i;){var c=t[o];Z(c)&&Q(c)&&(e||Vn(c)||L(c))?r?y(c,r,e,u):n(u,c):e||(u[u.length]=c)}return u}function _(n,t){return n&&qn(n,t,un)}function g(n,t){return v(t,function(t){
|
|
||||||
return W(n[t])})}function b(n,t,r,e,u){return n===t?true:null==n||null==t||!Y(n)&&!Z(t)?n!==n&&t!==t:j(n,t,b,r,e,u)}function j(n,t,r,e,u,o){var i=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";i||(a=kn.call(n),"[object Arguments]"==a&&(a="[object Object]")),f||(l=kn.call(t),"[object Arguments]"==l&&(l="[object Object]"));var p="[object Object]"==a&&!c(n),f="[object Object]"==l&&!c(t);return!(l=a==l)||i||p?2&u||(a=p&&En.call(n,"__wrapped__"),f=f&&En.call(t,"__wrapped__"),!a&&!f)?l?(o||(o=[]),(a=C(o,function(t){
|
|
||||||
return t[0]===n}))&&a[1]?a[1]==t:(o.push([n,t]),t=(i?R:$)(n,t,r,e,u,o),o.pop(),t)):false:r(a?n.value():n,f?t.value():t,e,u,o):I(n,t,a)}function m(n){var t=typeof n;return"function"==t?n:null==n?fn:("object"==t?O:E)(n)}function d(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function w(n,t){var r=-1,e=Q(n)?Array(n.length):[];return $n(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function O(n){var t=un(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];
|
|
||||||
if(!(u in r&&b(n[u],r[u],ln,3)))return false}return true}}function x(n,t){return n=Object(n),J(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function E(n){return function(t){return null==t?ln:t[n]}}function A(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function k(n){return A(n,0,n.length)}function N(n,t){var r;return $n(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function S(t,r){return J(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args));
|
|
||||||
},t)}function T(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];(!H(a,c)||H(a,xn[i])&&!En.call(f,i)||c===ln&&!(i in f))&&(f[i]=c)}return r}function F(n){return V(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:ln,o=typeof o=="function"?(u--,o):ln;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function B(n){return function(){var t=arguments,r=In(n.prototype),t=n.apply(r,t);return Y(t)?t:r}}function D(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==wn&&this instanceof e?u:n;++c<f;)a[c]=r[c];
|
|
||||||
for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=B(n);return e}function R(n,t,r,e,u,o){var i=-1,c=1&u,f=n.length,a=t.length;if(f!=a&&!(2&u&&a>f))return false;for(a=true;++i<f;){var l=n[i],p=t[i];if(void 0!==ln){a=false;break}if(c){if(!N(t,function(n){return l===n||r(l,n,e,u,o)})){a=false;break}}else if(l!==p&&!r(l,p,e,u,o)){a=false;break}}return a}function I(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":
|
|
||||||
return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function $(n,t,r,e,u,o){var i=2&u,c=un(n),f=c.length,a=un(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:En.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==ln||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),
|
|
||||||
a}function q(n){var t=n?n.length:ln;if(X(t)&&(Vn(n)||tn(n)||L(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function M(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||xn)}function z(n){return n?n[0]:ln}function C(n,t){return r(n,m(t),$n)}function G(n,t){return $n(n,typeof t=="function"?t:fn)}function J(n,t,r){return e(n,m(t),r,3>arguments.length,$n)}function P(n){return null==n?0:(n=Q(n)?n:un(n),n.length)}function U(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");
|
|
||||||
return n=Hn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=ln),r}}function V(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=Rn(t===ln?n.length-1:Hn(t),0),function(){for(var r=arguments,e=-1,u=Rn(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function H(n,t){return n===t||n!==n&&t!==t}function K(n,t){return n>t}function L(n){return Z(n)&&Q(n)&&En.call(n,"callee")&&(!Fn.call(n,"callee")||"[object Arguments]"==kn.call(n));
|
|
||||||
}function Q(n){return null!=n&&!(typeof n=="function"&&W(n))&&X(Mn(n))}function W(n){return n=Y(n)?kn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function X(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function Y(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function Z(n){return!!n&&typeof n=="object"}function nn(n){return typeof n=="number"||Z(n)&&"[object Number]"==kn.call(n)}function tn(n){return typeof n=="string"||!Vn(n)&&Z(n)&&"[object String]"==kn.call(n);
|
|
||||||
}function rn(n,t){return t>n}function en(n){return typeof n=="string"?n:null==n?"":n+""}function un(n){var t=M(n);if(!t&&!Q(n))return Dn(Object(n));var r,e=q(n),u=!!e,e=e||[],o=e.length;for(r in n)!En.call(n,r)||u&&("length"==r||f(r,o))||t&&"constructor"==r||e.push(r);return e}function on(n){for(var t=-1,r=M(n),e=d(n),u=e.length,o=q(n),i=!!o,o=o||[],c=o.length;++t<u;){var a=e[t];i&&("length"==a||f(a,c))||"constructor"==a&&(r||!En.call(n,a))||o.push(a)}return o}function cn(n){return n?u(n,un(n)):[];
|
|
||||||
}function fn(n){return n}function an(t,r,e){var u=un(r),o=g(r,u);null!=e||Y(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=g(r,un(r)));var i=Y(e)&&"chain"in e?e.chain:true,c=W(t);return $n(o,function(e){var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=k(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var ln,pn=/[&<>"'`]/g,sn=RegExp(pn.source),hn=/^(?:0|[1-9]\d*)$/,vn={
|
|
||||||
"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},yn={"function":true,object:true},_n=yn[typeof exports]&&exports&&!exports.nodeType?exports:null,gn=yn[typeof module]&&module&&!module.nodeType?module:null,bn=o(yn[typeof self]&&self),jn=o(yn[typeof window]&&window),mn=gn&&gn.exports===_n?_n:null,dn=o(yn[typeof this]&&this),wn=o(_n&&gn&&typeof global=="object"&&global)||jn!==(dn&&dn.window)&&jn||bn||dn||Function("return this")(),On=Array.prototype,xn=Object.prototype,En=xn.hasOwnProperty,An=0,kn=xn.toString,Nn=wn._,Sn=wn.f,Tn=Sn?Sn.g:ln,Fn=xn.propertyIsEnumerable,Bn=wn.isFinite,Dn=Object.keys,Rn=Math.max,In=function(){
|
|
||||||
function n(){}return function(t){if(Y(t)){n.prototype=t;var r=new n;n.prototype=ln}return r||{}}}(),$n=function(n,t){return function(r,e){if(null==r)return r;if(!Q(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(_),qn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Tn&&!Fn.call({valueOf:1},"valueOf")&&(d=function(n){n=Tn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);
|
|
||||||
return r});var Mn=E("length"),zn=V(function(t,r){return Vn(t)||(t=null==t?[]:[Object(t)]),y(r),n(k(t),cn)}),Cn=V(function(n,t,r){var e=typeof t=="function";return w(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})}),Gn=Date.now,Jn=V(function(n,t,r){return D(n,t,r)}),Pn=V(function(n,t){return s(n,1,t)}),Un=V(function(n,t,r){return s(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=F(function(n,t){T(t,un(t),n)}),Qn=F(function(n,t){T(t,on(t),n)}),Wn=F(function(n,t,r,e){T(t,on(t),n,e);
|
|
||||||
}),Xn=V(function(n){return n.push(ln,p),Wn.apply(ln,n)}),Yn=V(function(n,t){return null==n?{}:x(n,y(t))}),Zn=m;l.prototype=In(a.prototype),l.prototype.constructor=l,a.assignIn=Qn,a.before=U,a.bind=Jn,a.chain=function(n){return n=a(n),n.__chain__=true,n},a.compact=function(n){return v(n,Boolean)},a.concat=zn,a.create=function(n,t){var r=In(n);return t?Ln(r,t):r},a.defaults=Xn,a.defer=Pn,a.delay=Un,a.filter=function(n,t){return v(n,m(t))},a.flatten=function(n){return n&&n.length?y(n):[]},a.flattenDeep=function(n){
|
|
||||||
return n&&n.length?y(n,true):[]},a.invokeMap=Cn,a.iteratee=Zn,a.keys=un,a.map=function(n,t){return w(n,m(t))},a.matches=function(n){return O(Ln({},n))},a.mixin=an,a.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},a.once=function(n){return U(2,n)},a.pick=Yn,a.slice=function(n,t,r){var e=n?n.length:0;return r=r===ln?e:+r,e?A(n,null==t?0:+t,r):[]},a.sortBy=function(n,t){var r=0;return t=m(t),w(w(n,function(n,e,u){
|
|
||||||
return{c:n,b:r++,a:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.a;var e=t.a;if(r!==e){var u=null===r,o=r===ln,i=r===r,c=null===e,f=e===ln,a=e===e;if(r>e&&!c||!i||u&&!f&&a||o&&a){r=1;break n}if(e>r&&!u||!a||c&&!o&&i||f&&i){r=-1;break n}}r=0}return r||n.b-t.b}),E("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return Q(n)?n.length?k(n):[]:cn(n)},a.values=cn,a.extend=Qn,an(a,a),a.clone=function(n){return Y(n)?Vn(n)?k(n):T(n,un(n)):n},a.escape=function(n){
|
|
||||||
return(n=en(n))&&sn.test(n)?n.replace(pn,i):n},a.every=function(n,t,r){return t=r?ln:t,h(n,m(t))},a.find=C,a.forEach=G,a.has=function(n,t){return null!=n&&En.call(n,t)},a.head=z,a.identity=fn,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?Rn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1},a.isArguments=L,a.isArray=Vn,a.isBoolean=function(n){return true===n||false===n||Z(n)&&"[object Boolean]"==kn.call(n)},a.isDate=function(n){return Z(n)&&"[object Date]"==kn.call(n);
|
|
||||||
},a.isEmpty=function(n){return!Z(n)||W(n.splice)?!P(n):!un(n).length},a.isEqual=function(n,t){return b(n,t)},a.isFinite=function(n){return typeof n=="number"&&Bn(n)},a.isFunction=W,a.isNaN=function(n){return nn(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=nn,a.isObject=Y,a.isRegExp=function(n){return Y(n)&&"[object RegExp]"==kn.call(n)},a.isString=tn,a.isUndefined=function(n){return n===ln},a.last=function(n){var t=n?n.length:0;return t?n[t-1]:ln},a.max=function(n){return n&&n.length?t(n,fn,K):ln;
|
|
||||||
},a.min=function(n){return n&&n.length?t(n,fn,rn):ln},a.noConflict=function(){return wn._===this&&(wn._=Nn),this},a.noop=function(){},a.now=Gn,a.reduce=J,a.result=function(n,t,r){return t=null==n?ln:n[t],t===ln&&(t=r),W(t)?t.call(n):t},a.size=P,a.some=function(n,t,r){return t=r?ln:t,N(n,m(t))},a.uniqueId=function(n){var t=++An;return en(n)+t},a.each=G,a.first=z,an(a,function(){var n={};return _(a,function(t,r){En.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.0.1",$n("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
|
|
||||||
var t=(/^(?:replace|split)$/.test(n)?String.prototype:On)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);a.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return S(this.__wrapped__,this.__actions__)},(jn||bn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){
|
|
||||||
return a}):_n&&gn?(mn&&((gn.exports=a)._=a),_n._=a):wn._=a}).call(this);
|
|
||||||
515
dist/lodash.fp.js
vendored
515
dist/lodash.fp.js
vendored
@@ -1,515 +0,0 @@
|
|||||||
(function webpackUniversalModuleDefinition(root, factory) {
|
|
||||||
if(typeof exports === 'object' && typeof module === 'object')
|
|
||||||
module.exports = factory();
|
|
||||||
else if(typeof define === 'function' && define.amd)
|
|
||||||
define([], factory);
|
|
||||||
else if(typeof exports === 'object')
|
|
||||||
exports["fp"] = factory();
|
|
||||||
else
|
|
||||||
root["fp"] = factory();
|
|
||||||
})(this, function() {
|
|
||||||
return /******/ (function(modules) { // webpackBootstrap
|
|
||||||
/******/ // The module cache
|
|
||||||
/******/ var installedModules = {};
|
|
||||||
|
|
||||||
/******/ // The require function
|
|
||||||
/******/ function __webpack_require__(moduleId) {
|
|
||||||
|
|
||||||
/******/ // Check if module is in cache
|
|
||||||
/******/ if(installedModules[moduleId])
|
|
||||||
/******/ return installedModules[moduleId].exports;
|
|
||||||
|
|
||||||
/******/ // Create a new module (and put it into the cache)
|
|
||||||
/******/ var module = installedModules[moduleId] = {
|
|
||||||
/******/ exports: {},
|
|
||||||
/******/ id: moduleId,
|
|
||||||
/******/ loaded: false
|
|
||||||
/******/ };
|
|
||||||
|
|
||||||
/******/ // Execute the module function
|
|
||||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
||||||
|
|
||||||
/******/ // Flag the module as loaded
|
|
||||||
/******/ module.loaded = true;
|
|
||||||
|
|
||||||
/******/ // Return the exports of the module
|
|
||||||
/******/ return module.exports;
|
|
||||||
/******/ }
|
|
||||||
|
|
||||||
|
|
||||||
/******/ // expose the modules object (__webpack_modules__)
|
|
||||||
/******/ __webpack_require__.m = modules;
|
|
||||||
|
|
||||||
/******/ // expose the module cache
|
|
||||||
/******/ __webpack_require__.c = installedModules;
|
|
||||||
|
|
||||||
/******/ // __webpack_public_path__
|
|
||||||
/******/ __webpack_require__.p = "";
|
|
||||||
|
|
||||||
/******/ // Load entry module and return exports
|
|
||||||
/******/ return __webpack_require__(0);
|
|
||||||
/******/ })
|
|
||||||
/************************************************************************/
|
|
||||||
/******/ ([
|
|
||||||
/* 0 */
|
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
|
||||||
|
|
||||||
var baseConvert = __webpack_require__(1);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last version.
|
|
||||||
*
|
|
||||||
* @param {Function} lodash The lodash function.
|
|
||||||
* @returns {Function} Returns the converted `lodash`.
|
|
||||||
*/
|
|
||||||
function browserConvert(lodash) {
|
|
||||||
return baseConvert(lodash, lodash);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = browserConvert;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ },
|
|
||||||
/* 1 */
|
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
|
||||||
|
|
||||||
var mapping = __webpack_require__(2),
|
|
||||||
mutateMap = mapping.mutate,
|
|
||||||
placeholder = {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The base implementation of `convert` which accepts a `util` object of methods
|
|
||||||
* required to perform conversions.
|
|
||||||
*
|
|
||||||
* @param {Object} util The util object.
|
|
||||||
* @param {string} name The name of the function to wrap.
|
|
||||||
* @param {Function} func The function to wrap.
|
|
||||||
* @returns {Function|Object} Returns the converted function or object.
|
|
||||||
*/
|
|
||||||
function baseConvert(util, name, func) {
|
|
||||||
if (typeof func != 'function') {
|
|
||||||
func = name;
|
|
||||||
name = undefined;
|
|
||||||
}
|
|
||||||
if (func == null) {
|
|
||||||
throw new TypeError;
|
|
||||||
}
|
|
||||||
var isLib = name === undefined && typeof func.VERSION == 'string';
|
|
||||||
|
|
||||||
var _ = isLib ? func : {
|
|
||||||
'ary': util.ary,
|
|
||||||
'cloneDeep': util.cloneDeep,
|
|
||||||
'curry': util.curry,
|
|
||||||
'forEach': util.forEach,
|
|
||||||
'isFunction': util.isFunction,
|
|
||||||
'iteratee': util.iteratee,
|
|
||||||
'keys': util.keys,
|
|
||||||
'rearg': util.rearg
|
|
||||||
};
|
|
||||||
|
|
||||||
var ary = _.ary,
|
|
||||||
cloneDeep = _.cloneDeep,
|
|
||||||
curry = _.curry,
|
|
||||||
each = _.forEach,
|
|
||||||
isFunction = _.isFunction,
|
|
||||||
keys = _.keys,
|
|
||||||
rearg = _.rearg;
|
|
||||||
|
|
||||||
var baseArity = function(func, n) {
|
|
||||||
return n == 2
|
|
||||||
? function(a, b) { return func.apply(undefined, arguments); }
|
|
||||||
: function(a) { return func.apply(undefined, arguments); };
|
|
||||||
};
|
|
||||||
|
|
||||||
var baseAry = function(func, n) {
|
|
||||||
return n == 2
|
|
||||||
? function(a, b) { return func(a, b); }
|
|
||||||
: function(a) { return func(a); };
|
|
||||||
};
|
|
||||||
|
|
||||||
var cloneArray = function(array) {
|
|
||||||
var length = array ? array.length : 0,
|
|
||||||
result = Array(length);
|
|
||||||
|
|
||||||
while (length--) {
|
|
||||||
result[length] = array[length];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
var createCloner = function(func) {
|
|
||||||
return function(object) {
|
|
||||||
return func({}, object);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var immutWrap = function(func, cloner) {
|
|
||||||
return overArg(func, cloner, true);
|
|
||||||
};
|
|
||||||
|
|
||||||
var iterateeAry = function(func, n) {
|
|
||||||
return overArg(func, function(func) {
|
|
||||||
return baseAry(func, n);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var iterateeRearg = function(func, indexes) {
|
|
||||||
return overArg(func, function(func) {
|
|
||||||
var n = indexes.length;
|
|
||||||
return baseArity(rearg(baseAry(func, n), indexes), n);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var overArg = function(func, iteratee, retArg) {
|
|
||||||
return function() {
|
|
||||||
var length = arguments.length,
|
|
||||||
args = Array(length);
|
|
||||||
|
|
||||||
while (length--) {
|
|
||||||
args[length] = arguments[length];
|
|
||||||
}
|
|
||||||
args[0] = iteratee(args[0]);
|
|
||||||
var result = func.apply(undefined, args);
|
|
||||||
return retArg ? args[0] : result;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var wrappers = {
|
|
||||||
'iteratee': function(iteratee) {
|
|
||||||
return function() {
|
|
||||||
var func = arguments[0],
|
|
||||||
arity = arguments[1];
|
|
||||||
|
|
||||||
arity = arity > 2 ? (arity - 2) : 1;
|
|
||||||
func = iteratee(func);
|
|
||||||
var length = func.length;
|
|
||||||
return (length && length <= arity) ? func : baseAry(func, arity);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
'mixin': function(mixin) {
|
|
||||||
return function(source) {
|
|
||||||
var func = this;
|
|
||||||
if (!isFunction(func)) {
|
|
||||||
return mixin(func, Object(source));
|
|
||||||
}
|
|
||||||
var methods = [],
|
|
||||||
methodNames = [];
|
|
||||||
|
|
||||||
each(keys(source), function(key) {
|
|
||||||
var value = source[key];
|
|
||||||
if (isFunction(value)) {
|
|
||||||
methodNames.push(key);
|
|
||||||
methods.push(func.prototype[key]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mixin(func, Object(source));
|
|
||||||
|
|
||||||
each(methodNames, function(methodName, index) {
|
|
||||||
var method = methods[index];
|
|
||||||
if (isFunction(method)) {
|
|
||||||
func.prototype[methodName] = method;
|
|
||||||
} else {
|
|
||||||
delete func.prototype[methodName];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return func;
|
|
||||||
};
|
|
||||||
},
|
|
||||||
'runInContext': function(runInContext) {
|
|
||||||
return function(context) {
|
|
||||||
return baseConvert(util, runInContext(context));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var wrap = function(name, func) {
|
|
||||||
var wrapper = wrappers[name];
|
|
||||||
if (wrapper) {
|
|
||||||
return wrapper(func);
|
|
||||||
}
|
|
||||||
if (mutateMap.array[name]) {
|
|
||||||
func = immutWrap(func, cloneArray);
|
|
||||||
}
|
|
||||||
else if (mutateMap.object[name]) {
|
|
||||||
func = immutWrap(func, createCloner(func));
|
|
||||||
}
|
|
||||||
else if (mutateMap.set[name]) {
|
|
||||||
func = immutWrap(func, cloneDeep);
|
|
||||||
}
|
|
||||||
var result;
|
|
||||||
each(mapping.caps, function(cap) {
|
|
||||||
each(mapping.aryMethod[cap], function(otherName) {
|
|
||||||
if (name == otherName) {
|
|
||||||
var indexes = mapping.iterateeRearg[name],
|
|
||||||
n = !isLib && mapping.aryIteratee[name];
|
|
||||||
|
|
||||||
result = ary(func, cap);
|
|
||||||
if (cap > 1 && !mapping.skipRearg[name]) {
|
|
||||||
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[cap]);
|
|
||||||
}
|
|
||||||
if (indexes) {
|
|
||||||
result = iterateeRearg(result, indexes);
|
|
||||||
} else if (n) {
|
|
||||||
result = iterateeAry(result, n);
|
|
||||||
}
|
|
||||||
if (cap > 1) {
|
|
||||||
result = curry(result, cap);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return !result;
|
|
||||||
});
|
|
||||||
|
|
||||||
result || (result = func);
|
|
||||||
if (mapping.placeholder[name]) {
|
|
||||||
result.placeholder = placeholder;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!isLib) {
|
|
||||||
return wrap(name, func);
|
|
||||||
}
|
|
||||||
// Iterate over methods for the current ary cap.
|
|
||||||
var pairs = [];
|
|
||||||
each(mapping.caps, function(cap) {
|
|
||||||
each(mapping.aryMethod[cap], function(key) {
|
|
||||||
var func = _[mapping.key[key] || key];
|
|
||||||
if (func) {
|
|
||||||
pairs.push([key, wrap(key, func)]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
|
|
||||||
each(pairs, function(pair) {
|
|
||||||
_[pair[0]] = pair[1];
|
|
||||||
});
|
|
||||||
|
|
||||||
// Wrap the lodash method and its aliases.
|
|
||||||
each(keys(_), function(key) {
|
|
||||||
each(mapping.alias[key] || [], function(alias) {
|
|
||||||
_[alias] = _[key];
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return _;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = baseConvert;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ },
|
|
||||||
/* 2 */
|
|
||||||
/***/ function(module, exports) {
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
|
|
||||||
/** Used to map method names to their aliases. */
|
|
||||||
'alias': {
|
|
||||||
'ary': ['nAry'],
|
|
||||||
'assignIn': ['extend'],
|
|
||||||
'assignInWith': ['extendWith'],
|
|
||||||
'filter': ['whereEq'],
|
|
||||||
'flatten': ['unnest'],
|
|
||||||
'flow': ['pipe'],
|
|
||||||
'flowRight': ['compose'],
|
|
||||||
'forEach': ['each'],
|
|
||||||
'forEachRight': ['eachRight'],
|
|
||||||
'get': ['path', 'prop'],
|
|
||||||
'getOr': ['pathOr', 'propOr'],
|
|
||||||
'head': ['first'],
|
|
||||||
'includes': ['contains'],
|
|
||||||
'initial': ['init'],
|
|
||||||
'isEqual': ['equals'],
|
|
||||||
'mapValues': ['mapObj'],
|
|
||||||
'matchesProperty': ['pathEq'],
|
|
||||||
'omit': ['dissoc', 'omitAll'],
|
|
||||||
'overArgs': ['useWith'],
|
|
||||||
'overEvery': ['allPass'],
|
|
||||||
'overSome': ['somePass'],
|
|
||||||
'pick': ['pickAll'],
|
|
||||||
'propertyOf': ['propOf'],
|
|
||||||
'rest': ['unapply'],
|
|
||||||
'some': ['all'],
|
|
||||||
'spread': ['apply'],
|
|
||||||
'zipObject': ['zipObj']
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to their iteratee ary. */
|
|
||||||
'aryIteratee': {
|
|
||||||
'assignWith': 2,
|
|
||||||
'assignInWith': 2,
|
|
||||||
'cloneDeepWith': 1,
|
|
||||||
'cloneWith': 1,
|
|
||||||
'dropRightWhile': 1,
|
|
||||||
'dropWhile': 1,
|
|
||||||
'every': 1,
|
|
||||||
'filter': 1,
|
|
||||||
'find': 1,
|
|
||||||
'findIndex': 1,
|
|
||||||
'findKey': 1,
|
|
||||||
'findLast': 1,
|
|
||||||
'findLastIndex': 1,
|
|
||||||
'findLastKey': 1,
|
|
||||||
'flatMap': 1,
|
|
||||||
'forEach': 1,
|
|
||||||
'forEachRight': 1,
|
|
||||||
'forIn': 1,
|
|
||||||
'forInRight': 1,
|
|
||||||
'forOwn': 1,
|
|
||||||
'forOwnRight': 1,
|
|
||||||
'isEqualWith': 2,
|
|
||||||
'isMatchWith': 2,
|
|
||||||
'map': 1,
|
|
||||||
'mapKeys': 1,
|
|
||||||
'mapValues': 1,
|
|
||||||
'partition': 1,
|
|
||||||
'reduce': 2,
|
|
||||||
'reduceRight': 2,
|
|
||||||
'reject': 1,
|
|
||||||
'remove': 1,
|
|
||||||
'some': 1,
|
|
||||||
'takeRightWhile': 1,
|
|
||||||
'takeWhile': 1,
|
|
||||||
'times': 1,
|
|
||||||
'transform': 2
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map ary to method names. */
|
|
||||||
'aryMethod': {
|
|
||||||
1:[
|
|
||||||
'attempt', 'ceil', 'create', 'curry', 'curryRight', 'floor', 'fromPairs',
|
|
||||||
'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin', 'over',
|
|
||||||
'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
|
|
||||||
'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
|
|
||||||
],
|
|
||||||
2:[
|
|
||||||
'add', 'after', 'ary', 'assign', 'at', 'before', 'bind', 'bindKey',
|
|
||||||
'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
|
||||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
|
||||||
'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
|
||||||
'every', 'extend', 'filter', 'find', 'find', 'findIndex', 'findKey',
|
|
||||||
'findLast', 'findLastIndex', 'findLastKey', 'flatMap', 'forEach',
|
|
||||||
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
|
||||||
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
|
||||||
'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf',
|
|
||||||
'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', 'maxBy',
|
|
||||||
'merge', 'minBy', 'omit', 'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd',
|
|
||||||
'padStart', 'parseInt', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
|
|
||||||
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
|
||||||
'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
|
||||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
|
||||||
'split', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', 'takeRightWhile',
|
|
||||||
'takeWhile', 'tap', 'throttle', 'thru', 'times', 'truncate', 'union', 'uniqBy',
|
|
||||||
'uniqWith', 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject'
|
|
||||||
],
|
|
||||||
3:[
|
|
||||||
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
|
||||||
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'isEqualWith',
|
|
||||||
'isMatchWith', 'mergeWith', 'pullAllBy', 'reduce', 'reduceRight', 'replace',
|
|
||||||
'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy',
|
|
||||||
'unionWith', 'xorBy', 'xorWith', 'zipWith'
|
|
||||||
],
|
|
||||||
4:[
|
|
||||||
'fill', 'setWith'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map ary to rearg configs. */
|
|
||||||
'aryRearg': {
|
|
||||||
2: [1, 0],
|
|
||||||
3: [2, 1, 0],
|
|
||||||
4: [3, 2, 0, 1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to iteratee rearg configs. */
|
|
||||||
'iterateeRearg': {
|
|
||||||
'findKey': [1],
|
|
||||||
'findLastKey': [1],
|
|
||||||
'mapKeys': [1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to rearg configs. */
|
|
||||||
'methodRearg': {
|
|
||||||
'clamp': [2, 0, 1],
|
|
||||||
'reduce': [2, 0, 1],
|
|
||||||
'reduceRight': [2, 0, 1],
|
|
||||||
'set': [2, 0, 1],
|
|
||||||
'setWith': [3, 1, 2, 0],
|
|
||||||
'slice': [2, 0, 1],
|
|
||||||
'transform': [2, 0, 1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to iterate `mapping.aryMethod` keys. */
|
|
||||||
'caps': [1, 2, 3, 4],
|
|
||||||
|
|
||||||
/** Used to map keys to other keys. */
|
|
||||||
'key': {
|
|
||||||
'curryN': 'curry',
|
|
||||||
'curryRightN': 'curryRight',
|
|
||||||
'getOr': 'get'
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to identify methods which mutate arrays or objects. */
|
|
||||||
'mutate': {
|
|
||||||
'array': {
|
|
||||||
'fill': true,
|
|
||||||
'pull': true,
|
|
||||||
'pullAll': true,
|
|
||||||
'pullAllBy': true,
|
|
||||||
'pullAt': true,
|
|
||||||
'remove': true,
|
|
||||||
'reverse': true
|
|
||||||
},
|
|
||||||
'object': {
|
|
||||||
'assign': true,
|
|
||||||
'assignIn': true,
|
|
||||||
'assignInWith': true,
|
|
||||||
'assignWith': true,
|
|
||||||
'defaults': true,
|
|
||||||
'defaultsDeep': true,
|
|
||||||
'merge': true,
|
|
||||||
'mergeWith': true
|
|
||||||
},
|
|
||||||
'set': {
|
|
||||||
'set': true,
|
|
||||||
'setWith': true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to track methods with placeholder support */
|
|
||||||
'placeholder': {
|
|
||||||
'bind': true,
|
|
||||||
'bindKey': true,
|
|
||||||
'curry': true,
|
|
||||||
'curryRight': true,
|
|
||||||
'partial': true,
|
|
||||||
'partialRight': true
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to track methods that skip `_.rearg`. */
|
|
||||||
'skipRearg': {
|
|
||||||
'assign': true,
|
|
||||||
'assignIn': true,
|
|
||||||
'concat': true,
|
|
||||||
'defaults': true,
|
|
||||||
'defaultsDeep': true,
|
|
||||||
'difference': true,
|
|
||||||
'matchesProperty': true,
|
|
||||||
'merge': true,
|
|
||||||
'random': true,
|
|
||||||
'range': true,
|
|
||||||
'rangeRight': true,
|
|
||||||
'zip': true,
|
|
||||||
'zipObject': true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }
|
|
||||||
/******/ ])
|
|
||||||
});
|
|
||||||
;
|
|
||||||
11
dist/lodash.fp.min.js
vendored
11
dist/lodash.fp.min.js
vendored
@@ -1,11 +0,0 @@
|
|||||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.fp=t():e.fp=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){function n(e){return i(e,e)}var i=r(1);e.exports=n},function(e,t,r){function n(e,t,r){
|
|
||||||
if("function"!=typeof r&&(r=t,t=void 0),null==r)throw new TypeError;var u=void 0===t&&"string"==typeof r.VERSION,s=u?r:{ary:e.ary,cloneDeep:e.cloneDeep,curry:e.curry,forEach:e.forEach,isFunction:e.isFunction,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg},c=s.ary,f=s.cloneDeep,p=s.curry,l=s.forEach,h=s.isFunction,d=s.keys,y=s.rearg,g=function(e,t){return 2==t?function(t,r){return e.apply(void 0,arguments)}:function(t){return e.apply(void 0,arguments)}},m=function(e,t){return 2==t?function(t,r){return e(t,r);
|
|
||||||
}:function(t){return e(t)}},v=function(e){for(var t=e?e.length:0,r=Array(t);t--;)r[t]=e[t];return r},W=function(e){return function(t){return e({},t)}},R=function(e,t){return O(e,t,!0)},x=function(e,t){return O(e,function(e){return m(e,t)})},I=function(e,t){return O(e,function(e){var r=t.length;return g(y(m(e,r),t),r)})},O=function(e,t,r){return function(){for(var n=arguments.length,i=Array(n);n--;)i[n]=arguments[n];i[0]=t(i[0]);var a=e.apply(void 0,i);return r?i[0]:a}},k={iteratee:function(e){return function(){
|
|
||||||
var t=arguments[0],r=arguments[1];r=r>2?r-2:1,t=e(t);var n=t.length;return n&&r>=n?t:m(t,r)}},mixin:function(e){return function(t){var r=this;if(!h(r))return e(r,Object(t));var n=[],i=[];return l(d(t),function(e){var a=t[e];h(a)&&(i.push(e),n.push(r.prototype[e]))}),e(r,Object(t)),l(i,function(e,t){var i=n[t];h(i)?r.prototype[e]=i:delete r.prototype[e]}),r}},runInContext:function(t){return function(r){return n(e,t(r))}}},E=function(e,t){var r=k[e];if(r)return r(t);a.array[e]?t=R(t,v):a.object[e]?t=R(t,W(t)):a.set[e]&&(t=R(t,f));
|
|
||||||
var n;return l(i.caps,function(r){return l(i.aryMethod[r],function(a){if(e==a){var o=i.iterateeRearg[e],s=!u&&i.aryIteratee[e];return n=c(t,r),r>1&&!i.skipRearg[e]&&(n=y(n,i.methodRearg[e]||i.aryRearg[r])),o?n=I(n,o):s&&(n=x(n,s)),r>1&&(n=p(n,r)),!1}}),!n}),n||(n=t),i.placeholder[e]&&(n.placeholder=o),n};if(!u)return E(t,r);var B=[];return l(i.caps,function(e){l(i.aryMethod[e],function(e){var t=s[i.key[e]||e];t&&B.push([e,E(e,t)])})}),l(B,function(e){s[e[0]]=e[1]}),l(d(s),function(e){l(i.alias[e]||[],function(t){
|
|
||||||
s[t]=s[e]})}),s}var i=r(2),a=i.mutate,o={};e.exports=n},function(e,t){e.exports={alias:{ary:["nAry"],assignIn:["extend"],assignInWith:["extendWith"],filter:["whereEq"],flatten:["unnest"],flow:["pipe"],flowRight:["compose"],forEach:["each"],forEachRight:["eachRight"],get:["path","prop"],getOr:["pathOr","propOr"],head:["first"],includes:["contains"],initial:["init"],isEqual:["equals"],mapValues:["mapObj"],matchesProperty:["pathEq"],omit:["dissoc","omitAll"],overArgs:["useWith"],overEvery:["allPass"],
|
|
||||||
overSome:["somePass"],pick:["pickAll"],propertyOf:["propOf"],rest:["unapply"],some:["all"],spread:["apply"],zipObject:["zipObj"]},aryIteratee:{assignWith:2,assignInWith:2,cloneDeepWith:1,cloneWith:1,dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findIndex:1,findKey:1,findLast:1,findLastIndex:1,findLastKey:1,flatMap:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,isEqualWith:2,isMatchWith:2,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,
|
|
||||||
some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},aryMethod:{1:["attempt","ceil","create","curry","curryRight","floor","fromPairs","invert","iteratee","memoize","method","methodOf","mixin","over","overEvery","overSome","rest","reverse","round","runInContext","template","trim","trimEnd","trimStart","uniqueId","words"],2:["add","after","ary","assign","at","before","bind","bindKey","chunk","cloneDeepWith","cloneWith","concat","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","delay","difference","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","extend","filter","find","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","merge","minBy","omit","omitBy","orderBy","overArgs","pad","padEnd","padStart","parseInt","partition","pick","pickBy","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject"],
|
|
||||||
3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","getOr","inRange","intersectionBy","intersectionWith","isEqualWith","isMatchWith","mergeWith","pullAllBy","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","xorBy","xorWith","zipWith"],4:["fill","setWith"]},aryRearg:{2:[1,0],3:[2,1,0],4:[3,2,0,1]},iterateeRearg:{findKey:[1],findLastKey:[1],mapKeys:[1]},methodRearg:{clamp:[2,0,1],reduce:[2,0,1],reduceRight:[2,0,1],
|
|
||||||
set:[2,0,1],setWith:[3,1,2,0],slice:[2,0,1],transform:[2,0,1]},caps:[1,2,3,4],key:{curryN:"curry",curryRightN:"curryRight",getOr:"get"},mutate:{array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignIn:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsDeep:!0,merge:!0,mergeWith:!0},set:{set:!0,setWith:!0}},placeholder:{bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},skipRearg:{assign:!0,assignIn:!0,concat:!0,defaults:!0,defaultsDeep:!0,
|
|
||||||
difference:!0,matchesProperty:!0,merge:!0,random:!0,range:!0,rangeRight:!0,zip:!0,zipObject:!0}}}])});
|
|
||||||
14430
dist/lodash.js
vendored
14430
dist/lodash.js
vendored
File diff suppressed because it is too large
Load Diff
118
dist/lodash.min.js
vendored
118
dist/lodash.min.js
vendored
@@ -1,118 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* lodash 4.0.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
|
|
||||||
* Build: `lodash -o ./dist/lodash.js`
|
|
||||||
*/
|
|
||||||
;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r?r.length:0){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t){for(var r=-1,e=n.length;++r<e&&false!==t(n[r],r,n););return n}function u(n,t){for(var r=-1,e=n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function o(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];t(i,r,n)&&(o[++u]=i);
|
|
||||||
}return o}function i(n,t){return!!n.length&&-1<v(n,t,0)}function f(n,t,r){for(var e=-1,u=n.length;++e<u;)if(r(t,n[e]))return true;return false}function c(n,t){for(var r=-1,e=n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function a(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function l(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function s(n,t,r,e){var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function h(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;
|
|
||||||
return false}function p(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(f===Z?i===i:r(i,f)))var f=i,c=o}return c}function _(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0}),u}function g(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u<e;)if(t(n[u],u,n))return u;return-1}function v(n,t,r){if(t!==t)return W(n,r);--r;for(var e=n.length;++r<e;)if(n[r]===t)return r;return-1}function d(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function y(n,t){
|
|
||||||
var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function b(n,t){for(var r,e=-1,u=n.length;++e<u;){var o=t(n[e]);o!==Z&&(r=r===Z?o:r+o)}return r}function x(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function m(n,t){return c(t,function(t){return[t,n[t]]})}function j(n){return function(t){return n(t)}}function w(n,t){return c(t,function(t){return n[t]})}function A(n,t){for(var r=-1,e=n.length;++r<e&&-1<v(t,n[r],0););return r}function O(n,t){for(var r=n.length;r--&&-1<v(t,n[r],0););
|
|
||||||
return r}function E(n){return n&&n.Object===Object?n:null}function k(n,t){if(n!==t){var r=null===n,e=n===Z,u=n===n,o=null===t,i=t===Z,f=t===t;if(n>t&&!o||!u||r&&!i&&f||e&&f)return 1;if(t>n&&!r||!f||o&&!e&&u||i&&u)return-1}return 0}function I(n){return Un[n]}function R(n){return Bn[n]}function S(n){return"\\"+$n[n]}function W(n,t,r){var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function C(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}
|
|
||||||
return t}function U(n,t){return n=typeof n=="number"||dn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function B(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function z(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function L(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;)n[r]===t&&(n[r]="__lodash_placeholder__",o[++u]=r);return o}function $(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function F(n){if(!n||!En.test(n))return n.length;
|
|
||||||
for(var t=On.lastIndex=0;On.test(n);)t++;return t}function M(n){return zn[n]}function N(E){function dn(n){if(_e(n)&&!Wo(n)&&!(n instanceof wn)){if(n instanceof jn)return n;if(tu.call(n,"__wrapped__"))return zr(n)}return new jn(n)}function mn(){}function jn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=Z}function wn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[];
|
|
||||||
}function Un(){}function Bn(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function zn(n){var t=-1,r=n?n.length:0;for(this.__data__=new Bn;++t<r;)this.push(n[t])}function Ln(n,t){var r=n.__data__;return kr(t)?(r=r.__data__,"__lodash_hash_undefined__"===(typeof t=="string"?r.string:r.hash)[t]):r.has(t)}function $n(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Nn(n,t){var r=Dn(n,t);return 0>r?false:(r==n.length-1?n.pop():du.call(n,r,1),
|
|
||||||
!0)}function Zn(n,t){var r=Dn(n,t);return 0>r?Z:n[r][1]}function Dn(n,t){for(var r=n.length;r--;)if(ue(n[r][0],t))return r;return-1}function qn(n,t,r){var e=Dn(n,t);0>e?n.push([t,r]):n[e][1]=r}function Pn(n,t,r,e){return n===Z||ue(n,Xe[r])&&!tu.call(e,r)?t:n}function Tn(n,t,r){(r!==Z&&!ue(n[t],r)||typeof t=="number"&&r===Z&&!(t in n))&&(n[t]=r)}function Vn(n,t,r){var e=n[t];(!ue(e,r)||ue(e,Xe[t])&&!tu.call(n,t)||r===Z&&!(t in n))&&(n[t]=r)}function Jn(n,t){return n&&Tt(t,Ce(t),n)}function Yn(n,t){
|
|
||||||
for(var r=-1,e=null==n,u=t.length,o=Array(u);++r<u;)o[r]=e?Z:Re(n,t[r]);return o}function Hn(n,t,r){return n===n&&(r!==Z&&(n=n>r?r:n),t!==Z&&(n=t>n?t:n)),n}function Qn(n,t,r,u,o,i){var f;if(r&&(f=o?r(n,u,o,i):r(n)),f!==Z)return f;if(!pe(n))return n;if(u=Wo(n)){if(f=mr(n),!t)return Pt(n,f)}else{var c=br(n),a="[object Function]"==c||"[object GeneratorFunction]"==c;if("[object Object]"!=c&&"[object Arguments]"!=c&&(!a||o))return Cn[c]?wr(n,c,t):o?n:{};if(C(n))return o?n:{};if(f=jr(a?{}:n),!t)return Gt(n,Jn(f,n));
|
|
||||||
}return i||(i=new $n),(o=i.get(n))?o:(i.set(n,f),(u?e:it)(n,function(e,u){Vn(f,u,Qn(e,t,r,u,n,i))}),u?f:Gt(n,f))}function Xn(n){var t=Ce(n),r=t.length;return function(e){if(null==e)return!r;for(var u=r;u--;){var o=t[u],i=n[o],f=e[o];if(f===Z&&!(o in Object(e))||!i(f))return false}return true}}function nt(n,t,r){if(typeof n!="function")throw new He("Expected a function");return vu(function(){n.apply(Z,r)},t)}function tt(n,t,r,e){var u=-1,o=i,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,j(r))),
|
|
||||||
e?(o=f,a=false):t.length>=200&&(o=Ln,a=false,t=new zn(t));n:for(;++u<l;){var p=n[u],_=r?r(p):p;if(a&&_===_){for(var g=h;g--;)if(t[g]===_)continue n;s.push(p)}else o(t,_,e)||s.push(p)}return s}function rt(n,t){var r=true;return Nu(n,function(n,e,u){return r=!!t(n,e,u)}),r}function et(n,t){var r=[];return Nu(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function ut(n,t,r,e){e||(e=[]);for(var u=-1,o=n.length;++u<o;){var i=n[u];ce(i)&&(r||Wo(i)||ie(i))?t?ut(i,t,r,e):a(e,i):r||(e[e.length]=i)}return e}function ot(n,t){
|
|
||||||
null==n||Du(n,t,Ue)}function it(n,t){return n&&Du(n,t,Ce)}function ft(n,t){return n&&qu(n,t,Ce)}function ct(n,t){return o(t,function(t){return le(n[t])})}function at(n,t){t=Er(t,n)?[t+""]:Lt(t);for(var r=0,e=t.length;null!=n&&e>r;)n=n[t[r++]];return r&&r==e?n:Z}function lt(n,t){return tu.call(n,t)||typeof n=="object"&&t in n&&null===hu(n)}function st(n,t){return t in Object(n)}function ht(n,t,r){for(var e=r?f:i,u=n.length,o=u,a=Array(u),l=[];o--;){var s=n[o];o&&t&&(s=c(s,j(t))),a[o]=r||!t&&120>s.length?Z:new zn(o&&s);
|
|
||||||
}var s=n[0],h=-1,p=s.length,_=a[0];n:for(;++h<p;){var g=s[h],v=t?t(g):g;if(_?!Ln(_,v):!e(l,v,r)){for(o=u;--o;){var d=a[o];if(d?!Ln(d,v):!e(n[o],v,r))continue n}_&&_.push(v),l.push(g)}}return l}function pt(n,t,e){return Er(t,n)||(t=Lt(t),n=Wr(n,t),t=Mr(t)),t=null==n?n:n[t],null==t?Z:r(t,n,e)}function _t(n,t,r,e,u){if(n===t)n=true;else if(null==n||null==t||!pe(n)&&!_e(t))n=n!==n&&t!==t;else n:{var o=Wo(n),i=Wo(t),f="[object Array]",c="[object Array]";o||(f=br(n),"[object Arguments]"==f?f="[object Object]":"[object Object]"!=f&&(o=me(n))),
|
|
||||||
i||(c=br(t),"[object Arguments]"==c?c="[object Object]":"[object Object]"!=c&&me(t));var a="[object Object]"==f&&!C(n),i="[object Object]"==c&&!C(t),c=f==c;if(!c||o||a){if(!(2&e)&&(f=a&&tu.call(n,"__wrapped__"),i=i&&tu.call(t,"__wrapped__"),f||i)){n=_t(f?n.value():n,i?t.value():t,r,e,u);break n}c?(u||(u=new $n),n=(o?hr:_r)(n,t,_t,r,e,u)):n=false}else n=pr(n,t,f,_t,r,e)}return n}function gt(n,t,r,e){var u=r.length,o=u,i=!e;if(null==n)return!o;for(n=Object(n);u--;){var f=r[u];if(i&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false;
|
|
||||||
}for(;++u<o;){var f=r[u],c=f[0],a=n[c],l=f[1];if(i&&f[2]){if(a===Z&&!(c in n))return false}else if(f=new $n,c=e?e(a,l,c,n,t,f):Z,c===Z?!_t(l,a,e,3,f):!c)return false}return true}function vt(n){var t=typeof n;return"function"==t?n:null==n?Ne:"object"==t?Wo(n)?xt(n[0],n[1]):bt(n):Te(n)}function dt(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function yt(n,t){var r=-1,e=fe(n)?Array(n.length):[];return Nu(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function bt(n){var t=dr(n);if(1==t.length&&t[0][2]){
|
|
||||||
var r=t[0][0],e=t[0][1];return function(n){return null==n?false:n[r]===e&&(e!==Z||r in Object(n))}}return function(r){return r===n||gt(r,n,t)}}function xt(n,t){return function(r){var e=Re(r,n);return e===Z&&e===t?We(r,n):_t(t,e,Z,3)}}function mt(n,t,r,u,o){if(n!==t){var i=Wo(t)||me(t)?Z:Ue(t);e(i||t,function(e,f){if(i&&(f=e,e=t[f]),pe(e)){o||(o=new $n);var c=f,a=o,l=n[c],s=t[c],h=a.get(s)||a.get(l);if(h)Tn(n,c,h);else{var h=u?u(l,s,c+"",n,t,a):Z,p=h===Z;p&&(h=s,Wo(s)||me(s)?h=Wo(l)?r?Pt(l):l:ce(l)?Pt(l):Qn(s):de(s)||ie(s)?h=ie(l)?ke(l):!pe(l)||r&&le(l)?Qn(s):r?Qn(l):l:p=false),
|
|
||||||
a.set(s,h),p&&mt(h,s,r,u,a),Tn(n,c,h)}}else c=u?u(n[f],e,f+"",n,t,o):Z,c===Z&&(c=e),Tn(n,f,c)})}}function jt(n,t,r){var e=-1,u=vr();return t=c(t.length?t:Array(1),function(n){return u(n)}),n=yt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),y(n,function(n,t){var e;n:{e=-1;for(var u=n.a,o=t.a,i=u.length,f=r.length;++e<i;){var c=k(u[e],o[e]);if(c){e=f>e?c*("desc"==r[e]?-1:1):c;break n}}e=n.b-t.b}return e})}function wt(n,t){return n=Object(n),l(t,function(t,r){return r in n&&(t[r]=n[r]),
|
|
||||||
t},{})}function At(n,t){var r={};return ot(n,function(n,e){t(n,e)&&(r[e]=n)}),r}function Ot(n){return function(t){return null==t?Z:t[n]}}function Et(n){return function(t){return at(t,n)}}function kt(n,t,r){var e=-1,u=t.length,o=n;for(r&&(o=c(n,function(n){return r(n)}));++e<u;)for(var i=0,f=t[e],f=r?r(f):f;-1<(i=v(o,f,i));)o!==n&&du.call(o,i,1),du.call(n,i,1);return n}function It(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(e==r||u!=o){var o=u;if(U(u))du.call(n,u,1);else if(Er(u,n))delete n[u];else{
|
|
||||||
var u=Lt(u),i=Wr(n,u);null!=i&&delete i[Mr(u)]}}}}function Rt(n,t){return n+bu(Eu()*(t-n+1))}function St(n,t,r,e){t=Er(t,n)?[t+""]:Lt(t);for(var u=-1,o=t.length,i=o-1,f=n;null!=f&&++u<o;){var c=t[u];if(pe(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):Z;a===Z&&(a=null==l?U(t[u+1])?[]:{}:l)}Vn(f,c,a)}f=f[c]}return n}function Wt(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function Ct(n,t){var r;return Nu(n,function(n,e,u){
|
|
||||||
return r=t(n,e,u),!r}),!!r}function Ut(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&2147483647>=u){for(;u>e;){var o=e+u>>>1,i=n[o];(r?t>=i:t>i)&&null!==i?e=o+1:u=o}return u}return Bt(n,t,Ne,r)}function Bt(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,f=null===t,c=t===Z;o>u;){var a=bu((u+o)/2),l=r(n[a]),s=l!==Z,h=l===l;(i?h||e:f?h&&s&&(e||null!=l):c?h&&(e||s):null==l?0:e?t>=l:t>l)?u=a+1:o=a}return Au(o,4294967294)}function zt(n,t){for(var r=0,e=n.length,u=n[0],o=t?t(u):u,i=o,f=0,c=[u];++r<e;)u=n[r],
|
|
||||||
o=t?t(u):u,ue(o,i)||(i=o,c[++f]=u);return c}function Lt(n){return Wo(n)?n:Cr(n)}function $t(n,t,r){var e=-1,u=i,o=n.length,c=true,a=[],l=a;if(r)c=false,u=f;else if(o<200)l=t?[]:a;else{if(u=t?null:Tu(n))return $(u);c=false,u=Ln,l=new zn}n:for(;++e<o;){var s=n[e],h=t?t(s):s;if(c&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function Ft(n,t,r,e){for(var u=n.length,o=e?u:-1;(e?o--:++o<u)&&t(n[o],o,n););return r?Wt(n,e?0:o,e?o+1:u):Wt(n,e?o+1:0,e?u:o);
|
|
||||||
}function Mt(n,t){var r=n;return r instanceof wn&&(r=r.value()),l(t,function(n,t){return t.func.apply(t.thisArg,a([n],t.args))},r)}function Nt(n,t,r){for(var e=-1,u=n.length;++e<u;)var o=o?a(tt(o,n[e],t,r),tt(n[e],o,t,r)):n[e];return o&&o.length?$t(o,t,r):[]}function Zt(n){var t=new n.constructor(n.byteLength);return new au(t).set(new au(n)),t}function Dt(n,t,r){for(var e=r.length,u=-1,o=wu(n.length-e,0),i=-1,f=t.length,c=Array(f+o);++i<f;)c[i]=t[i];for(;++u<e;)c[r[u]]=n[u];for(;o--;)c[i++]=n[u++];
|
|
||||||
return c}function qt(n,t,r){for(var e=-1,u=r.length,o=-1,i=wu(n.length-u,0),f=-1,c=t.length,a=Array(i+c);++o<i;)a[o]=n[o];for(i=o;++f<c;)a[i+f]=t[f];for(;++e<u;)a[i+r[e]]=n[o++];return a}function Pt(n,t){var r=-1,e=n.length;for(t||(t=Array(e));++r<e;)t[r]=n[r];return t}function Tt(n,t,r){return Kt(n,t,r)}function Kt(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],f=e?e(r[i],n[i],i,r,n):n[i];Vn(r,i,f)}return r}function Gt(n,t){return Tt(n,Vu(n),t)}function Vt(n,t){return function(r,e){
|
|
||||||
var u=t?t():{};if(e=vr(e),Wo(r))for(var o=-1,i=r.length;++o<i;){var f=r[o];n(u,f,e(f),r)}else Nu(r,function(t,r,o){n(u,t,e(t),o)});return u}}function Jt(n){return ee(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:Z,i=u>2?r[2]:Z,o=typeof o=="function"?(u--,o):Z;for(i&&Or(r[0],r[1],i)&&(o=3>u?Z:o,u=1),t=Object(t);++e<u;)(i=r[e])&&n(t,i,e,o);return t})}function Yt(n,t){return function(r,e){if(null==r)return r;if(!fe(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););
|
|
||||||
return r}}function Ht(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var f=e[n?i:++u];if(false===r(o[f],f,o))break}return t}}function Qt(n,t,r){function e(){return(this&&this!==Kn&&this instanceof e?o:n).apply(u?r:this,arguments)}var u=1&t,o=tr(n);return e}function Xt(n){return function(t){t=Ie(t);var r=En.test(t)?t.match(On):Z,e=r?r[0]:t.charAt(0);return t=r?r.slice(1).join(""):t.slice(1),e[n]()+t}}function nr(n){return function(t){return l(Me($e(t)),n,"")}}function tr(n){
|
|
||||||
return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=Mu(n.prototype),t=n.apply(r,t);return pe(t)?t:r}}function rr(n,t,e){function u(){for(var i=arguments.length,f=i,c=Array(i),a=this&&this!==Kn&&this instanceof u?o:n,l=u.placeholder;f--;)c[f]=arguments[f];
|
|
||||||
return f=3>i&&c[0]!==l&&c[i-1]!==l?[]:L(c,l),i-=f.length,e>i?ar(n,t,ur,l,Z,c,f,Z,Z,e-i):r(a,this,c)}var o=tr(n);return u}function er(n){return ee(function(t){t=ut(t);var r=t.length,e=r,u=jn.prototype.thru;for(n&&t.reverse();e--;){var o=t[e];if(typeof o!="function")throw new He("Expected a function");if(u&&!i&&"wrapper"==gr(o))var i=new jn([],true)}for(e=i?e:r;++e<r;)var o=t[e],u=gr(o),f="wrapper"==u?Ku(o):Z,i=f&&Ir(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[gr(f[0])].apply(i,f[3]):1==o.length&&Ir(o)?i[u]():i.thru(o);
|
|
||||||
return function(){var n=arguments,e=n[0];if(i&&1==n.length&&Wo(e)&&e.length>=200)return i.plant(e).value();for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function ur(n,t,r,e,u,o,i,f,c,a){function l(){for(var y=arguments.length,b=y,x=Array(y);b--;)x[b]=arguments[b];if(e&&(x=Dt(x,e,u)),o&&(x=qt(x,o,i)),_||g){var b=l.placeholder,m=L(x,b),y=y-m.length;if(a>y)return ar(n,t,ur,b,r,x,m,f,c,a-y)}if(y=h?r:this,b=p?y[n]:n,f)for(var m=x.length,j=Au(f.length,m),w=Pt(x);j--;){var A=f[j];
|
|
||||||
x[j]=U(A,m)?w[A]:Z}else v&&x.length>1&&x.reverse();return s&&x.length>c&&(x.length=c),this&&this!==Kn&&this instanceof l&&(b=d||tr(b)),b.apply(y,x)}var s=128&t,h=1&t,p=2&t,_=8&t,g=16&t,v=512&t,d=p?Z:tr(n);return l}function or(n){return ee(function(t){return t=c(ut(t),vr()),ee(function(e){var u=this;return n(t,function(n){return r(n,u,e)})})})}function ir(n,t,r){return t=Ae(t),n=F(n),t&&t>n?(t-=n,r=r===Z?" ":r+"",n=Fe(r,yu(t/F(r))),En.test(r)?n.match(On).slice(0,t).join(""):n.slice(0,t)):""}function fr(n,t,e,u){
|
|
||||||
function o(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Array(l+c),h=this&&this!==Kn&&this instanceof o?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,i?e:this,s)}var i=1&t,f=tr(n);return o}function cr(n){return function(t,r,e){e&&typeof e!="number"&&Or(t,r,e)&&(r=e=Z),t=Ee(t),t=t===t?t:0,r===Z?(r=t,t=0):r=Ee(r)||0,e=e===Z?r>t?1:-1:Ee(e)||0;var u=-1;r=wu(yu((r-t)/(e||1)),0);for(var o=Array(r);r--;)o[n?r:++u]=t,t+=e;return o}}function ar(n,t,r,e,u,o,i,f,c,a){var l=8&t;f=f?Pt(f):Z;
|
|
||||||
var s=l?i:Z;i=l?Z:i;var h=l?o:Z;return o=l?Z:o,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),t=[n,t,u,h,s,o,i,f,c,a],r=r.apply(Z,t),Ir(n)&&Ju(r,t),r.placeholder=e,r}function lr(n){var t=Je[n];return function(n,r){if(n=Ee(n),r=Ae(r)){var e=(Ie(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(Ie(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function sr(n,t,r,e,u,o,i,f){var c=2&t;if(!c&&typeof n!="function")throw new He("Expected a function");var a=e?e.length:0;if(a||(t&=-97,e=u=Z),i=i===Z?i:wu(Ae(i),0),
|
|
||||||
f=f===Z?f:Ae(f),a-=u?u.length:0,64&t){var l=e,s=u;e=u=Z}var h=c?Z:Ku(n);return o=[n,t,r,e,u,l,s,o,i,f],h&&(r=o[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&h[8]>=o[7].length||384==n&&h[8]>=h[7].length&&8==r,131>t||e)&&(1&n&&(o[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?Dt(e,r,h[4]):Pt(r),o[4]=e?L(o[3],"__lodash_placeholder__"):Pt(h[4])),(r=h[5])&&(e=o[5],o[5]=e?qt(e,r,h[6]):Pt(r),o[6]=e?L(o[5],"__lodash_placeholder__"):Pt(h[6])),(r=h[7])&&(o[7]=Pt(r)),128&n&&(o[8]=null==o[8]?h[8]:Au(o[8],h[8])),
|
|
||||||
null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=t),n=o[0],t=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:n.length:wu(o[9]-a,0),!f&&24&t&&(t&=-25),(h?Pu:Ju)(t&&1!=t?8==t||16==t?rr(n,t,f):32!=t&&33!=t||u.length?ur.apply(Z,o):fr(n,t,r,e):Qt(n,t,r),o)}function hr(n,t,r,e,u,o){var i=-1,f=2&u,c=1&u,a=n.length,l=t.length;if(!(a==l||f&&l>a))return false;if(l=o.get(n))return l==t;for(l=true,o.set(n,t);++i<a;){var s=n[i],p=t[i];if(e)var _=f?e(p,s,i,t,n,o):e(s,p,i,n,t,o);if(_!==Z){if(_)continue;l=false;break}if(c){if(!h(t,function(n){
|
|
||||||
return s===n||r(s,n,e,u,o)})){l=false;break}}else if(s!==p&&!r(s,p,e,u,o)){l=false;break}}return o["delete"](n),l}function pr(n,t,r,e,u,o){switch(r){case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!e(new au(n),new au(t)))break;return true;case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+"";case"[object Map]":var i=z;case"[object Set]":
|
|
||||||
return i||(i=$),(2&o||n.size==t.size)&&e(i(n),i(t),u,1|o);case"[object Symbol]":return!!cu&&Lu.call(n)==Lu.call(t)}return false}function _r(n,t,r,e,u,o){var i=2&u,f=Ce(n),c=f.length,a=Ce(t).length;if(c!=a&&!i)return false;for(var l=c;l--;){var s=f[l];if(!(i?s in t:lt(t,s)))return false}if(a=o.get(n))return a==t;a=true,o.set(n,t);for(var h=i;++l<c;){var s=f[l],p=n[s],_=t[s];if(e)var g=i?e(_,p,s,t,n,o):e(p,_,s,n,t,o);if(g===Z?p!==_&&!r(p,_,e,u,o):!g){a=false;break}h||(h="constructor"==s)}return a&&!h&&(r=n.constructor,
|
|
||||||
e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),o["delete"](n),a}function gr(n){for(var t=n.name+"",r=Fu[t],e=tu.call(Fu,t)?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}function vr(){var n=dn.iteratee||Ze,n=n===Ze?vt:n;return arguments.length?n(arguments[0],arguments[1]):n}function dr(n){n=Be(n);for(var t=n.length;t--;){var r=n[t][1];n[t][2]=r===r&&!pe(r)}return n}function yr(n,t){
|
|
||||||
var r=null==n?Z:n[t];return ge(r)?r:Z}function br(n){return uu.call(n)}function xr(n,t,r){if(null==n)return false;var e=r(n,t);return e||Er(t)||(t=Lt(t),n=Wr(n,t),null!=n&&(t=Mr(t),e=r(n,t))),e||he(n&&n.length)&&U(t,n.length)&&(Wo(n)||be(n)||ie(n))}function mr(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&tu.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function jr(n){return n=n.constructor,Mu(le(n)?n.prototype:Z)}function wr(r,e,u){var o=r.constructor;switch(e){case"[object ArrayBuffer]":
|
|
||||||
return Zt(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return e=r.buffer,new r.constructor(u?Zt(e):e,r.byteOffset,r.length);case"[object Map]":return u=r.constructor,l(z(r),n,new u);case"[object Number]":case"[object String]":return new o(r);
|
|
||||||
case"[object RegExp]":return u=new r.constructor(r.source,sn.exec(r)),u.lastIndex=r.lastIndex,u;case"[object Set]":return u=r.constructor,l($(r),t,new u);case"[object Symbol]":return cu?Object(Lu.call(r)):{}}}function Ar(n){var t=n?n.length:Z;return he(t)&&(Wo(n)||be(n)||ie(n))?x(t,String):null}function Or(n,t,r){if(!pe(r))return false;var e=typeof t;return("number"==e?fe(r)&&U(t,r.length):"string"==e&&t in r)?ue(r[t],n):false}function Er(n,t){return typeof n=="number"?true:!Wo(n)&&(tn.test(n)||!nn.test(n)||null!=t&&n in Object(t));
|
|
||||||
}function kr(n){var t=typeof n;return"number"==t||"boolean"==t||"string"==t&&"__proto__"!==n||null==n}function Ir(n){var t=gr(n),r=dn[t];return typeof r=="function"&&t in wn.prototype?n===r?true:(t=Ku(r),!!t&&n===t[0]):false}function Rr(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||Xe)}function Sr(n,t,r,e,u,o){return pe(n)&&pe(t)&&(o.set(t,n),mt(n,t,Z,Sr,o)),n}function Wr(n,t){return 1==t.length?n:Re(n,Wt(t,0,-1))}function Cr(n){var t=[];return Ie(n).replace(rn,function(n,r,e,u){
|
|
||||||
t.push(e?u.replace(an,"$1"):r||n)}),t}function Ur(n){return ce(n)?n:[]}function Br(n){return typeof n=="function"?n:Ne}function zr(n){if(n instanceof wn)return n.clone();var t=new jn(n.__wrapped__,n.__chain__);return t.__actions__=Pt(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Lr(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Ae(t),Wt(n,0>t?0:t,e)):[]}function $r(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Ae(t),t=e-t,Wt(n,0,0>t?0:t)):[]}function Fr(n){return n?n[0]:Z;
|
|
||||||
}function Mr(n){var t=n?n.length:0;return t?n[t-1]:Z}function Nr(n,t){return n&&n.length&&t&&t.length?kt(n,t):n}function Zr(n){return n?ku.call(n):n}function Dr(n){if(!n||!n.length)return[];var t=0;return n=o(n,function(n){return ce(n)?(t=wu(n.length,t),true):void 0}),x(t,function(t){return c(n,Ot(t))})}function qr(n,t){if(!n||!n.length)return[];var e=Dr(n);return null==t?e:c(e,function(n){return r(t,Z,n)})}function Pr(n){return n=dn(n),n.__chain__=true,n}function Tr(n,t){return t(n)}function Kr(){return this;
|
|
||||||
}function Gr(n,t){return typeof t=="function"&&Wo(n)?e(n,t):Nu(n,Br(t))}function Vr(n,t){var r;if(typeof t=="function"&&Wo(n)){for(r=n.length;r--&&false!==t(n[r],r,n););r=n}else r=Zu(n,Br(t));return r}function Jr(n,t){var r=-1,e=we(n),u=e.length,o=u-1;for(t=Hn(Ae(t),0,u);++r<t;){var u=Rt(r,o),i=e[u];e[u]=e[r],e[r]=i}return e.length=t,e}function Yr(n){if(null==n)return 0;if(fe(n)){var t=n.length;return t&&be(n)?F(n):t}return Ce(n).length}function Hr(n,t,r){return t=r?Z:t,t=n&&null==t?n.length:t,sr(n,128,Z,Z,Z,Z,t);
|
|
||||||
}function Qr(n,t){var r;if(typeof t!="function")throw new He("Expected a function");return n=Ae(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function Xr(n,t,r){return t=r?Z:t,n=sr(n,8,Z,Z,Z,Z,Z,t),n.placeholder=Xr.placeholder,n}function ne(n,t,r){return t=r?Z:t,n=sr(n,16,Z,Z,Z,Z,Z,t),n.placeholder=ne.placeholder,n}function te(n,t,r){function e(){p&&lu(p),a&&lu(a),g=0,c=a=h=p=_=Z}function u(t,r){r&&lu(r),a=p=_=Z,t&&(g=jo(),l=n.apply(h,c),p||a||(c=h=Z))}function o(){var n=t-(jo()-s);
|
|
||||||
0>=n||n>t?u(_,a):p=vu(o,n)}function i(){u(y,p)}function f(){if(c=arguments,s=jo(),h=this,_=y&&(p||!v),false===d)var r=v&&!p;else{a||v||(g=s);var e=d-(s-g),u=0>=e||e>d;u?(a&&(a=lu(a)),g=s,l=n.apply(h,c)):a||(a=vu(i,e))}return u&&p?p=lu(p):p||t===d||(p=vu(o,t)),r&&(u=true,l=n.apply(h,c)),!u||p||a||(c=h=Z),l}var c,a,l,s,h,p,_,g=0,v=false,d=false,y=true;if(typeof n!="function")throw new He("Expected a function");return t=Ee(t)||0,pe(r)&&(v=!!r.leading,d="maxWait"in r&&wu(Ee(r.maxWait)||0,t),y="trailing"in r?!!r.trailing:y),
|
|
||||||
f.cancel=e,f.flush=function(){return(p&&_||a&&y)&&(l=n.apply(h,c)),e(),l},f}function re(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=n.apply(this,e),r.cache=o.set(u,e),e)}if(typeof n!="function"||t&&typeof t!="function")throw new He("Expected a function");return r.cache=new re.Cache,r}function ee(n,t){if(typeof n!="function")throw new He("Expected a function");return t=wu(t===Z?n.length-1:Ae(t),0),function(){for(var e=arguments,u=-1,o=wu(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];
|
|
||||||
switch(t){case 0:return n.call(this,i);case 1:return n.call(this,e[0],i);case 2:return n.call(this,e[0],e[1],i)}for(o=Array(t+1),u=-1;++u<t;)o[u]=e[u];return o[t]=i,r(n,this,o)}}function ue(n,t){return n===t||n!==n&&t!==t}function oe(n,t){return n>t}function ie(n){return ce(n)&&tu.call(n,"callee")&&(!gu.call(n,"callee")||"[object Arguments]"==uu.call(n))}function fe(n){return null!=n&&!(typeof n=="function"&&le(n))&&he(Gu(n))}function ce(n){return _e(n)&&fe(n)}function ae(n){return _e(n)&&typeof n.message=="string"&&"[object Error]"==uu.call(n);
|
|
||||||
}function le(n){return n=pe(n)?uu.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function se(n){return typeof n=="number"&&n==Ae(n)}function he(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function pe(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function _e(n){return!!n&&typeof n=="object"}function ge(n){return null==n?false:le(n)?iu.test(nu.call(n)):_e(n)&&(C(n)?iu:gn).test(n)}function ve(n){return typeof n=="number"||_e(n)&&"[object Number]"==uu.call(n);
|
|
||||||
}function de(n){if(!_e(n)||"[object Object]"!=uu.call(n)||C(n))return false;var t=Xe;return typeof n.constructor=="function"&&(t=hu(n)),null===t?true:(n=t.constructor,typeof n=="function"&&n instanceof n&&nu.call(n)==eu)}function ye(n){return pe(n)&&"[object RegExp]"==uu.call(n)}function be(n){return typeof n=="string"||!Wo(n)&&_e(n)&&"[object String]"==uu.call(n)}function xe(n){return typeof n=="symbol"||_e(n)&&"[object Symbol]"==uu.call(n)}function me(n){return _e(n)&&he(n.length)&&!!Wn[uu.call(n)]}function je(n,t){
|
|
||||||
return t>n}function we(n){if(!n)return[];if(fe(n))return be(n)?n.match(On):Pt(n);if(_u&&n[_u])return B(n[_u]());var t=br(n);return("[object Map]"==t?z:"[object Set]"==t?$:ze)(n)}function Ae(n){if(!n)return 0===n?n:0;if(n=Ee(n),n===D||n===-D)return 1.7976931348623157e308*(0>n?-1:1);var t=n%1;return n===n?t?n-t:n:0}function Oe(n){return n?Hn(Ae(n),0,4294967295):0}function Ee(n){if(pe(n)&&(n=le(n.valueOf)?n.valueOf():n,n=pe(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(on,"");var t=_n.test(n);
|
|
||||||
return t||vn.test(n)?Mn(n.slice(2),t?2:8):pn.test(n)?q:+n}function ke(n){return Tt(n,Ue(n))}function Ie(n){if(typeof n=="string")return n;if(null==n)return"";if(xe(n))return cu?$u.call(n):"";var t=n+"";return"0"==t&&1/n==-D?"-0":t}function Re(n,t,r){return n=null==n?Z:at(n,t),n===Z?r:n}function Se(n,t){return xr(n,t,lt)}function We(n,t){return xr(n,t,st)}function Ce(n){var t=Rr(n);if(!t&&!fe(n))return ju(Object(n));var r,e=Ar(n),u=!!e,e=e||[],o=e.length;for(r in n)!lt(n,r)||u&&("length"==r||U(r,o))||t&&"constructor"==r||e.push(r);
|
|
||||||
return e}function Ue(n){for(var t=-1,r=Rr(n),e=dt(n),u=e.length,o=Ar(n),i=!!o,o=o||[],f=o.length;++t<u;){var c=e[t];i&&("length"==c||U(c,f))||"constructor"==c&&(r||!tu.call(n,c))||o.push(c)}return o}function Be(n){return m(n,Ce(n))}function ze(n){return n?w(n,Ce(n)):[]}function Le(n){return Vo(Ie(n).toLowerCase())}function $e(n){return(n=Ie(n))&&n.replace(yn,I).replace(An,"")}function Fe(n,t){n=Ie(n),t=Ae(t);var r="";if(!n||1>t||t>9007199254740991)return r;do t%2&&(r+=n),t=bu(t/2),n+=n;while(t);return r;
|
|
||||||
}function Me(n,t,r){return n=Ie(n),t=r?Z:t,t===Z&&(t=Rn.test(n)?In:kn),n.match(t)||[]}function Ne(n){return n}function Ze(n){return _e(n)&&!Wo(n)?De(n):vt(n)}function De(n){return bt(Qn(n,true))}function qe(n,t,r){var u=Ce(t),o=ct(t,u);null!=r||pe(t)&&(o.length||!u.length)||(r=t,t=n,n=this,o=ct(t,Ce(t)));var i=pe(r)&&"chain"in r?r.chain:true,f=le(n);return e(o,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=Pt(this.__actions__)).push({
|
|
||||||
func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Pe(){}function Te(n){return Er(n)?Ot(n):Et(n)}function Ke(n){return n&&n.length?b(n,Ne):Z}E=E?Gn.defaults({},E,Gn.pick(Kn,Sn)):Kn;var Ge=E.Date,Ve=E.Error,Je=E.Math,Ye=E.RegExp,He=E.TypeError,Qe=E.Array.prototype,Xe=E.Object.prototype,nu=E.Function.prototype.toString,tu=Xe.hasOwnProperty,ru=0,eu=nu.call(Object),uu=Xe.toString,ou=Kn._,iu=Ye("^"+nu.call(tu).replace(en,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),fu=E.f,cu=E.Symbol,au=E.Uint8Array,lu=E.clearTimeout,su=fu?fu.g:Z,hu=Object.getPrototypeOf,pu=Object.getOwnPropertySymbols,_u=typeof(_u=cu&&cu.iterator)=="symbol"?_u:Z,gu=Xe.propertyIsEnumerable,vu=E.setTimeout,du=Qe.splice,yu=Je.ceil,bu=Je.floor,xu=E.isFinite,mu=Qe.join,ju=Object.keys,wu=Je.max,Au=Je.min,Ou=E.parseInt,Eu=Je.random,ku=Qe.reverse,Iu=yr(E,"Map"),Ru=yr(E,"Set"),Su=yr(E,"WeakMap"),Wu=yr(Object,"create"),Cu=Su&&new Su,Uu=Iu?nu.call(Iu):"",Bu=Ru?nu.call(Ru):"",zu=cu?cu.prototype:Z,Lu=cu?zu.valueOf:Z,$u=cu?zu.toString:Z,Fu={};
|
|
||||||
dn.templateSettings={escape:H,evaluate:Q,interpolate:X,variable:"",imports:{_:dn}};var Mu=function(){function n(){}return function(t){if(pe(t)){n.prototype=t;var r=new n;n.prototype=Z}return r||{}}}(),Nu=Yt(it),Zu=Yt(ft,true),Du=Ht(),qu=Ht(true);su&&!gu.call({valueOf:1},"valueOf")&&(dt=function(n){return B(su(n))});var Pu=Cu?function(n,t){return Cu.set(n,t),n}:Ne,Tu=Ru&&2===new Ru([1,2]).size?function(n){return new Ru(n)}:Pe,Ku=Cu?function(n){return Cu.get(n)}:Pe,Gu=Ot("length"),Vu=pu||function(){return[];
|
|
||||||
};(Iu&&"[object Map]"!=br(new Iu)||Ru&&"[object Set]"!=br(new Ru))&&(br=function(n){var t=uu.call(n);if(n="[object Object]"==t?n.constructor:null,n=typeof n=="function"?nu.call(n):""){if(n==Uu)return"[object Map]";if(n==Bu)return"[object Set]"}return t});var Ju=function(){var n=0,t=0;return function(r,e){var u=jo(),o=16-(u-t);if(t=u,o>0){if(150<=++n)return r}else n=0;return Pu(r,e)}}(),Yu=ee(function(n,t){Wo(n)||(n=null==n?[]:[Object(n)]),t=ut(t);for(var r=n,e=t,u=-1,o=r.length,i=-1,f=e.length,c=Array(o+f);++u<o;)c[u]=r[u];
|
|
||||||
for(;++i<f;)c[u++]=e[i];return c}),Hu=ee(function(n,t){return ce(n)?tt(n,ut(t,false,true)):[]}),Qu=ee(function(n,t){var r=Mr(t);return ce(r)&&(r=Z),ce(n)?tt(n,ut(t,false,true),vr(r)):[]}),Xu=ee(function(n,t){var r=Mr(t);return ce(r)&&(r=Z),ce(n)?tt(n,ut(t,false,true),Z,r):[]}),no=ee(function(n){var t=c(n,Ur);return t.length&&t[0]===n[0]?ht(t):[]}),to=ee(function(n){var t=Mr(n),r=c(n,Ur);return t===Mr(r)?t=Z:r.pop(),r.length&&r[0]===n[0]?ht(r,vr(t)):[]}),ro=ee(function(n){var t=Mr(n),r=c(n,Ur);return t===Mr(r)?t=Z:r.pop(),
|
|
||||||
r.length&&r[0]===n[0]?ht(r,Z,t):[]}),eo=ee(Nr),uo=ee(function(n,t){t=c(ut(t),String);var r=Yn(n,t);return It(n,t.sort(k)),r}),oo=ee(function(n){return $t(ut(n,false,true))}),io=ee(function(n){var t=Mr(n);return ce(t)&&(t=Z),$t(ut(n,false,true),vr(t))}),fo=ee(function(n){var t=Mr(n);return ce(t)&&(t=Z),$t(ut(n,false,true),Z,t)}),co=ee(function(n,t){return ce(n)?tt(n,t):[]}),ao=ee(function(n){return Nt(o(n,ce))}),lo=ee(function(n){var t=Mr(n);return ce(t)&&(t=Z),Nt(o(n,ce),vr(t))}),so=ee(function(n){var t=Mr(n);return ce(t)&&(t=Z),
|
|
||||||
Nt(o(n,ce),Z,t)}),ho=ee(Dr),po=ee(function(n){var t=n.length,t=t>1?n[t-1]:Z,t=typeof t=="function"?(n.pop(),t):Z;return qr(n,t)}),_o=ee(function(n){function t(t){return Yn(t,n)}n=ut(n);var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return 1>=r&&!this.__actions__.length&&u instanceof wn&&U(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:Tr,args:[t],thisArg:Z}),new jn(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(Z),n})):this.thru(t)}),go=Vt(function(n,t,r){tu.call(n,r)?++n[r]:n[r]=1;
|
|
||||||
}),vo=Vt(function(n,t,r){tu.call(n,r)?n[r].push(t):n[r]=[t]}),yo=ee(function(n,t,e){var u=-1,o=typeof t=="function",i=Er(t),f=fe(n)?Array(n.length):[];return Nu(n,function(n){var c=o?t:i&&null!=n?n[t]:Z;f[++u]=c?r(c,n,e):pt(n,t,e)}),f}),bo=Vt(function(n,t,r){n[r]=t}),xo=Vt(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),mo=ee(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Or(n,t[0],t[1])?t=[]:r>2&&Or(t[0],t[1],t[2])&&(t.length=1),jt(n,ut(t),[])}),jo=Ge.now,wo=ee(function(n,t,r){
|
|
||||||
var e=1;if(r.length)var u=L(r,wo.placeholder),e=32|e;return sr(n,e,t,r,u)}),Ao=ee(function(n,t,r){var e=3;if(r.length)var u=L(r,Ao.placeholder),e=32|e;return sr(t,e,n,r,u)}),Oo=ee(function(n,t){return nt(n,1,t)}),Eo=ee(function(n,t,r){return nt(n,Ee(t)||0,r)}),ko=ee(function(n,t){t=c(ut(t),vr());var e=t.length;return ee(function(u){for(var o=-1,i=Au(u.length,e);++o<i;)u[o]=t[o].call(this,u[o]);return r(n,this,u)})}),Io=ee(function(n,t){var r=L(t,Io.placeholder);return sr(n,32,Z,t,r)}),Ro=ee(function(n,t){
|
|
||||||
var r=L(t,Ro.placeholder);return sr(n,64,Z,t,r)}),So=ee(function(n,t){return sr(n,256,Z,Z,Z,ut(t))}),Wo=Array.isArray,Co=Jt(function(n,t){Tt(t,Ce(t),n)}),Uo=Jt(function(n,t){Tt(t,Ue(t),n)}),Bo=Jt(function(n,t,r,e){Kt(t,Ue(t),n,e)}),zo=Jt(function(n,t,r,e){Kt(t,Ce(t),n,e)}),Lo=ee(function(n,t){return Yn(n,ut(t))}),$o=ee(function(n){return n.push(Z,Pn),r(Bo,Z,n)}),Fo=ee(function(n){return n.push(Z,Sr),r(Zo,Z,n)}),Mo=ee(pt),No=Jt(function(n,t,r){mt(n,t,r)}),Zo=Jt(function(n,t,r,e){mt(n,t,r,e)}),Do=ee(function(n,t){
|
|
||||||
return null==n?{}:(t=c(ut(t),String),wt(n,tt(Ue(n),t)))}),qo=ee(function(n,t){return null==n?{}:wt(n,ut(t))}),Po=nr(function(n,t,r){return t=t.toLowerCase(),n+(r?Le(t):t)}),To=nr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Ko=nr(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Go=Xt("toLowerCase"),Vo=Xt("toUpperCase"),Jo=nr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),Yo=nr(function(n,t,r){return n+(r?" ":"")+Le(t)}),Ho=nr(function(n,t,r){return n+(r?" ":"")+t.toUpperCase();
|
|
||||||
}),Qo=ee(function(n,t){try{return r(n,Z,t)}catch(e){return ae(e)?e:new Ve(e)}}),Xo=ee(function(n,t){return e(ut(t),function(t){n[t]=wo(n[t],n)}),n}),ni=er(),ti=er(true),ri=ee(function(n,t){return function(r){return pt(r,n,t)}}),ei=ee(function(n,t){return function(r){return pt(n,r,t)}}),ui=or(c),oi=or(u),ii=or(h),fi=cr(),ci=cr(true),ai=lr("ceil"),li=lr("floor"),si=lr("round");return dn.prototype=mn.prototype,jn.prototype=Mu(mn.prototype),jn.prototype.constructor=jn,wn.prototype=Mu(mn.prototype),wn.prototype.constructor=wn,
|
|
||||||
Un.prototype=Wu?Wu(null):Xe,Bn.prototype.clear=function(){this.__data__={hash:new Un,map:Iu?new Iu:[],string:new Un}},Bn.prototype["delete"]=function(n){var t=this.__data__;return kr(n)?(t=typeof n=="string"?t.string:t.hash,n=(Wu?t[n]!==Z:tu.call(t,n))&&delete t[n]):n=Iu?t.map["delete"](n):Nn(t.map,n),n},Bn.prototype.get=function(n){var t=this.__data__;return kr(n)?(t=typeof n=="string"?t.string:t.hash,Wu?(n=t[n],n="__lodash_hash_undefined__"===n?Z:n):n=tu.call(t,n)?t[n]:Z):n=Iu?t.map.get(n):Zn(t.map,n),
|
|
||||||
n},Bn.prototype.has=function(n){var t=this.__data__;return kr(n)?(t=typeof n=="string"?t.string:t.hash,n=Wu?t[n]!==Z:tu.call(t,n)):n=Iu?t.map.has(n):-1<Dn(t.map,n),n},Bn.prototype.set=function(n,t){var r=this.__data__;return kr(n)?(typeof n=="string"?r.string:r.hash)[n]=Wu&&t===Z?"__lodash_hash_undefined__":t:Iu?r.map.set(n,t):qn(r.map,n,t),this},zn.prototype.push=function(n){var t=this.__data__;kr(n)?(t=t.__data__,(typeof n=="string"?t.string:t.hash)[n]="__lodash_hash_undefined__"):t.set(n,"__lodash_hash_undefined__");
|
|
||||||
},$n.prototype.clear=function(){this.__data__={array:[],map:null}},$n.prototype["delete"]=function(n){var t=this.__data__,r=t.array;return r?Nn(r,n):t.map["delete"](n)},$n.prototype.get=function(n){var t=this.__data__,r=t.array;return r?Zn(r,n):t.map.get(n)},$n.prototype.has=function(n){var t=this.__data__,r=t.array;return r?-1<Dn(r,n):t.map.has(n)},$n.prototype.set=function(n,t){var r=this.__data__,e=r.array;return e&&(199>e.length?qn(e,n,t):(r.array=null,r.map=new Bn(e))),(r=r.map)&&r.set(n,t),
|
|
||||||
this},re.Cache=Bn,dn.after=function(n,t){if(typeof t!="function")throw new He("Expected a function");return n=Ae(n),function(){return 1>--n?t.apply(this,arguments):void 0}},dn.ary=Hr,dn.assign=Co,dn.assignIn=Uo,dn.assignInWith=Bo,dn.assignWith=zo,dn.at=Lo,dn.before=Qr,dn.bind=wo,dn.bindAll=Xo,dn.bindKey=Ao,dn.chain=Pr,dn.chunk=function(n,t){t=wu(Ae(t),0);var r=n?n.length:0;if(!r||1>t)return[];for(var e=0,u=-1,o=Array(yu(r/t));r>e;)o[++u]=Wt(n,e,e+=t);return o},dn.compact=function(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++t<r;){
|
|
||||||
var o=n[t];o&&(u[++e]=o)}return u},dn.concat=Yu,dn.cond=function(n){var t=n?n.length:0,e=vr();return n=t?c(n,function(n){if("function"!=typeof n[1])throw new He("Expected a function");return[e(n[0]),n[1]]}):[],ee(function(e){for(var u=-1;++u<t;){var o=n[u];if(r(o[0],this,e))return r(o[1],this,e)}})},dn.conforms=function(n){return Xn(Qn(n,true))},dn.constant=function(n){return function(){return n}},dn.countBy=go,dn.create=function(n,t){var r=Mu(n);return t?Jn(r,t):r},dn.curry=Xr,dn.curryRight=ne,dn.debounce=te,
|
|
||||||
dn.defaults=$o,dn.defaultsDeep=Fo,dn.defer=Oo,dn.delay=Eo,dn.difference=Hu,dn.differenceBy=Qu,dn.differenceWith=Xu,dn.drop=Lr,dn.dropRight=$r,dn.dropRightWhile=function(n,t){return n&&n.length?Ft(n,vr(t,3),true,true):[]},dn.dropWhile=function(n,t){return n&&n.length?Ft(n,vr(t,3),true):[]},dn.fill=function(n,t,r,e){var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&Or(n,t,r)&&(r=0,e=u),u=n.length,r=Ae(r),0>r&&(r=-r>u?0:u+r),e=e===Z||e>u?u:Ae(e),0>e&&(e+=u),e=r>e?0:Oe(e);e>r;)n[r++]=t;return n},
|
|
||||||
dn.filter=function(n,t){return(Wo(n)?o:et)(n,vr(t,3))},dn.flatMap=function(n,t){return n&&n.length?ut(c(n,vr(t,3))):[]},dn.flatten=function(n){return n&&n.length?ut(n):[]},dn.flattenDeep=function(n){return n&&n.length?ut(n,true):[]},dn.flip=function(n){return sr(n,512)},dn.flow=ni,dn.flowRight=ti,dn.fromPairs=function(n){for(var t=-1,r=n?n.length:0,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},dn.functions=function(n){return null==n?[]:ct(n,Ce(n))},dn.functionsIn=function(n){return null==n?[]:ct(n,Ue(n));
|
|
||||||
},dn.groupBy=vo,dn.initial=function(n){return $r(n,1)},dn.intersection=no,dn.intersectionBy=to,dn.intersectionWith=ro,dn.invert=function(n,t,r){return l(Ce(n),function(e,u){var o=n[u];return t&&!r?tu.call(e,o)?e[o].push(u):e[o]=[u]:e[o]=u,e},{})},dn.invokeMap=yo,dn.iteratee=Ze,dn.keyBy=bo,dn.keys=Ce,dn.keysIn=Ue,dn.map=function(n,t){return(Wo(n)?c:yt)(n,vr(t,3))},dn.mapKeys=function(n,t){var r={};return t=vr(t,3),it(n,function(n,e,u){r[t(n,e,u)]=n}),r},dn.mapValues=function(n,t){var r={};return t=vr(t,3),
|
|
||||||
it(n,function(n,e,u){r[e]=t(n,e,u)}),r},dn.matches=De,dn.matchesProperty=function(n,t){return xt(n,Qn(t,true))},dn.memoize=re,dn.merge=No,dn.mergeWith=Zo,dn.method=ri,dn.methodOf=ei,dn.mixin=qe,dn.negate=function(n){if(typeof n!="function")throw new He("Expected a function");return function(){return!n.apply(this,arguments)}},dn.nthArg=function(n){return n=Ae(n),function(){return arguments[n]}},dn.omit=Do,dn.omitBy=function(n,t){return t=vr(t,2),At(n,function(n,r){return!t(n,r)})},dn.once=function(n){
|
|
||||||
return Qr(2,n)},dn.orderBy=function(n,t,r,e){return null==n?[]:(Wo(t)||(t=null==t?[]:[t]),r=e?Z:r,Wo(r)||(r=null==r?[]:[r]),jt(n,t,r))},dn.over=ui,dn.overArgs=ko,dn.overEvery=oi,dn.overSome=ii,dn.partial=Io,dn.partialRight=Ro,dn.partition=xo,dn.pick=qo,dn.pickBy=function(n,t){return null==n?{}:At(n,vr(t,2))},dn.property=Te,dn.propertyOf=function(n){return function(t){return null==n?Z:at(n,t)}},dn.pull=eo,dn.pullAll=Nr,dn.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?kt(n,t,vr(r)):n},dn.pullAt=uo,
|
|
||||||
dn.range=fi,dn.rangeRight=ci,dn.rearg=So,dn.reject=function(n,t){var r=Wo(n)?o:et;return t=vr(t,3),r(n,function(n,r,e){return!t(n,r,e)})},dn.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],o=n.length;for(t=vr(t,3);++e<o;){var i=n[e];t(i,e,n)&&(r.push(i),u.push(e))}return It(n,u),r},dn.rest=ee,dn.reverse=Zr,dn.sampleSize=Jr,dn.set=function(n,t,r){return null==n?n:St(n,t,r)},dn.setWith=function(n,t,r,e){return e=typeof e=="function"?e:Z,null==n?n:St(n,t,r,e)},dn.shuffle=function(n){
|
|
||||||
return Jr(n,4294967295)},dn.slice=function(n,t,r){var e=n?n.length:0;return e?(r&&typeof r!="number"&&Or(n,t,r)?(t=0,r=e):(t=null==t?0:Ae(t),r=r===Z?e:Ae(r)),Wt(n,t,r)):[]},dn.sortBy=mo,dn.sortedUniq=function(n){return n&&n.length?zt(n):[]},dn.sortedUniqBy=function(n,t){return n&&n.length?zt(n,vr(t)):[]},dn.split=function(n,t,r){return Ie(n).split(t,r)},dn.spread=function(n){if(typeof n!="function")throw new He("Expected a function");return function(t){return r(n,this,t)}},dn.tail=function(n){return Lr(n,1);
|
|
||||||
},dn.take=function(n,t,r){return n&&n.length?(t=r||t===Z?1:Ae(t),Wt(n,0,0>t?0:t)):[]},dn.takeRight=function(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Ae(t),t=e-t,Wt(n,0>t?0:t,e)):[]},dn.takeRightWhile=function(n,t){return n&&n.length?Ft(n,vr(t,3),false,true):[]},dn.takeWhile=function(n,t){return n&&n.length?Ft(n,vr(t,3)):[]},dn.tap=function(n,t){return t(n),n},dn.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new He("Expected a function");return pe(r)&&(e="leading"in r?!!r.leading:e,
|
|
||||||
u="trailing"in r?!!r.trailing:u),te(n,t,{leading:e,maxWait:t,trailing:u})},dn.thru=Tr,dn.toArray=we,dn.toPairs=Be,dn.toPairsIn=function(n){return m(n,Ue(n))},dn.toPath=function(n){return Wo(n)?c(n,String):Cr(n)},dn.toPlainObject=ke,dn.transform=function(n,t,r){var u=Wo(n)||me(n);if(t=vr(t,4),null==r)if(u||pe(n)){var o=n.constructor;r=u?Wo(n)?new o:[]:Mu(le(o)?o.prototype:Z)}else r={};return(u?e:it)(n,function(n,e,u){return t(r,n,e,u)}),r},dn.unary=function(n){return Hr(n,1)},dn.union=oo,dn.unionBy=io,
|
|
||||||
dn.unionWith=fo,dn.uniq=function(n){return n&&n.length?$t(n):[]},dn.uniqBy=function(n,t){return n&&n.length?$t(n,vr(t)):[]},dn.uniqWith=function(n,t){return n&&n.length?$t(n,Z,t):[]},dn.unset=function(n,t){var r;if(null==n)r=true;else{r=n;var e=t,e=Er(e,r)?[e+""]:Lt(e);r=Wr(r,e),e=Mr(e),r=null!=r&&Se(r,e)?delete r[e]:true}return r},dn.unzip=Dr,dn.unzipWith=qr,dn.values=ze,dn.valuesIn=function(n){return null==n?w(n,Ue(n)):[]},dn.without=co,dn.words=Me,dn.wrap=function(n,t){return t=null==t?Ne:t,Io(t,n);
|
|
||||||
},dn.xor=ao,dn.xorBy=lo,dn.xorWith=so,dn.zip=ho,dn.zipObject=function(n,t){for(var r=-1,e=n?n.length:0,u=t?t.length:0,o={};++r<e;)St(o,n[r],u>r?t[r]:Z);return o},dn.zipWith=po,dn.extend=Uo,dn.extendWith=Bo,qe(dn,dn),dn.add=function(n,t){var r;return n!==Z&&(r=n),t!==Z&&(r=r===Z?t:r+t),r},dn.attempt=Qo,dn.camelCase=Po,dn.capitalize=Le,dn.ceil=ai,dn.clamp=function(n,t,r){return r===Z&&(r=t,t=Z),r!==Z&&(r=Ee(r),r=r===r?r:0),t!==Z&&(t=Ee(t),t=t===t?t:0),Hn(Ee(n),t,r)},dn.clone=function(n){return Qn(n);
|
|
||||||
},dn.cloneDeep=function(n){return Qn(n,true)},dn.cloneDeepWith=function(n,t){return Qn(n,true,t)},dn.cloneWith=function(n,t){return Qn(n,false,t)},dn.deburr=$e,dn.endsWith=function(n,t,r){n=Ie(n),t=typeof t=="string"?t:t+"";var e=n.length;return r=r===Z?e:Hn(Ae(r),0,e),r-=t.length,r>=0&&n.indexOf(t,r)==r},dn.eq=ue,dn.escape=function(n){return(n=Ie(n))&&Y.test(n)?n.replace(V,R):n},dn.escapeRegExp=function(n){return(n=Ie(n))&&un.test(n)?n.replace(en,"\\$&"):n},dn.every=function(n,t,r){var e=Wo(n)?u:rt;return r&&Or(n,t,r)&&(t=Z),
|
|
||||||
e(n,vr(t,3))},dn.find=function(n,t){if(t=vr(t,3),Wo(n)){var r=g(n,t);return r>-1?n[r]:Z}return _(n,t,Nu)},dn.findIndex=function(n,t){return n&&n.length?g(n,vr(t,3)):-1},dn.findKey=function(n,t){return _(n,vr(t,3),it,true)},dn.findLast=function(n,t){if(t=vr(t,3),Wo(n)){var r=g(n,t,true);return r>-1?n[r]:Z}return _(n,t,Zu)},dn.findLastIndex=function(n,t){return n&&n.length?g(n,vr(t,3),true):-1},dn.findLastKey=function(n,t){return _(n,vr(t,3),ft,true)},dn.floor=li,dn.forEach=Gr,dn.forEachRight=Vr,dn.forIn=function(n,t){
|
|
||||||
return null==n?n:Du(n,Br(t),Ue)},dn.forInRight=function(n,t){return null==n?n:qu(n,Br(t),Ue)},dn.forOwn=function(n,t){return n&&it(n,Br(t))},dn.forOwnRight=function(n,t){return n&&ft(n,Br(t))},dn.get=Re,dn.gt=oe,dn.gte=function(n,t){return n>=t},dn.has=Se,dn.hasIn=We,dn.head=Fr,dn.identity=Ne,dn.includes=function(n,t,r,e){return n=fe(n)?n:ze(n),r=r&&!e?Ae(r):0,e=n.length,0>r&&(r=wu(e+r,0)),be(n)?e>=r&&-1<n.indexOf(t,r):!!e&&-1<v(n,t,r)},dn.indexOf=function(n,t,r){var e=n?n.length:0;return e?(r=Ae(r),
|
|
||||||
0>r&&(r=wu(e+r,0)),v(n,t,r)):-1},dn.inRange=function(n,t,r){return t=Ee(t)||0,r===Z?(r=t,t=0):r=Ee(r)||0,n=Ee(n),n>=Au(t,r)&&n<wu(t,r)},dn.invoke=Mo,dn.isArguments=ie,dn.isArray=Wo,dn.isArrayLike=fe,dn.isArrayLikeObject=ce,dn.isBoolean=function(n){return true===n||false===n||_e(n)&&"[object Boolean]"==uu.call(n)},dn.isDate=function(n){return _e(n)&&"[object Date]"==uu.call(n)},dn.isElement=function(n){return!!n&&1===n.nodeType&&_e(n)&&!de(n)},dn.isEmpty=function(n){return!_e(n)||le(n.splice)?!Yr(n):!Ce(n).length;
|
|
||||||
},dn.isEqual=function(n,t){return _t(n,t)},dn.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:Z)?r(n,t):Z;return e===Z?_t(n,t,r):!!e},dn.isError=ae,dn.isFinite=function(n){return typeof n=="number"&&xu(n)},dn.isFunction=le,dn.isInteger=se,dn.isLength=he,dn.isMatch=function(n,t){return n===t||gt(n,t,dr(t))},dn.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:Z,gt(n,t,dr(t),r)},dn.isNaN=function(n){return ve(n)&&n!=+n},dn.isNative=ge,dn.isNil=function(n){return null==n},dn.isNull=function(n){
|
|
||||||
return null===n},dn.isNumber=ve,dn.isObject=pe,dn.isObjectLike=_e,dn.isPlainObject=de,dn.isRegExp=ye,dn.isSafeInteger=function(n){return se(n)&&n>=-9007199254740991&&9007199254740991>=n},dn.isString=be,dn.isSymbol=xe,dn.isTypedArray=me,dn.isUndefined=function(n){return n===Z},dn.join=function(n,t){return n?mu.call(n,t):""},dn.kebabCase=To,dn.last=Mr,dn.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(r!==Z&&(u=Ae(r),u=(0>u?wu(e+u,0):Au(u,e-1))+1),t!==t)return W(n,u,true);for(;u--;)if(n[u]===t)return u;
|
|
||||||
return-1},dn.lowerCase=Ko,dn.lowerFirst=Go,dn.lt=je,dn.lte=function(n,t){return t>=n},dn.max=function(n){return n&&n.length?p(n,Ne,oe):Z},dn.maxBy=function(n,t){return n&&n.length?p(n,vr(t),oe):Z},dn.mean=function(n){return Ke(n)/(n?n.length:0)},dn.min=function(n){return n&&n.length?p(n,Ne,je):Z},dn.minBy=function(n,t){return n&&n.length?p(n,vr(t),je):Z},dn.noConflict=function(){return Kn._===this&&(Kn._=ou),this},dn.noop=Pe,dn.now=jo,dn.pad=function(n,t,r){n=Ie(n),t=Ae(t);var e=F(n);return t&&t>e?(e=(t-e)/2,
|
|
||||||
t=bu(e),e=yu(e),ir("",t,r)+n+ir("",e,r)):n},dn.padEnd=function(n,t,r){return n=Ie(n),n+ir(n,t,r)},dn.padStart=function(n,t,r){return n=Ie(n),ir(n,t,r)+n},dn.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),n=Ie(n).replace(on,""),Ou(n,t||(hn.test(n)?16:10))},dn.random=function(n,t,r){if(r&&typeof r!="boolean"&&Or(n,t,r)&&(t=r=Z),r===Z&&(typeof t=="boolean"?(r=t,t=Z):typeof n=="boolean"&&(r=n,n=Z)),n===Z&&t===Z?(n=0,t=1):(n=Ee(n)||0,t===Z?(t=n,n=0):t=Ee(t)||0),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Eu(),
|
|
||||||
Au(n+r*(t-n+Fn("1e-"+((r+"").length-1))),t)):Rt(n,t)},dn.reduce=function(n,t,r){var e=Wo(n)?l:d,u=3>arguments.length;return e(n,vr(t,4),r,u,Nu)},dn.reduceRight=function(n,t,r){var e=Wo(n)?s:d,u=3>arguments.length;return e(n,vr(t,4),r,u,Zu)},dn.repeat=Fe,dn.replace=function(){var n=arguments,t=Ie(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},dn.result=function(n,t,r){if(Er(t,n))e=null==n?Z:n[t];else{t=Lt(t);var e=Re(n,t);n=Wr(n,t)}return e===Z&&(e=r),le(e)?e.call(n):e},dn.round=si,dn.runInContext=N,
|
|
||||||
dn.sample=function(n){n=fe(n)?n:ze(n);var t=n.length;return t>0?n[Rt(0,t-1)]:Z},dn.size=Yr,dn.snakeCase=Jo,dn.some=function(n,t,r){var e=Wo(n)?h:Ct;return r&&Or(n,t,r)&&(t=Z),e(n,vr(t,3))},dn.sortedIndex=function(n,t){return Ut(n,t)},dn.sortedIndexBy=function(n,t,r){return Bt(n,t,vr(r))},dn.sortedIndexOf=function(n,t){var r=n?n.length:0;if(r){var e=Ut(n,t);if(r>e&&ue(n[e],t))return e}return-1},dn.sortedLastIndex=function(n,t){return Ut(n,t,true)},dn.sortedLastIndexBy=function(n,t,r){return Bt(n,t,vr(r),true);
|
|
||||||
},dn.sortedLastIndexOf=function(n,t){if(n&&n.length){var r=Ut(n,t,true)-1;if(ue(n[r],t))return r}return-1},dn.startCase=Yo,dn.startsWith=function(n,t,r){return n=Ie(n),r=Hn(Ae(r),0,n.length),n.lastIndexOf(t,r)==r},dn.subtract=function(n,t){var r;return n!==Z&&(r=n),t!==Z&&(r=r===Z?t:r-t),r},dn.sum=Ke,dn.sumBy=function(n,t){return n&&n.length?b(n,vr(t)):Z},dn.template=function(n,t,r){var e=dn.templateSettings;r&&Or(n,t,r)&&(t=Z),n=Ie(n),t=Bo({},t,e,Pn),r=Bo({},t.imports,e.imports,Pn);var u,o,i=Ce(r),f=w(r,i),c=0;
|
|
||||||
r=t.interpolate||bn;var a="__p+='";r=Ye((t.escape||bn).source+"|"+r.source+"|"+(r===X?ln:bn).source+"|"+(t.evaluate||bn).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,i,f,l){return e||(e=i),a+=n.slice(c,l).replace(xn,S),r&&(u=true,a+="'+__e("+r+")+'"),f&&(o=true,a+="';"+f+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(o?a.replace(P,""):a).replace(T,"$1").replace(K,"$1;"),
|
|
||||||
a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=Qo(function(){return Function(i,l+"return "+a).apply(Z,f)}),t.source=a,ae(t))throw t;return t},dn.times=function(n,t){if(n=Ae(n),1>n||n>9007199254740991)return[];var r=4294967295,e=Au(n,4294967295);for(t=Br(t),n-=4294967295,e=x(e,t);++r<n;)t(r);return e},dn.toInteger=Ae,dn.toLength=Oe,dn.toLower=function(n){
|
|
||||||
return Ie(n).toLowerCase()},dn.toNumber=Ee,dn.toSafeInteger=function(n){return Hn(Ae(n),-9007199254740991,9007199254740991)},dn.toString=Ie,dn.toUpper=function(n){return Ie(n).toUpperCase()},dn.trim=function(n,t,r){return(n=Ie(n))?r||t===Z?n.replace(on,""):(t+="")?(n=n.match(On),t=t.match(On),n.slice(A(n,t),O(n,t)+1).join("")):n:n},dn.trimEnd=function(n,t,r){return(n=Ie(n))?r||t===Z?n.replace(cn,""):(t+="")?(n=n.match(On),n.slice(0,O(n,t.match(On))+1).join("")):n:n},dn.trimStart=function(n,t,r){return(n=Ie(n))?r||t===Z?n.replace(fn,""):(t+="")?(n=n.match(On),
|
|
||||||
n.slice(A(n,t.match(On))).join("")):n:n},dn.truncate=function(n,t){var r=30,e="...";if(pe(t))var u="separator"in t?t.separator:u,r="length"in t?Ae(t.length):r,e="omission"in t?Ie(t.omission):e;n=Ie(n);var o=n.length;if(En.test(n))var i=n.match(On),o=i.length;if(r>=o)return n;if(o=r-F(e),1>o)return e;if(r=i?i.slice(0,o).join(""):n.slice(0,o),u===Z)return r+e;if(i&&(o+=r.length-o),ye(u)){if(n.slice(o).search(u)){var f=r;for(u.global||(u=Ye(u.source,Ie(sn.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;
|
|
||||||
r=r.slice(0,c===Z?o:c)}}else n.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},dn.unescape=function(n){return(n=Ie(n))&&J.test(n)?n.replace(G,M):n},dn.uniqueId=function(n){var t=++ru;return Ie(n)+t},dn.upperCase=Ho,dn.upperFirst=Vo,dn.each=Gr,dn.eachRight=Vr,dn.first=Fr,qe(dn,function(){var n={};return it(dn,function(t,r){tu.call(dn.prototype,r)||(n[r]=t)}),n}(),{chain:false}),dn.VERSION="4.0.1",e("bind bindKey curry curryRight partial partialRight".split(" "),function(n){dn[n].placeholder=dn;
|
|
||||||
}),e(["drop","take"],function(n,t){wn.prototype[n]=function(r){var e=this.__filtered__;if(e&&!t)return new wn(this);r=r===Z?1:wu(Ae(r),0);var u=this.clone();return e?u.__takeCount__=Au(r,u.__takeCount__):u.__views__.push({size:Au(r,4294967295),type:n+(0>u.__dir__?"Right":"")}),u},wn.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),e(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;wn.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({
|
|
||||||
iteratee:vr(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),e(["head","last"],function(n,t){var r="take"+(t?"Right":"");wn.prototype[n]=function(){return this[r](1).value()[0]}}),e(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");wn.prototype[n]=function(){return this.__filtered__?new wn(this):this[r](1)}}),wn.prototype.compact=function(){return this.filter(Ne)},wn.prototype.find=function(n){return this.filter(n).head()},wn.prototype.findLast=function(n){return this.reverse().find(n);
|
|
||||||
},wn.prototype.invokeMap=ee(function(n,t){return typeof n=="function"?new wn(this):this.map(function(r){return pt(r,n,t)})}),wn.prototype.reject=function(n){return n=vr(n,3),this.filter(function(t){return!n(t)})},wn.prototype.slice=function(n,t){n=Ae(n);var r=this;return r.__filtered__&&(n>0||0>t)?new wn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==Z&&(t=Ae(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},wn.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},wn.prototype.toArray=function(){
|
|
||||||
return this.take(4294967295)},it(wn.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=dn[e?"take"+("last"==t?"Right":""):t],o=e||/^find/.test(t);u&&(dn.prototype[t]=function(){function t(n){return n=u.apply(dn,a([n],f)),e&&h?n[0]:n}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof wn,l=f[0],s=c||Wo(i);s&&r&&typeof l=="function"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=o&&!h,c=c&&!p;return!o&&s?(i=c?i:new wn(this),
|
|
||||||
i=n.apply(i,f),i.__actions__.push({func:Tr,args:[t],thisArg:Z}),new jn(i,h)):l&&c?n.apply(this,f):(i=this.thru(t),l?e?i.value()[0]:i.value():i)})}),e("pop push shift sort splice unshift".split(" "),function(n){var t=Qe[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);dn.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),it(wn.prototype,function(n,t){var r=dn[t];if(r){var e=r.name+"";(Fu[e]||(Fu[e]=[])).push({
|
|
||||||
name:t,func:r})}}),Fu[ur(Z,2).name]=[{name:"wrapper",func:Z}],wn.prototype.clone=function(){var n=new wn(this.__wrapped__);return n.__actions__=Pt(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Pt(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Pt(this.__views__),n},wn.prototype.reverse=function(){if(this.__filtered__){var n=new wn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},wn.prototype.value=function(){
|
|
||||||
var n,t=this.__wrapped__.value(),r=this.__dir__,e=Wo(t),u=0>r,o=e?t.length:0;n=o;for(var i=this.__views__,f=0,c=-1,a=i.length;++c<a;){var l=i[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":n-=s;break;case"take":n=Au(n,f+s);break;case"takeRight":f=wu(f,n-s)}}if(n={start:f,end:n},i=n.start,f=n.end,n=f-i,u=u?f:i-1,i=this.__iteratees__,f=i.length,c=0,a=Au(n,this.__takeCount__),!e||200>o||o==n&&a==n)return Mt(t,this.__actions__);e=[];n:for(;n--&&a>c;){for(u+=r,o=-1,l=t[u];++o<f;){var h=i[o],s=h.type,h=(0,
|
|
||||||
h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue n;break n}}e[c++]=l}return e},dn.prototype.at=_o,dn.prototype.chain=function(){return Pr(this)},dn.prototype.commit=function(){return new jn(this.value(),this.__chain__)},dn.prototype.flatMap=function(n){return this.map(n).flatten()},dn.prototype.next=function(){this.__values__===Z&&(this.__values__=we(this.value()));var n=this.__index__>=this.__values__.length,t=n?Z:this.__values__[this.__index__++];return{done:n,value:t}},dn.prototype.plant=function(n){
|
|
||||||
for(var t,r=this;r instanceof mn;){var e=zr(r);e.__index__=0,e.__values__=Z,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},dn.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof wn?(this.__actions__.length&&(n=new wn(this)),n=n.reverse(),n.__actions__.push({func:Tr,args:[Zr],thisArg:Z}),new jn(n,this.__chain__)):this.thru(Zr)},dn.prototype.toJSON=dn.prototype.valueOf=dn.prototype.value=function(){return Mt(this.__wrapped__,this.__actions__)},_u&&(dn.prototype[_u]=Kr),
|
|
||||||
dn}var Z,D=1/0,q=NaN,P=/\b__p\+='';/g,T=/\b(__p\+=)''\+/g,K=/(__e\(.*?\)|\b__t\))\+'';/g,G=/&(?:amp|lt|gt|quot|#39|#96);/g,V=/[&<>"'`]/g,J=RegExp(G.source),Y=RegExp(V.source),H=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,X=/<%=([\s\S]+?)%>/g,nn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tn=/^\w*$/,rn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,en=/[\\^$.*+?()[\]{}|]/g,un=RegExp(en.source),on=/^\s+|\s+$/g,fn=/^\s+/,cn=/\s+$/,an=/\\(\\)?/g,ln=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,sn=/\w*$/,hn=/^0x/i,pn=/^[-+]0x[0-9a-f]+$/i,_n=/^0b[01]+$/i,gn=/^\[object .+?Constructor\]$/,vn=/^0o[0-7]+$/i,dn=/^(?:0|[1-9]\d*)$/,yn=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,bn=/($^)/,xn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",jn="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,wn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",An=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+wn+mn,"g"),En=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),kn=/[a-zA-Z0-9]+/g,In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|\\d+",jn].join("|"),"g"),Rn=/[a-z][A-Z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Sn="Array Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Wn={};
|
|
||||||
Wn["[object Float32Array]"]=Wn["[object Float64Array]"]=Wn["[object Int8Array]"]=Wn["[object Int16Array]"]=Wn["[object Int32Array]"]=Wn["[object Uint8Array]"]=Wn["[object Uint8ClampedArray]"]=Wn["[object Uint16Array]"]=Wn["[object Uint32Array]"]=true,Wn["[object Arguments]"]=Wn["[object Array]"]=Wn["[object ArrayBuffer]"]=Wn["[object Boolean]"]=Wn["[object Date]"]=Wn["[object Error]"]=Wn["[object Function]"]=Wn["[object Map]"]=Wn["[object Number]"]=Wn["[object Object]"]=Wn["[object RegExp]"]=Wn["[object Set]"]=Wn["[object String]"]=Wn["[object WeakMap]"]=false;
|
|
||||||
var Cn={};Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object Date]"]=Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object Symbol]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,
|
|
||||||
Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object WeakMap]"]=false;var Un={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O",
|
|
||||||
"\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Bn={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},zn={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ln={"function":true,object:true},$n={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
|
|
||||||
},Fn=parseFloat,Mn=parseInt,Nn=Ln[typeof exports]&&exports&&!exports.nodeType?exports:null,Zn=Ln[typeof module]&&module&&!module.nodeType?module:null,Dn=E(Ln[typeof self]&&self),qn=E(Ln[typeof window]&&window),Pn=Zn&&Zn.exports===Nn?Nn:null,Tn=E(Ln[typeof this]&&this),Kn=E(Nn&&Zn&&typeof global=="object"&&global)||qn!==(Tn&&Tn.window)&&qn||Dn||Tn||Function("return this")(),Gn=N();(qn||Dn||{})._=Gn,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Gn}):Nn&&Zn?(Pn&&((Zn.exports=Gn)._=Gn),
|
|
||||||
Nn._=Gn):Kn._=Gn}).call(this);
|
|
||||||
264
dist/mapping.fp.js
vendored
264
dist/mapping.fp.js
vendored
@@ -1,264 +0,0 @@
|
|||||||
(function webpackUniversalModuleDefinition(root, factory) {
|
|
||||||
if(typeof exports === 'object' && typeof module === 'object')
|
|
||||||
module.exports = factory();
|
|
||||||
else if(typeof define === 'function' && define.amd)
|
|
||||||
define([], factory);
|
|
||||||
else if(typeof exports === 'object')
|
|
||||||
exports["mapping"] = factory();
|
|
||||||
else
|
|
||||||
root["mapping"] = factory();
|
|
||||||
})(this, function() {
|
|
||||||
return /******/ (function(modules) { // webpackBootstrap
|
|
||||||
/******/ // The module cache
|
|
||||||
/******/ var installedModules = {};
|
|
||||||
|
|
||||||
/******/ // The require function
|
|
||||||
/******/ function __webpack_require__(moduleId) {
|
|
||||||
|
|
||||||
/******/ // Check if module is in cache
|
|
||||||
/******/ if(installedModules[moduleId])
|
|
||||||
/******/ return installedModules[moduleId].exports;
|
|
||||||
|
|
||||||
/******/ // Create a new module (and put it into the cache)
|
|
||||||
/******/ var module = installedModules[moduleId] = {
|
|
||||||
/******/ exports: {},
|
|
||||||
/******/ id: moduleId,
|
|
||||||
/******/ loaded: false
|
|
||||||
/******/ };
|
|
||||||
|
|
||||||
/******/ // Execute the module function
|
|
||||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
||||||
|
|
||||||
/******/ // Flag the module as loaded
|
|
||||||
/******/ module.loaded = true;
|
|
||||||
|
|
||||||
/******/ // Return the exports of the module
|
|
||||||
/******/ return module.exports;
|
|
||||||
/******/ }
|
|
||||||
|
|
||||||
|
|
||||||
/******/ // expose the modules object (__webpack_modules__)
|
|
||||||
/******/ __webpack_require__.m = modules;
|
|
||||||
|
|
||||||
/******/ // expose the module cache
|
|
||||||
/******/ __webpack_require__.c = installedModules;
|
|
||||||
|
|
||||||
/******/ // __webpack_public_path__
|
|
||||||
/******/ __webpack_require__.p = "";
|
|
||||||
|
|
||||||
/******/ // Load entry module and return exports
|
|
||||||
/******/ return __webpack_require__(0);
|
|
||||||
/******/ })
|
|
||||||
/************************************************************************/
|
|
||||||
/******/ ([
|
|
||||||
/* 0 */
|
|
||||||
/***/ function(module, exports) {
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
|
|
||||||
/** Used to map method names to their aliases. */
|
|
||||||
'alias': {
|
|
||||||
'ary': ['nAry'],
|
|
||||||
'assignIn': ['extend'],
|
|
||||||
'assignInWith': ['extendWith'],
|
|
||||||
'filter': ['whereEq'],
|
|
||||||
'flatten': ['unnest'],
|
|
||||||
'flow': ['pipe'],
|
|
||||||
'flowRight': ['compose'],
|
|
||||||
'forEach': ['each'],
|
|
||||||
'forEachRight': ['eachRight'],
|
|
||||||
'get': ['path', 'prop'],
|
|
||||||
'getOr': ['pathOr', 'propOr'],
|
|
||||||
'head': ['first'],
|
|
||||||
'includes': ['contains'],
|
|
||||||
'initial': ['init'],
|
|
||||||
'isEqual': ['equals'],
|
|
||||||
'mapValues': ['mapObj'],
|
|
||||||
'matchesProperty': ['pathEq'],
|
|
||||||
'omit': ['dissoc', 'omitAll'],
|
|
||||||
'overArgs': ['useWith'],
|
|
||||||
'overEvery': ['allPass'],
|
|
||||||
'overSome': ['somePass'],
|
|
||||||
'pick': ['pickAll'],
|
|
||||||
'propertyOf': ['propOf'],
|
|
||||||
'rest': ['unapply'],
|
|
||||||
'some': ['all'],
|
|
||||||
'spread': ['apply'],
|
|
||||||
'zipObject': ['zipObj']
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to their iteratee ary. */
|
|
||||||
'aryIteratee': {
|
|
||||||
'assignWith': 2,
|
|
||||||
'assignInWith': 2,
|
|
||||||
'cloneDeepWith': 1,
|
|
||||||
'cloneWith': 1,
|
|
||||||
'dropRightWhile': 1,
|
|
||||||
'dropWhile': 1,
|
|
||||||
'every': 1,
|
|
||||||
'filter': 1,
|
|
||||||
'find': 1,
|
|
||||||
'findIndex': 1,
|
|
||||||
'findKey': 1,
|
|
||||||
'findLast': 1,
|
|
||||||
'findLastIndex': 1,
|
|
||||||
'findLastKey': 1,
|
|
||||||
'flatMap': 1,
|
|
||||||
'forEach': 1,
|
|
||||||
'forEachRight': 1,
|
|
||||||
'forIn': 1,
|
|
||||||
'forInRight': 1,
|
|
||||||
'forOwn': 1,
|
|
||||||
'forOwnRight': 1,
|
|
||||||
'isEqualWith': 2,
|
|
||||||
'isMatchWith': 2,
|
|
||||||
'map': 1,
|
|
||||||
'mapKeys': 1,
|
|
||||||
'mapValues': 1,
|
|
||||||
'partition': 1,
|
|
||||||
'reduce': 2,
|
|
||||||
'reduceRight': 2,
|
|
||||||
'reject': 1,
|
|
||||||
'remove': 1,
|
|
||||||
'some': 1,
|
|
||||||
'takeRightWhile': 1,
|
|
||||||
'takeWhile': 1,
|
|
||||||
'times': 1,
|
|
||||||
'transform': 2
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map ary to method names. */
|
|
||||||
'aryMethod': {
|
|
||||||
1:[
|
|
||||||
'attempt', 'ceil', 'create', 'curry', 'curryRight', 'floor', 'fromPairs',
|
|
||||||
'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin', 'over',
|
|
||||||
'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
|
|
||||||
'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
|
|
||||||
],
|
|
||||||
2:[
|
|
||||||
'add', 'after', 'ary', 'assign', 'at', 'before', 'bind', 'bindKey',
|
|
||||||
'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
|
||||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
|
||||||
'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
|
||||||
'every', 'extend', 'filter', 'find', 'find', 'findIndex', 'findKey',
|
|
||||||
'findLast', 'findLastIndex', 'findLastKey', 'flatMap', 'forEach',
|
|
||||||
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
|
||||||
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
|
||||||
'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf',
|
|
||||||
'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', 'maxBy',
|
|
||||||
'merge', 'minBy', 'omit', 'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd',
|
|
||||||
'padStart', 'parseInt', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
|
|
||||||
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
|
||||||
'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
|
||||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
|
||||||
'split', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', 'takeRightWhile',
|
|
||||||
'takeWhile', 'tap', 'throttle', 'thru', 'times', 'truncate', 'union', 'uniqBy',
|
|
||||||
'uniqWith', 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject'
|
|
||||||
],
|
|
||||||
3:[
|
|
||||||
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
|
||||||
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'isEqualWith',
|
|
||||||
'isMatchWith', 'mergeWith', 'pullAllBy', 'reduce', 'reduceRight', 'replace',
|
|
||||||
'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy',
|
|
||||||
'unionWith', 'xorBy', 'xorWith', 'zipWith'
|
|
||||||
],
|
|
||||||
4:[
|
|
||||||
'fill', 'setWith'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map ary to rearg configs. */
|
|
||||||
'aryRearg': {
|
|
||||||
2: [1, 0],
|
|
||||||
3: [2, 1, 0],
|
|
||||||
4: [3, 2, 0, 1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to iteratee rearg configs. */
|
|
||||||
'iterateeRearg': {
|
|
||||||
'findKey': [1],
|
|
||||||
'findLastKey': [1],
|
|
||||||
'mapKeys': [1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to rearg configs. */
|
|
||||||
'methodRearg': {
|
|
||||||
'clamp': [2, 0, 1],
|
|
||||||
'reduce': [2, 0, 1],
|
|
||||||
'reduceRight': [2, 0, 1],
|
|
||||||
'set': [2, 0, 1],
|
|
||||||
'setWith': [3, 1, 2, 0],
|
|
||||||
'slice': [2, 0, 1],
|
|
||||||
'transform': [2, 0, 1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to iterate `mapping.aryMethod` keys. */
|
|
||||||
'caps': [1, 2, 3, 4],
|
|
||||||
|
|
||||||
/** Used to map keys to other keys. */
|
|
||||||
'key': {
|
|
||||||
'curryN': 'curry',
|
|
||||||
'curryRightN': 'curryRight',
|
|
||||||
'getOr': 'get'
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to identify methods which mutate arrays or objects. */
|
|
||||||
'mutate': {
|
|
||||||
'array': {
|
|
||||||
'fill': true,
|
|
||||||
'pull': true,
|
|
||||||
'pullAll': true,
|
|
||||||
'pullAllBy': true,
|
|
||||||
'pullAt': true,
|
|
||||||
'remove': true,
|
|
||||||
'reverse': true
|
|
||||||
},
|
|
||||||
'object': {
|
|
||||||
'assign': true,
|
|
||||||
'assignIn': true,
|
|
||||||
'assignInWith': true,
|
|
||||||
'assignWith': true,
|
|
||||||
'defaults': true,
|
|
||||||
'defaultsDeep': true,
|
|
||||||
'merge': true,
|
|
||||||
'mergeWith': true
|
|
||||||
},
|
|
||||||
'set': {
|
|
||||||
'set': true,
|
|
||||||
'setWith': true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to track methods with placeholder support */
|
|
||||||
'placeholder': {
|
|
||||||
'bind': true,
|
|
||||||
'bindKey': true,
|
|
||||||
'curry': true,
|
|
||||||
'curryRight': true,
|
|
||||||
'partial': true,
|
|
||||||
'partialRight': true
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to track methods that skip `_.rearg`. */
|
|
||||||
'skipRearg': {
|
|
||||||
'assign': true,
|
|
||||||
'assignIn': true,
|
|
||||||
'concat': true,
|
|
||||||
'defaults': true,
|
|
||||||
'defaultsDeep': true,
|
|
||||||
'difference': true,
|
|
||||||
'matchesProperty': true,
|
|
||||||
'merge': true,
|
|
||||||
'random': true,
|
|
||||||
'range': true,
|
|
||||||
'rangeRight': true,
|
|
||||||
'zip': true,
|
|
||||||
'zipObject': true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }
|
|
||||||
/******/ ])
|
|
||||||
});
|
|
||||||
;
|
|
||||||
9510
doc/README.md
9510
doc/README.md
File diff suppressed because it is too large
Load Diff
@@ -1,226 +0,0 @@
|
|||||||
var mapping = require('./_mapping'),
|
|
||||||
mutateMap = mapping.mutate,
|
|
||||||
placeholder = {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The base implementation of `convert` which accepts a `util` object of methods
|
|
||||||
* required to perform conversions.
|
|
||||||
*
|
|
||||||
* @param {Object} util The util object.
|
|
||||||
* @param {string} name The name of the function to wrap.
|
|
||||||
* @param {Function} func The function to wrap.
|
|
||||||
* @returns {Function|Object} Returns the converted function or object.
|
|
||||||
*/
|
|
||||||
function baseConvert(util, name, func) {
|
|
||||||
if (typeof func != 'function') {
|
|
||||||
func = name;
|
|
||||||
name = undefined;
|
|
||||||
}
|
|
||||||
if (func == null) {
|
|
||||||
throw new TypeError;
|
|
||||||
}
|
|
||||||
var isLib = name === undefined && typeof func.VERSION == 'string';
|
|
||||||
|
|
||||||
var _ = isLib ? func : {
|
|
||||||
'ary': util.ary,
|
|
||||||
'cloneDeep': util.cloneDeep,
|
|
||||||
'curry': util.curry,
|
|
||||||
'forEach': util.forEach,
|
|
||||||
'isFunction': util.isFunction,
|
|
||||||
'iteratee': util.iteratee,
|
|
||||||
'keys': util.keys,
|
|
||||||
'rearg': util.rearg
|
|
||||||
};
|
|
||||||
|
|
||||||
var ary = _.ary,
|
|
||||||
cloneDeep = _.cloneDeep,
|
|
||||||
curry = _.curry,
|
|
||||||
each = _.forEach,
|
|
||||||
isFunction = _.isFunction,
|
|
||||||
keys = _.keys,
|
|
||||||
rearg = _.rearg;
|
|
||||||
|
|
||||||
var baseArity = function(func, n) {
|
|
||||||
return n == 2
|
|
||||||
? function(a, b) { return func.apply(undefined, arguments); }
|
|
||||||
: function(a) { return func.apply(undefined, arguments); };
|
|
||||||
};
|
|
||||||
|
|
||||||
var baseAry = function(func, n) {
|
|
||||||
return n == 2
|
|
||||||
? function(a, b) { return func(a, b); }
|
|
||||||
: function(a) { return func(a); };
|
|
||||||
};
|
|
||||||
|
|
||||||
var cloneArray = function(array) {
|
|
||||||
var length = array ? array.length : 0,
|
|
||||||
result = Array(length);
|
|
||||||
|
|
||||||
while (length--) {
|
|
||||||
result[length] = array[length];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
var createCloner = function(func) {
|
|
||||||
return function(object) {
|
|
||||||
return func({}, object);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var immutWrap = function(func, cloner) {
|
|
||||||
return overArg(func, cloner, true);
|
|
||||||
};
|
|
||||||
|
|
||||||
var iterateeAry = function(func, n) {
|
|
||||||
return overArg(func, function(func) {
|
|
||||||
return baseAry(func, n);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var iterateeRearg = function(func, indexes) {
|
|
||||||
return overArg(func, function(func) {
|
|
||||||
var n = indexes.length;
|
|
||||||
return baseArity(rearg(baseAry(func, n), indexes), n);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var overArg = function(func, iteratee, retArg) {
|
|
||||||
return function() {
|
|
||||||
var length = arguments.length,
|
|
||||||
args = Array(length);
|
|
||||||
|
|
||||||
while (length--) {
|
|
||||||
args[length] = arguments[length];
|
|
||||||
}
|
|
||||||
args[0] = iteratee(args[0]);
|
|
||||||
var result = func.apply(undefined, args);
|
|
||||||
return retArg ? args[0] : result;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var wrappers = {
|
|
||||||
'iteratee': function(iteratee) {
|
|
||||||
return function() {
|
|
||||||
var func = arguments[0],
|
|
||||||
arity = arguments[1];
|
|
||||||
|
|
||||||
arity = arity > 2 ? (arity - 2) : 1;
|
|
||||||
func = iteratee(func);
|
|
||||||
var length = func.length;
|
|
||||||
return (length && length <= arity) ? func : baseAry(func, arity);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
'mixin': function(mixin) {
|
|
||||||
return function(source) {
|
|
||||||
var func = this;
|
|
||||||
if (!isFunction(func)) {
|
|
||||||
return mixin(func, Object(source));
|
|
||||||
}
|
|
||||||
var methods = [],
|
|
||||||
methodNames = [];
|
|
||||||
|
|
||||||
each(keys(source), function(key) {
|
|
||||||
var value = source[key];
|
|
||||||
if (isFunction(value)) {
|
|
||||||
methodNames.push(key);
|
|
||||||
methods.push(func.prototype[key]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mixin(func, Object(source));
|
|
||||||
|
|
||||||
each(methodNames, function(methodName, index) {
|
|
||||||
var method = methods[index];
|
|
||||||
if (isFunction(method)) {
|
|
||||||
func.prototype[methodName] = method;
|
|
||||||
} else {
|
|
||||||
delete func.prototype[methodName];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return func;
|
|
||||||
};
|
|
||||||
},
|
|
||||||
'runInContext': function(runInContext) {
|
|
||||||
return function(context) {
|
|
||||||
return baseConvert(util, runInContext(context));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var wrap = function(name, func) {
|
|
||||||
var wrapper = wrappers[name];
|
|
||||||
if (wrapper) {
|
|
||||||
return wrapper(func);
|
|
||||||
}
|
|
||||||
if (mutateMap.array[name]) {
|
|
||||||
func = immutWrap(func, cloneArray);
|
|
||||||
}
|
|
||||||
else if (mutateMap.object[name]) {
|
|
||||||
func = immutWrap(func, createCloner(func));
|
|
||||||
}
|
|
||||||
else if (mutateMap.set[name]) {
|
|
||||||
func = immutWrap(func, cloneDeep);
|
|
||||||
}
|
|
||||||
var result;
|
|
||||||
each(mapping.caps, function(cap) {
|
|
||||||
each(mapping.aryMethod[cap], function(otherName) {
|
|
||||||
if (name == otherName) {
|
|
||||||
var indexes = mapping.iterateeRearg[name],
|
|
||||||
n = !isLib && mapping.aryIteratee[name];
|
|
||||||
|
|
||||||
result = ary(func, cap);
|
|
||||||
if (cap > 1 && !mapping.skipRearg[name]) {
|
|
||||||
result = rearg(result, mapping.methodRearg[name] || mapping.aryRearg[cap]);
|
|
||||||
}
|
|
||||||
if (indexes) {
|
|
||||||
result = iterateeRearg(result, indexes);
|
|
||||||
} else if (n) {
|
|
||||||
result = iterateeAry(result, n);
|
|
||||||
}
|
|
||||||
if (cap > 1) {
|
|
||||||
result = curry(result, cap);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return !result;
|
|
||||||
});
|
|
||||||
|
|
||||||
result || (result = func);
|
|
||||||
if (mapping.placeholder[name]) {
|
|
||||||
result.placeholder = placeholder;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!isLib) {
|
|
||||||
return wrap(name, func);
|
|
||||||
}
|
|
||||||
// Iterate over methods for the current ary cap.
|
|
||||||
var pairs = [];
|
|
||||||
each(mapping.caps, function(cap) {
|
|
||||||
each(mapping.aryMethod[cap], function(key) {
|
|
||||||
var func = _[mapping.key[key] || key];
|
|
||||||
if (func) {
|
|
||||||
pairs.push([key, wrap(key, func)]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
|
|
||||||
each(pairs, function(pair) {
|
|
||||||
_[pair[0]] = pair[1];
|
|
||||||
});
|
|
||||||
|
|
||||||
// Wrap the lodash method and its aliases.
|
|
||||||
each(keys(_), function(key) {
|
|
||||||
each(mapping.alias[key] || [], function(alias) {
|
|
||||||
_[alias] = _[key];
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return _;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = baseConvert;
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
var baseConvert = require('./_baseConvert');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts `lodash` to an immutable auto-curried iteratee-first data-last version.
|
|
||||||
*
|
|
||||||
* @param {Function} lodash The lodash function.
|
|
||||||
* @returns {Function} Returns the converted `lodash`.
|
|
||||||
*/
|
|
||||||
function browserConvert(lodash) {
|
|
||||||
return baseConvert(lodash, lodash);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = browserConvert;
|
|
||||||
202
fp/_mapping.js
202
fp/_mapping.js
@@ -1,202 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
|
|
||||||
/** Used to map method names to their aliases. */
|
|
||||||
'alias': {
|
|
||||||
'ary': ['nAry'],
|
|
||||||
'assignIn': ['extend'],
|
|
||||||
'assignInWith': ['extendWith'],
|
|
||||||
'filter': ['whereEq'],
|
|
||||||
'flatten': ['unnest'],
|
|
||||||
'flow': ['pipe'],
|
|
||||||
'flowRight': ['compose'],
|
|
||||||
'forEach': ['each'],
|
|
||||||
'forEachRight': ['eachRight'],
|
|
||||||
'get': ['path', 'prop'],
|
|
||||||
'getOr': ['pathOr', 'propOr'],
|
|
||||||
'head': ['first'],
|
|
||||||
'includes': ['contains'],
|
|
||||||
'initial': ['init'],
|
|
||||||
'isEqual': ['equals'],
|
|
||||||
'mapValues': ['mapObj'],
|
|
||||||
'matchesProperty': ['pathEq'],
|
|
||||||
'omit': ['dissoc', 'omitAll'],
|
|
||||||
'overArgs': ['useWith'],
|
|
||||||
'overEvery': ['allPass'],
|
|
||||||
'overSome': ['somePass'],
|
|
||||||
'pick': ['pickAll'],
|
|
||||||
'propertyOf': ['propOf'],
|
|
||||||
'rest': ['unapply'],
|
|
||||||
'some': ['all'],
|
|
||||||
'spread': ['apply'],
|
|
||||||
'zipObject': ['zipObj']
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to their iteratee ary. */
|
|
||||||
'aryIteratee': {
|
|
||||||
'assignWith': 2,
|
|
||||||
'assignInWith': 2,
|
|
||||||
'cloneDeepWith': 1,
|
|
||||||
'cloneWith': 1,
|
|
||||||
'dropRightWhile': 1,
|
|
||||||
'dropWhile': 1,
|
|
||||||
'every': 1,
|
|
||||||
'filter': 1,
|
|
||||||
'find': 1,
|
|
||||||
'findIndex': 1,
|
|
||||||
'findKey': 1,
|
|
||||||
'findLast': 1,
|
|
||||||
'findLastIndex': 1,
|
|
||||||
'findLastKey': 1,
|
|
||||||
'flatMap': 1,
|
|
||||||
'forEach': 1,
|
|
||||||
'forEachRight': 1,
|
|
||||||
'forIn': 1,
|
|
||||||
'forInRight': 1,
|
|
||||||
'forOwn': 1,
|
|
||||||
'forOwnRight': 1,
|
|
||||||
'isEqualWith': 2,
|
|
||||||
'isMatchWith': 2,
|
|
||||||
'map': 1,
|
|
||||||
'mapKeys': 1,
|
|
||||||
'mapValues': 1,
|
|
||||||
'partition': 1,
|
|
||||||
'reduce': 2,
|
|
||||||
'reduceRight': 2,
|
|
||||||
'reject': 1,
|
|
||||||
'remove': 1,
|
|
||||||
'some': 1,
|
|
||||||
'takeRightWhile': 1,
|
|
||||||
'takeWhile': 1,
|
|
||||||
'times': 1,
|
|
||||||
'transform': 2
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map ary to method names. */
|
|
||||||
'aryMethod': {
|
|
||||||
1:[
|
|
||||||
'attempt', 'ceil', 'create', 'curry', 'curryRight', 'floor', 'fromPairs',
|
|
||||||
'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin', 'over',
|
|
||||||
'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
|
|
||||||
'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
|
|
||||||
],
|
|
||||||
2:[
|
|
||||||
'add', 'after', 'ary', 'assign', 'at', 'before', 'bind', 'bindKey',
|
|
||||||
'chunk', 'cloneDeepWith', 'cloneWith', 'concat', 'countBy', 'curryN',
|
|
||||||
'curryRightN', 'debounce', 'defaults', 'defaultsDeep', 'delay', 'difference',
|
|
||||||
'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',
|
|
||||||
'every', 'extend', 'filter', 'find', 'find', 'findIndex', 'findKey',
|
|
||||||
'findLast', 'findLastIndex', 'findLastKey', 'flatMap', 'forEach',
|
|
||||||
'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',
|
|
||||||
'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',
|
|
||||||
'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf',
|
|
||||||
'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', 'maxBy',
|
|
||||||
'merge', 'minBy', 'omit', 'omitBy', 'orderBy', 'overArgs', 'pad', 'padEnd',
|
|
||||||
'padStart', 'parseInt', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
|
|
||||||
'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
|
|
||||||
'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
|
|
||||||
'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
|
|
||||||
'split', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', 'takeRightWhile',
|
|
||||||
'takeWhile', 'tap', 'throttle', 'thru', 'times', 'truncate', 'union', 'uniqBy',
|
|
||||||
'uniqWith', 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject'
|
|
||||||
],
|
|
||||||
3:[
|
|
||||||
'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
|
|
||||||
'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'isEqualWith',
|
|
||||||
'isMatchWith', 'mergeWith', 'pullAllBy', 'reduce', 'reduceRight', 'replace',
|
|
||||||
'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform', 'unionBy',
|
|
||||||
'unionWith', 'xorBy', 'xorWith', 'zipWith'
|
|
||||||
],
|
|
||||||
4:[
|
|
||||||
'fill', 'setWith'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map ary to rearg configs. */
|
|
||||||
'aryRearg': {
|
|
||||||
2: [1, 0],
|
|
||||||
3: [2, 1, 0],
|
|
||||||
4: [3, 2, 0, 1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to iteratee rearg configs. */
|
|
||||||
'iterateeRearg': {
|
|
||||||
'findKey': [1],
|
|
||||||
'findLastKey': [1],
|
|
||||||
'mapKeys': [1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to map method names to rearg configs. */
|
|
||||||
'methodRearg': {
|
|
||||||
'clamp': [2, 0, 1],
|
|
||||||
'reduce': [2, 0, 1],
|
|
||||||
'reduceRight': [2, 0, 1],
|
|
||||||
'set': [2, 0, 1],
|
|
||||||
'setWith': [3, 1, 2, 0],
|
|
||||||
'slice': [2, 0, 1],
|
|
||||||
'transform': [2, 0, 1]
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to iterate `mapping.aryMethod` keys. */
|
|
||||||
'caps': [1, 2, 3, 4],
|
|
||||||
|
|
||||||
/** Used to map keys to other keys. */
|
|
||||||
'key': {
|
|
||||||
'curryN': 'curry',
|
|
||||||
'curryRightN': 'curryRight',
|
|
||||||
'getOr': 'get'
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to identify methods which mutate arrays or objects. */
|
|
||||||
'mutate': {
|
|
||||||
'array': {
|
|
||||||
'fill': true,
|
|
||||||
'pull': true,
|
|
||||||
'pullAll': true,
|
|
||||||
'pullAllBy': true,
|
|
||||||
'pullAt': true,
|
|
||||||
'remove': true,
|
|
||||||
'reverse': true
|
|
||||||
},
|
|
||||||
'object': {
|
|
||||||
'assign': true,
|
|
||||||
'assignIn': true,
|
|
||||||
'assignInWith': true,
|
|
||||||
'assignWith': true,
|
|
||||||
'defaults': true,
|
|
||||||
'defaultsDeep': true,
|
|
||||||
'merge': true,
|
|
||||||
'mergeWith': true
|
|
||||||
},
|
|
||||||
'set': {
|
|
||||||
'set': true,
|
|
||||||
'setWith': true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to track methods with placeholder support */
|
|
||||||
'placeholder': {
|
|
||||||
'bind': true,
|
|
||||||
'bindKey': true,
|
|
||||||
'curry': true,
|
|
||||||
'curryRight': true,
|
|
||||||
'partial': true,
|
|
||||||
'partialRight': true
|
|
||||||
},
|
|
||||||
|
|
||||||
/** Used to track methods that skip `_.rearg`. */
|
|
||||||
'skipRearg': {
|
|
||||||
'assign': true,
|
|
||||||
'assignIn': true,
|
|
||||||
'concat': true,
|
|
||||||
'defaults': true,
|
|
||||||
'defaultsDeep': true,
|
|
||||||
'difference': true,
|
|
||||||
'matchesProperty': true,
|
|
||||||
'merge': true,
|
|
||||||
'random': true,
|
|
||||||
'range': true,
|
|
||||||
'rangeRight': true,
|
|
||||||
'zip': true,
|
|
||||||
'zipObject': true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var _ = require('lodash'),
|
|
||||||
fs = require('fs-extra'),
|
|
||||||
uglify = require('uglify-js');
|
|
||||||
|
|
||||||
var uglifyOptions = require('./uglify.options.js');
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
function minify(inpath, outpath, callback, options) {
|
|
||||||
if (_.isFunction(outpath)) {
|
|
||||||
if (_.isObject(callback)) {
|
|
||||||
options = callback;
|
|
||||||
}
|
|
||||||
callback = outpath;
|
|
||||||
outpath = undefined;
|
|
||||||
}
|
|
||||||
if (!outpath) {
|
|
||||||
outpath = inpath.replace(/(?=\.js$)/, '.min');
|
|
||||||
}
|
|
||||||
var output = uglify.minify(inpath, _.defaults(options || {}, uglifyOptions));
|
|
||||||
fs.writeFile(outpath, output.code, 'utf-8', callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = minify;
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
'compress': {
|
|
||||||
'pure_getters': true,
|
|
||||||
'unsafe': true,
|
|
||||||
'unsafe_comps': true,
|
|
||||||
'warnings': false
|
|
||||||
},
|
|
||||||
'mangle': {
|
|
||||||
'except': ['define']
|
|
||||||
},
|
|
||||||
'output': {
|
|
||||||
'ascii_only': true,
|
|
||||||
'comments': /^!|@cc_on|@license|@preserve/i,
|
|
||||||
'max_line_len': 500
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var _ = require('lodash'),
|
|
||||||
async = require('async'),
|
|
||||||
path = require('path'),
|
|
||||||
webpack = require('webpack');
|
|
||||||
|
|
||||||
var minify = require('../common/minify.js');
|
|
||||||
|
|
||||||
var basePath = path.join(__dirname, '..', '..'),
|
|
||||||
distPath = path.join(basePath, 'dist'),
|
|
||||||
fpPath = path.join(basePath, 'fp'),
|
|
||||||
filename = 'lodash.fp.js';
|
|
||||||
|
|
||||||
var fpConfig = {
|
|
||||||
'entry': path.join(fpPath, '_convertBrowser.js'),
|
|
||||||
'output': {
|
|
||||||
'path': distPath,
|
|
||||||
'filename': filename,
|
|
||||||
'library': 'fp',
|
|
||||||
'libraryTarget': 'umd'
|
|
||||||
},
|
|
||||||
'plugins': [
|
|
||||||
new webpack.optimize.OccurenceOrderPlugin,
|
|
||||||
new webpack.optimize.DedupePlugin
|
|
||||||
]
|
|
||||||
};
|
|
||||||
|
|
||||||
var mappingConfig = {
|
|
||||||
'entry': path.join(fpPath, '_mapping.js'),
|
|
||||||
'output': {
|
|
||||||
'path': distPath,
|
|
||||||
'filename': 'mapping.fp.js',
|
|
||||||
'library': 'mapping',
|
|
||||||
'libraryTarget': 'umd'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
function onComplete(error) {
|
|
||||||
if (error) {
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async.series([
|
|
||||||
_.partial(webpack, mappingConfig),
|
|
||||||
_.partial(webpack, fpConfig),
|
|
||||||
_.partial(minify, path.join(distPath, filename))
|
|
||||||
], onComplete);
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
'ary': require('../ary'),
|
|
||||||
'cloneDeep': require('../cloneDeep'),
|
|
||||||
'curry': require('../curry'),
|
|
||||||
'forEach': require('../internal/arrayEach'),
|
|
||||||
'isFunction': require('../isFunction'),
|
|
||||||
'iteratee': require('../iteratee'),
|
|
||||||
'keys': require('../internal/baseKeys'),
|
|
||||||
'rearg': require('../rearg')
|
|
||||||
};
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
var baseConvert = require('./_baseConvert'),
|
|
||||||
util = require('./_util');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts `func` of `name` to an immutable auto-curried iteratee-first data-last
|
|
||||||
* version. If `name` is an object its methods will be converted.
|
|
||||||
*
|
|
||||||
* @param {string} name The name of the function to wrap.
|
|
||||||
* @param {Function} [func] The function to wrap.
|
|
||||||
* @returns {Function|Object} Returns the converted function or object.
|
|
||||||
*/
|
|
||||||
function convert(name, func) {
|
|
||||||
return baseConvert(util, name, func);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = convert;
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var _ = require('lodash'),
|
|
||||||
async = require('async'),
|
|
||||||
fs = require('fs-extra'),
|
|
||||||
path = require('path');
|
|
||||||
|
|
||||||
var minify = require('../common/minify.js');
|
|
||||||
|
|
||||||
var basePath = path.join(__dirname, '..', '..'),
|
|
||||||
distPath = path.join(basePath, 'dist'),
|
|
||||||
filename = 'lodash.js';
|
|
||||||
|
|
||||||
var baseLodash = path.join(basePath, filename),
|
|
||||||
distLodash = path.join(distPath, filename);
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
function onComplete(error) {
|
|
||||||
if (error) {
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async.series([
|
|
||||||
_.partial(fs.copy, baseLodash, distLodash),
|
|
||||||
_.partial(minify, distLodash)
|
|
||||||
], onComplete);
|
|
||||||
75
package.json
75
package.json
@@ -1,35 +1,50 @@
|
|||||||
{
|
{
|
||||||
"name": "lodash",
|
"name": "lodash",
|
||||||
"version": "4.0.1",
|
"version": "5.0.0",
|
||||||
"main": "lodash.js",
|
"license": "MIT",
|
||||||
"private": true,
|
"private": true,
|
||||||
"devDependencies": {
|
"main": "dist/lodash.js",
|
||||||
"async": "^1.5.2",
|
"sideEffects": false,
|
||||||
"chalk": "^1.1.1",
|
|
||||||
"codecov.io": "~0.1.6",
|
|
||||||
"coveralls": "^2.11.6",
|
|
||||||
"curl-amd": "~0.8.12",
|
|
||||||
"docdown": "~0.3.0",
|
|
||||||
"dojo": "^1.10.4",
|
|
||||||
"ecstatic": "^1.4.0",
|
|
||||||
"fs-extra": "~0.26.4",
|
|
||||||
"glob": "^6.0.4",
|
|
||||||
"istanbul": "0.4.2",
|
|
||||||
"jquery": "^2.2.0",
|
|
||||||
"jscs": "^2.8.0",
|
|
||||||
"lodash": "^3.10.1",
|
|
||||||
"platform": "^1.3.1",
|
|
||||||
"qunit-extras": "^1.4.5",
|
|
||||||
"qunitjs": "~1.20.0",
|
|
||||||
"request": "^2.67.0",
|
|
||||||
"requirejs": "^2.1.22",
|
|
||||||
"sauce-tunnel": "2.3.0",
|
|
||||||
"uglify-js": "2.6.1",
|
|
||||||
"webpack": "^1.12.11"
|
|
||||||
},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node lib/main/build-dist.js && node lib/fp/build-dist.js",
|
"prepare": "husky install",
|
||||||
"style": "jscs lodash.js lib/**/*.js",
|
"lint": "eslint ./src/**/*.ts"
|
||||||
"test": "npm run build && node test/test && node test/test-fp"
|
},
|
||||||
}
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "17.7.1",
|
||||||
|
"@commitlint/config-conventional": "17.7.0",
|
||||||
|
"@types/eslint": "8.44.2",
|
||||||
|
"@types/jest": "29.5.5",
|
||||||
|
"@typescript-eslint/eslint-plugin": "6.7.0",
|
||||||
|
"@typescript-eslint/parser": "6.7.0",
|
||||||
|
"eslint": "8.49.0",
|
||||||
|
"eslint-config-airbnb-base": "15.0.0",
|
||||||
|
"eslint-config-airbnb-typescript": "17.1.0",
|
||||||
|
"eslint-config-prettier": "9.0.0",
|
||||||
|
"eslint-plugin-import": "2.28.1",
|
||||||
|
"eslint-plugin-prettier": "5.0.0",
|
||||||
|
"husky": "8.0.3",
|
||||||
|
"lint-staged": "14.0.1",
|
||||||
|
"lodash": "4.17.21",
|
||||||
|
"prettier": "3.0.3"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"src/**/*.{ts}": [
|
||||||
|
"eslint --fix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"husky": {
|
||||||
|
"hooks": {
|
||||||
|
"pre-commit": "lint-staged",
|
||||||
|
"commit-msg": "bun run commitlint --edit $1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.1",
|
||||||
|
"yarn": "^1.22.19"
|
||||||
|
},
|
||||||
|
"volta": {
|
||||||
|
"node": "18.17.1",
|
||||||
|
"yarn": "1.22.19"
|
||||||
|
},
|
||||||
|
"engineStrict": true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,131 +0,0 @@
|
|||||||
;(function(window) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/** The base path of the lodash builds. */
|
|
||||||
var basePath = '../';
|
|
||||||
|
|
||||||
/** The lodash build to load. */
|
|
||||||
var build = (build = /build=([^&]+)/.exec(location.search)) && decodeURIComponent(build[1]);
|
|
||||||
|
|
||||||
/** The other library to load. */
|
|
||||||
var other = (other = /other=([^&]+)/.exec(location.search)) && decodeURIComponent(other[1]);
|
|
||||||
|
|
||||||
/** The `ui` object. */
|
|
||||||
var ui = {};
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers an event listener on an element.
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
* @param {Element} element The element.
|
|
||||||
* @param {string} eventName The name of the event.
|
|
||||||
* @param {Function} handler The event handler.
|
|
||||||
* @returns {Element} The element.
|
|
||||||
*/
|
|
||||||
function addListener(element, eventName, handler) {
|
|
||||||
if (typeof element.addEventListener != 'undefined') {
|
|
||||||
element.addEventListener(eventName, handler, false);
|
|
||||||
} else if (typeof element.attachEvent != 'undefined') {
|
|
||||||
element.attachEvent('on' + eventName, handler);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// Initialize controls.
|
|
||||||
addListener(window, 'load', function() {
|
|
||||||
function eventHandler(event) {
|
|
||||||
var buildIndex = buildList.selectedIndex,
|
|
||||||
otherIndex = otherList.selectedIndex,
|
|
||||||
search = location.search.replace(/^\?|&?(?:build|other)=[^&]*&?/g, '');
|
|
||||||
|
|
||||||
if (event.stopPropagation) {
|
|
||||||
event.stopPropagation();
|
|
||||||
} else {
|
|
||||||
event.cancelBubble = true;
|
|
||||||
}
|
|
||||||
location.href =
|
|
||||||
location.href.split('?')[0] + '?' +
|
|
||||||
(search ? search + '&' : '') +
|
|
||||||
'build=' + (buildIndex < 0 ? build : buildList[buildIndex].value) + '&' +
|
|
||||||
'other=' + (otherIndex < 0 ? other : otherList[otherIndex].value);
|
|
||||||
}
|
|
||||||
|
|
||||||
var span1 = document.createElement('span');
|
|
||||||
span1.style.cssText = 'float:right';
|
|
||||||
span1.innerHTML =
|
|
||||||
'<label for="perf-build">Build: </label>' +
|
|
||||||
'<select id="perf-build">' +
|
|
||||||
'<option value="lodash">lodash</option>' +
|
|
||||||
'</select>';
|
|
||||||
|
|
||||||
var span2 = document.createElement('span');
|
|
||||||
span2.style.cssText = 'float:right';
|
|
||||||
span2.innerHTML =
|
|
||||||
'<label for="perf-other">Other Library: </label>' +
|
|
||||||
'<select id="perf-other">' +
|
|
||||||
'<option value="underscore-dev">Underscore (development)</option>' +
|
|
||||||
'<option value="underscore">Underscore (production)</option>' +
|
|
||||||
'<option value="lodash">lodash</option>' +
|
|
||||||
'</select>';
|
|
||||||
|
|
||||||
var buildList = span1.lastChild,
|
|
||||||
otherList = span2.lastChild,
|
|
||||||
toolbar = document.getElementById('perf-toolbar');
|
|
||||||
|
|
||||||
toolbar.appendChild(span2);
|
|
||||||
toolbar.appendChild(span1);
|
|
||||||
|
|
||||||
buildList.selectedIndex = (function() {
|
|
||||||
switch (build) {
|
|
||||||
case 'lodash':
|
|
||||||
case null: return 0;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}());
|
|
||||||
|
|
||||||
otherList.selectedIndex = (function() {
|
|
||||||
switch (other) {
|
|
||||||
case 'underscore-dev': return 0;
|
|
||||||
case 'lodash': return 2;
|
|
||||||
case 'underscore':
|
|
||||||
case null: return 1;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}());
|
|
||||||
|
|
||||||
addListener(buildList, 'change', eventHandler);
|
|
||||||
addListener(otherList, 'change', eventHandler);
|
|
||||||
});
|
|
||||||
|
|
||||||
// The lodash build file path.
|
|
||||||
ui.buildPath = (function() {
|
|
||||||
var result;
|
|
||||||
switch (build) {
|
|
||||||
case null: build = 'lodash';
|
|
||||||
case 'lodash': result = 'dist/lodash.min.js'; break;
|
|
||||||
default: return build;
|
|
||||||
}
|
|
||||||
return basePath + result;
|
|
||||||
}());
|
|
||||||
|
|
||||||
// The other library file path.
|
|
||||||
ui.otherPath = (function() {
|
|
||||||
var result;
|
|
||||||
switch (other) {
|
|
||||||
case 'lodash': result = 'dist/lodash.min.js'; break;
|
|
||||||
case 'underscore-dev': result = 'vendor/underscore/underscore.js'; break;
|
|
||||||
case null: other = 'underscore';
|
|
||||||
case 'underscore': result = 'vendor/underscore/underscore-min.js'; break;
|
|
||||||
default: return other;
|
|
||||||
}
|
|
||||||
return basePath + result;
|
|
||||||
}());
|
|
||||||
|
|
||||||
ui.urlParams = { 'build': build, 'other': other };
|
|
||||||
|
|
||||||
window.ui = ui;
|
|
||||||
|
|
||||||
}(this));
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>lodash Performance Suite</title>
|
|
||||||
<style>
|
|
||||||
html, body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
#FirebugUI {
|
|
||||||
top: 2em;
|
|
||||||
}
|
|
||||||
#perf-toolbar {
|
|
||||||
background-color: #EEE;
|
|
||||||
color: #5E740B;
|
|
||||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
|
||||||
font-size: small;
|
|
||||||
padding: 0.5em 0 0.5em 2em;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="perf-toolbar"></div>
|
|
||||||
<script src="../node_modules/platform/platform.js"></script>
|
|
||||||
<script src="../lodash.js"></script>
|
|
||||||
<script src="../vendor/benchmark.js/benchmark.js"></script>
|
|
||||||
<script src="../vendor/firebug-lite/src/firebug-lite-debug.js"></script>
|
|
||||||
<script src="./asset/perf-ui.js"></script>
|
|
||||||
<script>
|
|
||||||
document.write('<script src="' + ui.buildPath + '"><\/script>');
|
|
||||||
</script>
|
|
||||||
<script>
|
|
||||||
var lodash = _.noConflict();
|
|
||||||
</script>
|
|
||||||
<script>
|
|
||||||
document.write('<script src="' + ui.otherPath + '"><\/script>');
|
|
||||||
</script>
|
|
||||||
<script src="perf.js"></script>
|
|
||||||
<script>
|
|
||||||
(function() {
|
|
||||||
var measured,
|
|
||||||
perfNow,
|
|
||||||
begin = new Date;
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
var fbUI = document.getElementById('FirebugUI'),
|
|
||||||
fbDoc = fbUI && (fbDoc = fbUI.contentWindow || fbUI.contentDocument).document || fbDoc,
|
|
||||||
fbCommandLine = fbDoc && fbDoc.getElementById('fbCommandLine');
|
|
||||||
|
|
||||||
if (!fbCommandLine) {
|
|
||||||
return setTimeout(init, 15);
|
|
||||||
}
|
|
||||||
fbUI.style.height = (
|
|
||||||
Math.max(document.documentElement.clientHeight, document.body.clientHeight) -
|
|
||||||
document.getElementById('perf-toolbar').clientHeight
|
|
||||||
) + 'px';
|
|
||||||
|
|
||||||
fbDoc.body.style.height = fbDoc.documentElement.style.height = '100%';
|
|
||||||
setTimeout(run, 15);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.onload = init;
|
|
||||||
}());
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
1983
perf/perf.js
1983
perf/perf.js
File diff suppressed because it is too large
Load Diff
18
src/.eslintrc.cjs
Normal file
18
src/.eslintrc.cjs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const path = require('node:path');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['**/*.{ts}'],
|
||||||
|
rules: {
|
||||||
|
'import/no-extraneous-dependencies': [
|
||||||
|
'error',
|
||||||
|
// Use package.json from both this package folder and root.
|
||||||
|
{ packageDir: [__dirname, path.join(__dirname, '../')] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
88
src/.internal/Hash.ts
Normal file
88
src/.internal/Hash.ts
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
/** Used to stand-in for `undefined` hash values. */
|
||||||
|
const HASH_UNDEFINED = '__lodash_hash_undefined__'
|
||||||
|
|
||||||
|
class Hash {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a hash object.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @constructor
|
||||||
|
* @param {Array} [entries] The key-value pairs to cache.
|
||||||
|
*/
|
||||||
|
constructor(entries) {
|
||||||
|
let index = -1
|
||||||
|
const length = entries == null ? 0 : entries.length
|
||||||
|
|
||||||
|
this.clear()
|
||||||
|
while (++index < length) {
|
||||||
|
const entry = entries[index]
|
||||||
|
this.set(entry[0], entry[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes all key-value entries from the hash.
|
||||||
|
*
|
||||||
|
* @memberOf Hash
|
||||||
|
*/
|
||||||
|
clear() {
|
||||||
|
this.__data__ = Object.create(null)
|
||||||
|
this.size = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes `key` and its value from the hash.
|
||||||
|
*
|
||||||
|
* @memberOf Hash
|
||||||
|
* @param {string} key The key of the value to remove.
|
||||||
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||||||
|
*/
|
||||||
|
delete(key) {
|
||||||
|
const result = this.has(key) && delete this.__data__[key]
|
||||||
|
this.size -= result ? 1 : 0
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the hash value for `key`.
|
||||||
|
*
|
||||||
|
* @memberOf Hash
|
||||||
|
* @param {string} key The key of the value to get.
|
||||||
|
* @returns {*} Returns the entry value.
|
||||||
|
*/
|
||||||
|
get(key) {
|
||||||
|
const data = this.__data__
|
||||||
|
const result = data[key]
|
||||||
|
return result === HASH_UNDEFINED ? undefined : result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a hash value for `key` exists.
|
||||||
|
*
|
||||||
|
* @memberOf Hash
|
||||||
|
* @param {string} key The key of the entry to check.
|
||||||
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||||||
|
*/
|
||||||
|
has(key) {
|
||||||
|
const data = this.__data__
|
||||||
|
return data[key] !== undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the hash `key` to `value`.
|
||||||
|
*
|
||||||
|
* @memberOf Hash
|
||||||
|
* @param {string} key The key of the value to set.
|
||||||
|
* @param {*} value The value to set.
|
||||||
|
* @returns {Object} Returns the hash instance.
|
||||||
|
*/
|
||||||
|
set(key, value) {
|
||||||
|
const data = this.__data__
|
||||||
|
this.size += this.has(key) ? 0 : 1
|
||||||
|
data[key] = value === undefined ? HASH_UNDEFINED : value
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Hash
|
||||||
103
src/.internal/ListCache.ts
Normal file
103
src/.internal/ListCache.ts
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
import assocIndexOf from './assocIndexOf.js'
|
||||||
|
|
||||||
|
class ListCache {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an list cache object.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @constructor
|
||||||
|
* @param {Array} [entries] The key-value pairs to cache.
|
||||||
|
*/
|
||||||
|
constructor(entries) {
|
||||||
|
let index = -1
|
||||||
|
const length = entries == null ? 0 : entries.length
|
||||||
|
|
||||||
|
this.clear()
|
||||||
|
while (++index < length) {
|
||||||
|
const entry = entries[index]
|
||||||
|
this.set(entry[0], entry[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes all key-value entries from the list cache.
|
||||||
|
*
|
||||||
|
* @memberOf ListCache
|
||||||
|
*/
|
||||||
|
clear() {
|
||||||
|
this.__data__ = []
|
||||||
|
this.size = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes `key` and its value from the list cache.
|
||||||
|
*
|
||||||
|
* @memberOf ListCache
|
||||||
|
* @param {string} key The key of the value to remove.
|
||||||
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||||||
|
*/
|
||||||
|
delete(key) {
|
||||||
|
const data = this.__data__
|
||||||
|
const index = assocIndexOf(data, key)
|
||||||
|
|
||||||
|
if (index < 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const lastIndex = data.length - 1
|
||||||
|
if (index === lastIndex) {
|
||||||
|
data.pop()
|
||||||
|
} else {
|
||||||
|
data.splice(index, 1)
|
||||||
|
}
|
||||||
|
--this.size
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list cache value for `key`.
|
||||||
|
*
|
||||||
|
* @memberOf ListCache
|
||||||
|
* @param {string} key The key of the value to get.
|
||||||
|
* @returns {*} Returns the entry value.
|
||||||
|
*/
|
||||||
|
get(key) {
|
||||||
|
const data = this.__data__
|
||||||
|
const index = assocIndexOf(data, key)
|
||||||
|
return index < 0 ? undefined : data[index][1]
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a list cache value for `key` exists.
|
||||||
|
*
|
||||||
|
* @memberOf ListCache
|
||||||
|
* @param {string} key The key of the entry to check.
|
||||||
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||||||
|
*/
|
||||||
|
has(key) {
|
||||||
|
return assocIndexOf(this.__data__, key) > -1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the list cache `key` to `value`.
|
||||||
|
*
|
||||||
|
* @memberOf ListCache
|
||||||
|
* @param {string} key The key of the value to set.
|
||||||
|
* @param {*} value The value to set.
|
||||||
|
* @returns {Object} Returns the list cache instance.
|
||||||
|
*/
|
||||||
|
set(key, value) {
|
||||||
|
const data = this.__data__
|
||||||
|
const index = assocIndexOf(data, key)
|
||||||
|
|
||||||
|
if (index < 0) {
|
||||||
|
++this.size
|
||||||
|
data.push([key, value])
|
||||||
|
} else {
|
||||||
|
data[index][1] = value
|
||||||
|
}
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ListCache
|
||||||
120
src/.internal/MapCache.ts
Normal file
120
src/.internal/MapCache.ts
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
|
||||||
|
import Hash from './Hash.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the data for `map`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} map The map to query.
|
||||||
|
* @param {string} key The reference key.
|
||||||
|
* @returns {*} Returns the map data.
|
||||||
|
*/
|
||||||
|
function getMapData({ __data__ }, key) {
|
||||||
|
const data = __data__
|
||||||
|
return isKeyable(key)
|
||||||
|
? data[typeof key === 'string' ? 'string' : 'hash']
|
||||||
|
: data.map
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if `value` is suitable for use as unique object key.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {*} value The value to check.
|
||||||
|
* @returns {boolean} Returns `true` if `value` is suitable, else `false`.
|
||||||
|
*/
|
||||||
|
function isKeyable(value) {
|
||||||
|
const type = typeof value
|
||||||
|
return (type === 'string' || type === 'number' || type === 'symbol' || type === 'boolean')
|
||||||
|
? (value !== '__proto__')
|
||||||
|
: (value === null)
|
||||||
|
}
|
||||||
|
|
||||||
|
class MapCache {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a map cache object to store key-value pairs.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @constructor
|
||||||
|
* @param {Array} [entries] The key-value pairs to cache.
|
||||||
|
*/
|
||||||
|
constructor(entries) {
|
||||||
|
let index = -1
|
||||||
|
const length = entries == null ? 0 : entries.length
|
||||||
|
|
||||||
|
this.clear()
|
||||||
|
while (++index < length) {
|
||||||
|
const entry = entries[index]
|
||||||
|
this.set(entry[0], entry[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes all key-value entries from the map.
|
||||||
|
*
|
||||||
|
* @memberOf MapCache
|
||||||
|
*/
|
||||||
|
clear() {
|
||||||
|
this.size = 0
|
||||||
|
this.__data__ = {
|
||||||
|
'hash': new Hash,
|
||||||
|
'map': new Map,
|
||||||
|
'string': new Hash
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes `key` and its value from the map.
|
||||||
|
*
|
||||||
|
* @memberOf MapCache
|
||||||
|
* @param {string} key The key of the value to remove.
|
||||||
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||||||
|
*/
|
||||||
|
delete(key) {
|
||||||
|
const result = getMapData(this, key)['delete'](key)
|
||||||
|
this.size -= result ? 1 : 0
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the map value for `key`.
|
||||||
|
*
|
||||||
|
* @memberOf MapCache
|
||||||
|
* @param {string} key The key of the value to get.
|
||||||
|
* @returns {*} Returns the entry value.
|
||||||
|
*/
|
||||||
|
get(key) {
|
||||||
|
return getMapData(this, key).get(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a map value for `key` exists.
|
||||||
|
*
|
||||||
|
* @memberOf MapCache
|
||||||
|
* @param {string} key The key of the entry to check.
|
||||||
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||||||
|
*/
|
||||||
|
has(key) {
|
||||||
|
return getMapData(this, key).has(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the map `key` to `value`.
|
||||||
|
*
|
||||||
|
* @memberOf MapCache
|
||||||
|
* @param {string} key The key of the value to set.
|
||||||
|
* @param {*} value The value to set.
|
||||||
|
* @returns {Object} Returns the map cache instance.
|
||||||
|
*/
|
||||||
|
set(key, value) {
|
||||||
|
const data = getMapData(this, key)
|
||||||
|
const size = data.size
|
||||||
|
|
||||||
|
data.set(key, value)
|
||||||
|
this.size += data.size === size ? 0 : 1
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default MapCache
|
||||||
52
src/.internal/SetCache.ts
Normal file
52
src/.internal/SetCache.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import MapCache from './MapCache.js'
|
||||||
|
|
||||||
|
/** Used to stand-in for `undefined` hash values. */
|
||||||
|
const HASH_UNDEFINED = '__lodash_hash_undefined__'
|
||||||
|
|
||||||
|
class SetCache {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an array cache object to store unique values.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @constructor
|
||||||
|
* @param {Array} [values] The values to cache.
|
||||||
|
*/
|
||||||
|
constructor(values) {
|
||||||
|
let index = -1
|
||||||
|
const length = values == null ? 0 : values.length
|
||||||
|
|
||||||
|
this.__data__ = new MapCache
|
||||||
|
while (++index < length) {
|
||||||
|
this.add(values[index])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds `value` to the array cache.
|
||||||
|
*
|
||||||
|
* @memberOf SetCache
|
||||||
|
* @alias push
|
||||||
|
* @param {*} value The value to cache.
|
||||||
|
* @returns {Object} Returns the cache instance.
|
||||||
|
*/
|
||||||
|
add(value) {
|
||||||
|
this.__data__.set(value, HASH_UNDEFINED)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if `value` is in the array cache.
|
||||||
|
*
|
||||||
|
* @memberOf SetCache
|
||||||
|
* @param {*} value The value to search for.
|
||||||
|
* @returns {boolean} Returns `true` if `value` is found, else `false`.
|
||||||
|
*/
|
||||||
|
has(value) {
|
||||||
|
return this.__data__.has(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SetCache.prototype.push = SetCache.prototype.add
|
||||||
|
|
||||||
|
export default SetCache
|
||||||
93
src/.internal/Stack.ts
Normal file
93
src/.internal/Stack.ts
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import ListCache from './ListCache.js'
|
||||||
|
import MapCache from './MapCache.js'
|
||||||
|
|
||||||
|
/** Used as the size to enable large array optimizations. */
|
||||||
|
const LARGE_ARRAY_SIZE = 200
|
||||||
|
|
||||||
|
class Stack {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a stack cache object to store key-value pairs.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @constructor
|
||||||
|
* @param {Array} [entries] The key-value pairs to cache.
|
||||||
|
*/
|
||||||
|
constructor(entries) {
|
||||||
|
const data = this.__data__ = new ListCache(entries)
|
||||||
|
this.size = data.size
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes all key-value entries from the stack.
|
||||||
|
*
|
||||||
|
* @memberOf Stack
|
||||||
|
*/
|
||||||
|
clear() {
|
||||||
|
this.__data__ = new ListCache
|
||||||
|
this.size = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes `key` and its value from the stack.
|
||||||
|
*
|
||||||
|
* @memberOf Stack
|
||||||
|
* @param {string} key The key of the value to remove.
|
||||||
|
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||||||
|
*/
|
||||||
|
delete(key) {
|
||||||
|
const data = this.__data__
|
||||||
|
const result = data['delete'](key)
|
||||||
|
|
||||||
|
this.size = data.size
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the stack value for `key`.
|
||||||
|
*
|
||||||
|
* @memberOf Stack
|
||||||
|
* @param {string} key The key of the value to get.
|
||||||
|
* @returns {*} Returns the entry value.
|
||||||
|
*/
|
||||||
|
get(key) {
|
||||||
|
return this.__data__.get(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a stack value for `key` exists.
|
||||||
|
*
|
||||||
|
* @memberOf Stack
|
||||||
|
* @param {string} key The key of the entry to check.
|
||||||
|
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||||||
|
*/
|
||||||
|
has(key) {
|
||||||
|
return this.__data__.has(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the stack `key` to `value`.
|
||||||
|
*
|
||||||
|
* @memberOf Stack
|
||||||
|
* @param {string} key The key of the value to set.
|
||||||
|
* @param {*} value The value to set.
|
||||||
|
* @returns {Object} Returns the stack cache instance.
|
||||||
|
*/
|
||||||
|
set(key, value) {
|
||||||
|
let data = this.__data__
|
||||||
|
if (data instanceof ListCache) {
|
||||||
|
const pairs = data.__data__
|
||||||
|
if (pairs.length < LARGE_ARRAY_SIZE - 1) {
|
||||||
|
pairs.push([key, value])
|
||||||
|
this.size = ++data.size
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
data = this.__data__ = new MapCache(pairs)
|
||||||
|
}
|
||||||
|
data.set(key, value)
|
||||||
|
this.size = data.size
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Stack
|
||||||
15
src/.internal/addMapEntry.ts
Normal file
15
src/.internal/addMapEntry.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Adds the key-value `pair` to `map`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} map The map to modify.
|
||||||
|
* @param {Array} pair The key-value pair to add.
|
||||||
|
* @returns {Object} Returns `map`.
|
||||||
|
*/
|
||||||
|
function addMapEntry(map, pair) {
|
||||||
|
// Don't return `map.set` because it's not chainable in IE 11.
|
||||||
|
map.set(pair[0], pair[1])
|
||||||
|
return map
|
||||||
|
}
|
||||||
|
|
||||||
|
export default addMapEntry
|
||||||
15
src/.internal/addSetEntry.ts
Normal file
15
src/.internal/addSetEntry.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Adds `value` to `set`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} set The set to modify.
|
||||||
|
* @param {*} value The value to add.
|
||||||
|
* @returns {Object} Returns `set`.
|
||||||
|
*/
|
||||||
|
function addSetEntry(set, value) {
|
||||||
|
// Don't return `set.add` because it's not chainable in IE 11.
|
||||||
|
set.add(value)
|
||||||
|
return set
|
||||||
|
}
|
||||||
|
|
||||||
|
export default addSetEntry
|
||||||
21
src/.internal/arrayEach.ts
Normal file
21
src/.internal/arrayEach.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* A specialized version of `forEach` for arrays.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} [array] The array to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @returns {Array} Returns `array`.
|
||||||
|
*/
|
||||||
|
function arrayEach(array, iteratee) {
|
||||||
|
let index = -1
|
||||||
|
const length = array.length
|
||||||
|
|
||||||
|
while (++index < length) {
|
||||||
|
if (iteratee(array[index], index, array) === false) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return array
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayEach
|
||||||
20
src/.internal/arrayEachRight.ts
Normal file
20
src/.internal/arrayEachRight.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* A specialized version of `forEachRight` for arrays.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} [array] The array to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @returns {Array} Returns `array`.
|
||||||
|
*/
|
||||||
|
function arrayEachRight(array, iteratee) {
|
||||||
|
let length = array == null ? 0 : array.length
|
||||||
|
|
||||||
|
while (length--) {
|
||||||
|
if (iteratee(array[length], length, array) === false) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return array
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayEachRight
|
||||||
17
src/.internal/arrayIncludes.ts
Normal file
17
src/.internal/arrayIncludes.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import baseIndexOf from './baseIndexOf.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A specialized version of `includes` for arrays without support for
|
||||||
|
* specifying an index to search from.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} [array] The array to inspect.
|
||||||
|
* @param {*} target The value to search for.
|
||||||
|
* @returns {boolean} Returns `true` if `target` is found, else `false`.
|
||||||
|
*/
|
||||||
|
function arrayIncludes(array, value) {
|
||||||
|
const length = array == null ? 0 : array.length
|
||||||
|
return !!length && baseIndexOf(array, value, 0) > -1
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayIncludes
|
||||||
23
src/.internal/arrayIncludesWith.ts
Normal file
23
src/.internal/arrayIncludesWith.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* This function is like `arrayIncludes` except that it accepts a comparator.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} [array] The array to inspect.
|
||||||
|
* @param {*} target The value to search for.
|
||||||
|
* @param {Function} comparator The comparator invoked per element.
|
||||||
|
* @returns {boolean} Returns `true` if `target` is found, else `false`.
|
||||||
|
*/
|
||||||
|
function arrayIncludesWith(array, target, comparator) {
|
||||||
|
if (array == null) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const value of array) {
|
||||||
|
if (comparator(target, value)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayIncludesWith
|
||||||
43
src/.internal/arrayLikeKeys.ts
Normal file
43
src/.internal/arrayLikeKeys.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import isArguments from '../isArguments.js'
|
||||||
|
import isBuffer from '../isBuffer.js'
|
||||||
|
import isIndex from './isIndex.js'
|
||||||
|
import isTypedArray from '../isTypedArray.js'
|
||||||
|
|
||||||
|
/** Used to check objects for own properties. */
|
||||||
|
const hasOwnProperty = Object.prototype.hasOwnProperty
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an array of the enumerable property names of the array-like `value`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {*} value The value to query.
|
||||||
|
* @param {boolean} inherited Specify returning inherited property names.
|
||||||
|
* @returns {Array} Returns the array of property names.
|
||||||
|
*/
|
||||||
|
function arrayLikeKeys(value, inherited) {
|
||||||
|
const isArr = Array.isArray(value)
|
||||||
|
const isArg = !isArr && isArguments(value)
|
||||||
|
const isBuff = !isArr && !isArg && isBuffer(value)
|
||||||
|
const isType = !isArr && !isArg && !isBuff && isTypedArray(value)
|
||||||
|
const skipIndexes = isArr || isArg || isBuff || isType
|
||||||
|
const length = value.length
|
||||||
|
const result = new Array(skipIndexes ? length : 0)
|
||||||
|
let index = skipIndexes ? -1 : length
|
||||||
|
while (++index < length) {
|
||||||
|
result[index] = `${index}`
|
||||||
|
}
|
||||||
|
for (const key in value) {
|
||||||
|
if ((inherited || hasOwnProperty.call(value, key)) &&
|
||||||
|
!(skipIndexes && (
|
||||||
|
// Safari 9 has enumerable `arguments.length` in strict mode.
|
||||||
|
(key === 'length' ||
|
||||||
|
// Skip index properties.
|
||||||
|
isIndex(key, length))
|
||||||
|
))) {
|
||||||
|
result.push(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayLikeKeys
|
||||||
25
src/.internal/arrayReduce.ts
Normal file
25
src/.internal/arrayReduce.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* A specialized version of `reduce` for arrays.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} [array] The array to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @param {*} [accumulator] The initial value.
|
||||||
|
* @param {boolean} [initAccum] Specify using the first element of `array` as
|
||||||
|
* the initial value.
|
||||||
|
* @returns {*} Returns the accumulated value.
|
||||||
|
*/
|
||||||
|
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
||||||
|
let index = -1
|
||||||
|
const length = array == null ? 0 : array.length
|
||||||
|
|
||||||
|
if (initAccum && length) {
|
||||||
|
accumulator = array[++index]
|
||||||
|
}
|
||||||
|
while (++index < length) {
|
||||||
|
accumulator = iteratee(accumulator, array[index], index, array)
|
||||||
|
}
|
||||||
|
return accumulator
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayReduce
|
||||||
23
src/.internal/arrayReduceRight.ts
Normal file
23
src/.internal/arrayReduceRight.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* A specialized version of `reduceRight` for arrays.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} [array] The array to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @param {*} [accumulator] The initial value.
|
||||||
|
* @param {boolean} [initAccum] Specify using the last element of `array` as
|
||||||
|
* the initial value.
|
||||||
|
* @returns {*} Returns the accumulated value.
|
||||||
|
*/
|
||||||
|
function arrayReduceRight(array, iteratee, accumulator, initAccum) {
|
||||||
|
let length = array == null ? 0 : array.length
|
||||||
|
if (initAccum && length) {
|
||||||
|
accumulator = array[--length]
|
||||||
|
}
|
||||||
|
while (length--) {
|
||||||
|
accumulator = iteratee(accumulator, array[length], length, array)
|
||||||
|
}
|
||||||
|
return accumulator
|
||||||
|
}
|
||||||
|
|
||||||
|
export default arrayReduceRight
|
||||||
12
src/.internal/asciiSize.ts
Normal file
12
src/.internal/asciiSize.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Gets the size of an ASCII `string`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} string The string inspect.
|
||||||
|
* @returns {number} Returns the string size.
|
||||||
|
*/
|
||||||
|
function asciiSize({ length }) {
|
||||||
|
return length
|
||||||
|
}
|
||||||
|
|
||||||
|
export default asciiSize
|
||||||
12
src/.internal/asciiToArray.ts
Normal file
12
src/.internal/asciiToArray.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Converts an ASCII `string` to an array.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} string The string to convert.
|
||||||
|
* @returns {Array} Returns the converted array.
|
||||||
|
*/
|
||||||
|
function asciiToArray(string) {
|
||||||
|
return string.split('')
|
||||||
|
}
|
||||||
|
|
||||||
|
export default asciiToArray
|
||||||
20
src/.internal/assignMergeValue.ts
Normal file
20
src/.internal/assignMergeValue.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import baseAssignValue from './baseAssignValue.js'
|
||||||
|
import eq from '../eq.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function is like `assignValue` except that it doesn't assign
|
||||||
|
* `undefined` values.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to modify.
|
||||||
|
* @param {string} key The key of the property to assign.
|
||||||
|
* @param {*} value The value to assign.
|
||||||
|
*/
|
||||||
|
function assignMergeValue(object, key, value) {
|
||||||
|
if ((value !== undefined && !eq(object[key], value)) ||
|
||||||
|
(value === undefined && !(key in object))) {
|
||||||
|
baseAssignValue(object, key, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default assignMergeValue
|
||||||
27
src/.internal/assignValue.ts
Normal file
27
src/.internal/assignValue.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import baseAssignValue from './baseAssignValue.js'
|
||||||
|
import eq from '../eq.js'
|
||||||
|
|
||||||
|
/** Used to check objects for own properties. */
|
||||||
|
const hasOwnProperty = Object.prototype.hasOwnProperty
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assigns `value` to `key` of `object` if the existing value is not equivalent.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to modify.
|
||||||
|
* @param {string} key The key of the property to assign.
|
||||||
|
* @param {*} value The value to assign.
|
||||||
|
*/
|
||||||
|
function assignValue(object, key, value) {
|
||||||
|
const objValue = object[key]
|
||||||
|
|
||||||
|
if (!(hasOwnProperty.call(object, key) && eq(objValue, value))) {
|
||||||
|
if (value !== 0 || (1 / value) === (1 / objValue)) {
|
||||||
|
baseAssignValue(object, key, value)
|
||||||
|
}
|
||||||
|
} else if (value === undefined && !(key in object)) {
|
||||||
|
baseAssignValue(object, key, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default assignValue
|
||||||
21
src/.internal/assocIndexOf.ts
Normal file
21
src/.internal/assocIndexOf.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import eq from '../eq.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the index at which the `key` is found in `array` of key-value pairs.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to inspect.
|
||||||
|
* @param {*} key The key to search for.
|
||||||
|
* @returns {number} Returns the index of the matched value, else `-1`.
|
||||||
|
*/
|
||||||
|
function assocIndexOf(array, key) {
|
||||||
|
let { length } = array
|
||||||
|
while (length--) {
|
||||||
|
if (eq(array[length][0], key)) {
|
||||||
|
return length
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
export default assocIndexOf
|
||||||
23
src/.internal/baseAssignValue.ts
Normal file
23
src/.internal/baseAssignValue.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `assignValue` and `assignMergeValue` without
|
||||||
|
* value checks.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to modify.
|
||||||
|
* @param {string} key The key of the property to assign.
|
||||||
|
* @param {*} value The value to assign.
|
||||||
|
*/
|
||||||
|
function baseAssignValue(object, key, value) {
|
||||||
|
if (key === '__proto__') {
|
||||||
|
Object.defineProperty(object, key, {
|
||||||
|
'configurable': true,
|
||||||
|
'enumerable': true,
|
||||||
|
'value': value,
|
||||||
|
'writable': true
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
object[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseAssignValue
|
||||||
23
src/.internal/baseAt.ts
Normal file
23
src/.internal/baseAt.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import get from '../get.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `at` without support for individual paths.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to iterate over.
|
||||||
|
* @param {string[]} paths The property paths to pick.
|
||||||
|
* @returns {Array} Returns the picked elements.
|
||||||
|
*/
|
||||||
|
function baseAt(object, paths) {
|
||||||
|
let index = -1
|
||||||
|
const length = paths.length
|
||||||
|
const result = new Array(length)
|
||||||
|
const skip = object == null
|
||||||
|
|
||||||
|
while (++index < length) {
|
||||||
|
result[index] = skip ? undefined : get(object, paths[index])
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseAt
|
||||||
241
src/.internal/baseClone.ts
Normal file
241
src/.internal/baseClone.ts
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
import Stack from './Stack.js'
|
||||||
|
import arrayEach from './arrayEach.js'
|
||||||
|
import assignValue from './assignValue.js'
|
||||||
|
import cloneBuffer from './cloneBuffer.js'
|
||||||
|
import copyArray from './copyArray.js'
|
||||||
|
import copyObject from './copyObject.js'
|
||||||
|
import cloneArrayBuffer from './cloneArrayBuffer.js'
|
||||||
|
import cloneDataView from './cloneDataView.js'
|
||||||
|
import cloneRegExp from './cloneRegExp.js'
|
||||||
|
import cloneSymbol from './cloneSymbol.js'
|
||||||
|
import cloneTypedArray from './cloneTypedArray.js'
|
||||||
|
import copySymbols from './copySymbols.js'
|
||||||
|
import copySymbolsIn from './copySymbolsIn.js'
|
||||||
|
import getAllKeys from './getAllKeys.js'
|
||||||
|
import getAllKeysIn from './getAllKeysIn.js'
|
||||||
|
import getTag from './getTag.js'
|
||||||
|
import initCloneObject from './initCloneObject.js'
|
||||||
|
import isBuffer from '../isBuffer.js'
|
||||||
|
import isObject from '../isObject.js'
|
||||||
|
import isTypedArray from '../isTypedArray.js'
|
||||||
|
import keys from '../keys.js'
|
||||||
|
import keysIn from '../keysIn.js'
|
||||||
|
|
||||||
|
/** Used to compose bitmasks for cloning. */
|
||||||
|
const CLONE_DEEP_FLAG = 1
|
||||||
|
const CLONE_FLAT_FLAG = 2
|
||||||
|
const CLONE_SYMBOLS_FLAG = 4
|
||||||
|
|
||||||
|
/** `Object#toString` result references. */
|
||||||
|
const argsTag = '[object Arguments]'
|
||||||
|
const arrayTag = '[object Array]'
|
||||||
|
const boolTag = '[object Boolean]'
|
||||||
|
const dateTag = '[object Date]'
|
||||||
|
const errorTag = '[object Error]'
|
||||||
|
const mapTag = '[object Map]'
|
||||||
|
const numberTag = '[object Number]'
|
||||||
|
const objectTag = '[object Object]'
|
||||||
|
const regexpTag = '[object RegExp]'
|
||||||
|
const setTag = '[object Set]'
|
||||||
|
const stringTag = '[object String]'
|
||||||
|
const symbolTag = '[object Symbol]'
|
||||||
|
const weakMapTag = '[object WeakMap]'
|
||||||
|
|
||||||
|
const arrayBufferTag = '[object ArrayBuffer]'
|
||||||
|
const dataViewTag = '[object DataView]'
|
||||||
|
const float32Tag = '[object Float32Array]'
|
||||||
|
const float64Tag = '[object Float64Array]'
|
||||||
|
const int8Tag = '[object Int8Array]'
|
||||||
|
const int16Tag = '[object Int16Array]'
|
||||||
|
const int32Tag = '[object Int32Array]'
|
||||||
|
const uint8Tag = '[object Uint8Array]'
|
||||||
|
const uint8ClampedTag = '[object Uint8ClampedArray]'
|
||||||
|
const uint16Tag = '[object Uint16Array]'
|
||||||
|
const uint32Tag = '[object Uint32Array]'
|
||||||
|
|
||||||
|
/** Used to identify `toStringTag` values supported by `clone`. */
|
||||||
|
const cloneableTags = {}
|
||||||
|
cloneableTags[argsTag] = cloneableTags[arrayTag] =
|
||||||
|
cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
|
||||||
|
cloneableTags[boolTag] = cloneableTags[dateTag] =
|
||||||
|
cloneableTags[float32Tag] = cloneableTags[float64Tag] =
|
||||||
|
cloneableTags[int8Tag] = cloneableTags[int16Tag] =
|
||||||
|
cloneableTags[int32Tag] = cloneableTags[mapTag] =
|
||||||
|
cloneableTags[numberTag] = cloneableTags[objectTag] =
|
||||||
|
cloneableTags[regexpTag] = cloneableTags[setTag] =
|
||||||
|
cloneableTags[stringTag] = cloneableTags[symbolTag] =
|
||||||
|
cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
|
||||||
|
cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true
|
||||||
|
cloneableTags[errorTag] = cloneableTags[weakMapTag] = false
|
||||||
|
|
||||||
|
/** Used to check objects for own properties. */
|
||||||
|
const hasOwnProperty = Object.prototype.hasOwnProperty
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes an object clone based on its `toStringTag`.
|
||||||
|
*
|
||||||
|
* **Note:** This function only supports cloning values with tags of
|
||||||
|
* `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to clone.
|
||||||
|
* @param {string} tag The `toStringTag` of the object to clone.
|
||||||
|
* @param {boolean} [isDeep] Specify a deep clone.
|
||||||
|
* @returns {Object} Returns the initialized clone.
|
||||||
|
*/
|
||||||
|
function initCloneByTag(object, tag, isDeep) {
|
||||||
|
const Ctor = object.constructor
|
||||||
|
switch (tag) {
|
||||||
|
case arrayBufferTag:
|
||||||
|
return cloneArrayBuffer(object)
|
||||||
|
|
||||||
|
case boolTag:
|
||||||
|
case dateTag:
|
||||||
|
return new Ctor(+object)
|
||||||
|
|
||||||
|
case dataViewTag:
|
||||||
|
return cloneDataView(object, isDeep)
|
||||||
|
|
||||||
|
case float32Tag: case float64Tag:
|
||||||
|
case int8Tag: case int16Tag: case int32Tag:
|
||||||
|
case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
|
||||||
|
return cloneTypedArray(object, isDeep)
|
||||||
|
|
||||||
|
case mapTag:
|
||||||
|
return new Ctor
|
||||||
|
|
||||||
|
case numberTag:
|
||||||
|
case stringTag:
|
||||||
|
return new Ctor(object)
|
||||||
|
|
||||||
|
case regexpTag:
|
||||||
|
return cloneRegExp(object)
|
||||||
|
|
||||||
|
case setTag:
|
||||||
|
return new Ctor
|
||||||
|
|
||||||
|
case symbolTag:
|
||||||
|
return cloneSymbol(object)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes an array clone.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to clone.
|
||||||
|
* @returns {Array} Returns the initialized clone.
|
||||||
|
*/
|
||||||
|
function initCloneArray(array) {
|
||||||
|
const { length } = array
|
||||||
|
const result = new array.constructor(length)
|
||||||
|
|
||||||
|
// Add properties assigned by `RegExp#exec`.
|
||||||
|
if (length && typeof array[0] === 'string' && hasOwnProperty.call(array, 'index')) {
|
||||||
|
result.index = array.index
|
||||||
|
result.input = array.input
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `clone` and `cloneDeep` which tracks
|
||||||
|
* traversed objects.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {*} value The value to clone.
|
||||||
|
* @param {number} bitmask The bitmask flags.
|
||||||
|
* 1 - Deep clone
|
||||||
|
* 2 - Flatten inherited properties
|
||||||
|
* 4 - Clone symbols
|
||||||
|
* @param {Function} [customizer] The function to customize cloning.
|
||||||
|
* @param {string} [key] The key of `value`.
|
||||||
|
* @param {Object} [object] The parent object of `value`.
|
||||||
|
* @param {Object} [stack] Tracks traversed objects and their clone counterparts.
|
||||||
|
* @returns {*} Returns the cloned value.
|
||||||
|
*/
|
||||||
|
function baseClone(value, bitmask, customizer, key, object, stack) {
|
||||||
|
let result
|
||||||
|
const isDeep = bitmask & CLONE_DEEP_FLAG
|
||||||
|
const isFlat = bitmask & CLONE_FLAT_FLAG
|
||||||
|
const isFull = bitmask & CLONE_SYMBOLS_FLAG
|
||||||
|
|
||||||
|
if (customizer) {
|
||||||
|
result = object ? customizer(value, key, object, stack) : customizer(value)
|
||||||
|
}
|
||||||
|
if (result !== undefined) {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
if (!isObject(value)) {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
const isArr = Array.isArray(value)
|
||||||
|
const tag = getTag(value)
|
||||||
|
if (isArr) {
|
||||||
|
result = initCloneArray(value)
|
||||||
|
if (!isDeep) {
|
||||||
|
return copyArray(value, result)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const isFunc = typeof value === 'function'
|
||||||
|
|
||||||
|
if (isBuffer(value)) {
|
||||||
|
return cloneBuffer(value, isDeep)
|
||||||
|
}
|
||||||
|
if (tag === objectTag || tag === argsTag || (isFunc && !object)) {
|
||||||
|
result = (isFlat || isFunc) ? {} : initCloneObject(value)
|
||||||
|
if (!isDeep) {
|
||||||
|
return isFlat
|
||||||
|
? copySymbolsIn(value, copyObject(value, keysIn(value), result))
|
||||||
|
: copySymbols(value, Object.assign(result, value))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (isFunc || !cloneableTags[tag]) {
|
||||||
|
return object ? value : {}
|
||||||
|
}
|
||||||
|
result = initCloneByTag(value, tag, isDeep)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Check for circular references and return its corresponding clone.
|
||||||
|
stack || (stack = new Stack)
|
||||||
|
const stacked = stack.get(value)
|
||||||
|
if (stacked) {
|
||||||
|
return stacked
|
||||||
|
}
|
||||||
|
stack.set(value, result)
|
||||||
|
|
||||||
|
if (tag === mapTag) {
|
||||||
|
value.forEach((subValue, key) => {
|
||||||
|
result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack))
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tag === setTag) {
|
||||||
|
value.forEach((subValue) => {
|
||||||
|
result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack))
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isTypedArray(value)) {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
const keysFunc = isFull
|
||||||
|
? (isFlat ? getAllKeysIn : getAllKeys)
|
||||||
|
: (isFlat ? keysIn : keys)
|
||||||
|
|
||||||
|
const props = isArr ? undefined : keysFunc(value)
|
||||||
|
arrayEach(props || value, (subValue, key) => {
|
||||||
|
if (props) {
|
||||||
|
key = subValue
|
||||||
|
subValue = value[key]
|
||||||
|
}
|
||||||
|
// Recursively populate clone (susceptible to call stack limits).
|
||||||
|
assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack))
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseClone
|
||||||
16
src/.internal/baseConforms.ts
Normal file
16
src/.internal/baseConforms.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import baseConformsTo from './baseConformsTo.js'
|
||||||
|
import keys from '../keys.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `conforms` which doesn't clone `source`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} source The object of property predicates to conform to.
|
||||||
|
* @returns {Function} Returns the new spec function.
|
||||||
|
*/
|
||||||
|
function baseConforms(source) {
|
||||||
|
const props = keys(source)
|
||||||
|
return (object) => baseConformsTo(object, source, props)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseConforms
|
||||||
27
src/.internal/baseConformsTo.ts
Normal file
27
src/.internal/baseConformsTo.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `conformsTo` which accepts `props` to check.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to inspect.
|
||||||
|
* @param {Object} source The object of property predicates to conform to.
|
||||||
|
* @returns {boolean} Returns `true` if `object` conforms, else `false`.
|
||||||
|
*/
|
||||||
|
function baseConformsTo(object, source, props) {
|
||||||
|
let length = props.length
|
||||||
|
if (object == null) {
|
||||||
|
return !length
|
||||||
|
}
|
||||||
|
object = Object(object)
|
||||||
|
while (length--) {
|
||||||
|
const key = props[length]
|
||||||
|
const predicate = source[key]
|
||||||
|
const value = object[key]
|
||||||
|
|
||||||
|
if ((value === undefined && !(key in object)) || !predicate(value)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseConformsTo
|
||||||
63
src/.internal/baseDifference.ts
Normal file
63
src/.internal/baseDifference.ts
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import SetCache from './SetCache.js'
|
||||||
|
import arrayIncludes from './arrayIncludes.js'
|
||||||
|
import arrayIncludesWith from './arrayIncludesWith.js'
|
||||||
|
import map from '../map.js'
|
||||||
|
import cacheHas from './cacheHas.js'
|
||||||
|
|
||||||
|
/** Used as the size to enable large array optimizations. */
|
||||||
|
const LARGE_ARRAY_SIZE = 200
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of methods like `difference` without support
|
||||||
|
* for excluding multiple arrays.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to inspect.
|
||||||
|
* @param {Array} values The values to exclude.
|
||||||
|
* @param {Function} [iteratee] The iteratee invoked per element.
|
||||||
|
* @param {Function} [comparator] The comparator invoked per element.
|
||||||
|
* @returns {Array} Returns the new array of filtered values.
|
||||||
|
*/
|
||||||
|
function baseDifference(array, values, iteratee, comparator) {
|
||||||
|
let includes = arrayIncludes
|
||||||
|
let isCommon = true
|
||||||
|
const result = []
|
||||||
|
const valuesLength = values.length
|
||||||
|
|
||||||
|
if (!array.length) {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
if (iteratee) {
|
||||||
|
values = map(values, (value) => iteratee(value))
|
||||||
|
}
|
||||||
|
if (comparator) {
|
||||||
|
includes = arrayIncludesWith
|
||||||
|
isCommon = false
|
||||||
|
}
|
||||||
|
else if (values.length >= LARGE_ARRAY_SIZE) {
|
||||||
|
includes = cacheHas
|
||||||
|
isCommon = false
|
||||||
|
values = new SetCache(values)
|
||||||
|
}
|
||||||
|
outer:
|
||||||
|
for (let value of array) {
|
||||||
|
const computed = iteratee == null ? value : iteratee(value)
|
||||||
|
|
||||||
|
value = (comparator || value !== 0) ? value : 0
|
||||||
|
if (isCommon && computed === computed) {
|
||||||
|
let valuesIndex = valuesLength
|
||||||
|
while (valuesIndex--) {
|
||||||
|
if (values[valuesIndex] === computed) {
|
||||||
|
continue outer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.push(value)
|
||||||
|
}
|
||||||
|
else if (!includes(values, computed, comparator)) {
|
||||||
|
result.push(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseDifference
|
||||||
31
src/.internal/baseEach.ts
Normal file
31
src/.internal/baseEach.ts
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import baseForOwn from './baseForOwn.js'
|
||||||
|
import isArrayLike from '../isArrayLike.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `forEach`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array|Object} collection The collection to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @returns {Array|Object} Returns `collection`.
|
||||||
|
*/
|
||||||
|
function baseEach(collection, iteratee) {
|
||||||
|
if (collection == null) {
|
||||||
|
return collection
|
||||||
|
}
|
||||||
|
if (!isArrayLike(collection)) {
|
||||||
|
return baseForOwn(collection, iteratee)
|
||||||
|
}
|
||||||
|
const length = collection.length
|
||||||
|
const iterable = Object(collection)
|
||||||
|
let index = -1
|
||||||
|
|
||||||
|
while (++index < length) {
|
||||||
|
if (iteratee(iterable[index], index, iterable) === false) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return collection
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseEach
|
||||||
30
src/.internal/baseEachRight.ts
Normal file
30
src/.internal/baseEachRight.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import baseForOwnRight from './baseForOwnRight.js'
|
||||||
|
import isArrayLike from '../isArrayLike.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `forEachRight`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array|Object} collection The collection to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @returns {Array|Object} Returns `collection`.
|
||||||
|
*/
|
||||||
|
function baseEachRight(collection, iteratee) {
|
||||||
|
if (collection == null) {
|
||||||
|
return collection
|
||||||
|
}
|
||||||
|
if (!isArrayLike(collection)) {
|
||||||
|
return baseForOwnRight(collection, iteratee)
|
||||||
|
}
|
||||||
|
const iterable = Object(collection)
|
||||||
|
let length = collection.length
|
||||||
|
|
||||||
|
while (length--) {
|
||||||
|
if (iteratee(iterable[length], length, iterable) === false) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return collection
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseEachRight
|
||||||
23
src/.internal/baseFindIndex.ts
Normal file
23
src/.internal/baseFindIndex.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `findIndex` and `findLastIndex`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to inspect.
|
||||||
|
* @param {Function} predicate The function invoked per iteration.
|
||||||
|
* @param {number} fromIndex The index to search from.
|
||||||
|
* @param {boolean} [fromRight] Specify iterating from right to left.
|
||||||
|
* @returns {number} Returns the index of the matched value, else `-1`.
|
||||||
|
*/
|
||||||
|
function baseFindIndex(array, predicate, fromIndex, fromRight) {
|
||||||
|
const { length } = array
|
||||||
|
let index = fromIndex + (fromRight ? 1 : -1)
|
||||||
|
|
||||||
|
while ((fromRight ? index-- : ++index < length)) {
|
||||||
|
if (predicate(array[index], index, array)) {
|
||||||
|
return index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseFindIndex
|
||||||
22
src/.internal/baseFindKey.ts
Normal file
22
src/.internal/baseFindKey.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of methods like `findKey` and `findLastKey`
|
||||||
|
* which iterates over `collection` using `eachFunc`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array|Object} collection The collection to inspect.
|
||||||
|
* @param {Function} predicate The function invoked per iteration.
|
||||||
|
* @param {Function} eachFunc The function to iterate over `collection`.
|
||||||
|
* @returns {*} Returns the found element or its key, else `undefined`.
|
||||||
|
*/
|
||||||
|
function baseFindKey(collection, predicate, eachFunc) {
|
||||||
|
let result
|
||||||
|
eachFunc(collection, (value, key, collection) => {
|
||||||
|
if (predicate(value, key, collection)) {
|
||||||
|
result = key
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseFindKey
|
||||||
37
src/.internal/baseFlatten.ts
Normal file
37
src/.internal/baseFlatten.ts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import isFlattenable from './isFlattenable.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `flatten` with support for restricting flattening.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to flatten.
|
||||||
|
* @param {number} depth The maximum recursion depth.
|
||||||
|
* @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
|
||||||
|
* @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
|
||||||
|
* @param {Array} [result=[]] The initial result value.
|
||||||
|
* @returns {Array} Returns the new flattened array.
|
||||||
|
*/
|
||||||
|
function baseFlatten(array, depth, predicate, isStrict, result) {
|
||||||
|
predicate || (predicate = isFlattenable)
|
||||||
|
result || (result = [])
|
||||||
|
|
||||||
|
if (array == null) {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const value of array) {
|
||||||
|
if (depth > 0 && predicate(value)) {
|
||||||
|
if (depth > 1) {
|
||||||
|
// Recursively flatten arrays (susceptible to call stack limits).
|
||||||
|
baseFlatten(value, depth - 1, predicate, isStrict, result)
|
||||||
|
} else {
|
||||||
|
result.push(...value)
|
||||||
|
}
|
||||||
|
} else if (!isStrict) {
|
||||||
|
result[result.length] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseFlatten
|
||||||
27
src/.internal/baseFor.ts
Normal file
27
src/.internal/baseFor.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `baseForOwn` which iterates over `object`
|
||||||
|
* properties returned by `keysFunc` and invokes `iteratee` for each property.
|
||||||
|
* Iteratee functions may exit iteration early by explicitly returning `false`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @param {Function} keysFunc The function to get the keys of `object`.
|
||||||
|
* @returns {Object} Returns `object`.
|
||||||
|
*/
|
||||||
|
function baseFor(object, iteratee, keysFunc) {
|
||||||
|
const iterable = Object(object)
|
||||||
|
const props = keysFunc(object)
|
||||||
|
let { length } = props
|
||||||
|
let index = -1
|
||||||
|
|
||||||
|
while (length--) {
|
||||||
|
const key = props[++index]
|
||||||
|
if (iteratee(iterable[key], key, iterable) === false) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return object
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseFor
|
||||||
16
src/.internal/baseForOwn.ts
Normal file
16
src/.internal/baseForOwn.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import baseFor from './baseFor.js'
|
||||||
|
import keys from '../keys.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `forOwn`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @returns {Object} Returns `object`.
|
||||||
|
*/
|
||||||
|
function baseForOwn(object, iteratee) {
|
||||||
|
return object && baseFor(object, iteratee, keys)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseForOwn
|
||||||
16
src/.internal/baseForOwnRight.ts
Normal file
16
src/.internal/baseForOwnRight.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import baseForRight from './baseForRight.js'
|
||||||
|
import keys from '../keys.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `forOwnRight`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @returns {Object} Returns `object`.
|
||||||
|
*/
|
||||||
|
function baseForOwnRight(object, iteratee) {
|
||||||
|
return object && baseForRight(object, iteratee, keys)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseForOwnRight
|
||||||
25
src/.internal/baseForRight.ts
Normal file
25
src/.internal/baseForRight.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* This function is like `baseFor` except that it iterates over properties
|
||||||
|
* in the opposite order.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to iterate over.
|
||||||
|
* @param {Function} iteratee The function invoked per iteration.
|
||||||
|
* @param {Function} keysFunc The function to get the keys of `object`.
|
||||||
|
* @returns {Object} Returns `object`.
|
||||||
|
*/
|
||||||
|
function baseForRight(object, iteratee, keysFunc) {
|
||||||
|
const iterable = Object(object)
|
||||||
|
const props = keysFunc(object)
|
||||||
|
let { length } = props
|
||||||
|
|
||||||
|
while (length--) {
|
||||||
|
const key = props[length]
|
||||||
|
if (iteratee(iterable[key], key, iterable) === false) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return object
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseForRight
|
||||||
24
src/.internal/baseGet.ts
Normal file
24
src/.internal/baseGet.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import castPath from './castPath.js'
|
||||||
|
import toKey from './toKey.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `get` without support for default values.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to query.
|
||||||
|
* @param {Array|string} path The path of the property to get.
|
||||||
|
* @returns {*} Returns the resolved value.
|
||||||
|
*/
|
||||||
|
function baseGet(object, path) {
|
||||||
|
path = castPath(path, object)
|
||||||
|
|
||||||
|
let index = 0
|
||||||
|
const length = path.length
|
||||||
|
|
||||||
|
while (object != null && index < length) {
|
||||||
|
object = object[toKey(path[index++])]
|
||||||
|
}
|
||||||
|
return (index && index === length) ? object : undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseGet
|
||||||
14
src/.internal/baseInRange.ts
Normal file
14
src/.internal/baseInRange.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `inRange` which doesn't coerce arguments.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {number} number The number to check.
|
||||||
|
* @param {number} start The start of the range.
|
||||||
|
* @param {number} end The end of the range.
|
||||||
|
* @returns {boolean} Returns `true` if `number` is in the range, else `false`.
|
||||||
|
*/
|
||||||
|
function baseInRange(number, start, end) {
|
||||||
|
return number >= Math.min(start, end) && number < Math.max(start, end)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseInRange
|
||||||
20
src/.internal/baseIndexOf.ts
Normal file
20
src/.internal/baseIndexOf.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import baseFindIndex from './baseFindIndex.js'
|
||||||
|
import baseIsNaN from './baseIsNaN.js'
|
||||||
|
import strictIndexOf from './strictIndexOf.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `indexOf` without `fromIndex` bounds checks.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to inspect.
|
||||||
|
* @param {*} value The value to search for.
|
||||||
|
* @param {number} fromIndex The index to search from.
|
||||||
|
* @returns {number} Returns the index of the matched value, else `-1`.
|
||||||
|
*/
|
||||||
|
function baseIndexOf(array, value, fromIndex) {
|
||||||
|
return value === value
|
||||||
|
? strictIndexOf(array, value, fromIndex)
|
||||||
|
: baseFindIndex(array, baseIsNaN, fromIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIndexOf
|
||||||
23
src/.internal/baseIndexOfWith.ts
Normal file
23
src/.internal/baseIndexOfWith.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* This function is like `baseIndexOf` except that it accepts a comparator.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to inspect.
|
||||||
|
* @param {*} value The value to search for.
|
||||||
|
* @param {number} fromIndex The index to search from.
|
||||||
|
* @param {Function} comparator The comparator invoked per element.
|
||||||
|
* @returns {number} Returns the index of the matched value, else `-1`.
|
||||||
|
*/
|
||||||
|
function baseIndexOfWith(array, value, fromIndex, comparator) {
|
||||||
|
let index = fromIndex - 1
|
||||||
|
const { length } = array
|
||||||
|
|
||||||
|
while (++index < length) {
|
||||||
|
if (comparator(array[index], value)) {
|
||||||
|
return index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIndexOfWith
|
||||||
72
src/.internal/baseIntersection.ts
Normal file
72
src/.internal/baseIntersection.ts
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
import SetCache from './SetCache.js'
|
||||||
|
import arrayIncludes from './arrayIncludes.js'
|
||||||
|
import arrayIncludesWith from './arrayIncludesWith.js'
|
||||||
|
import map from '../map.js'
|
||||||
|
import cacheHas from './cacheHas.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of methods like `intersection` that accepts an
|
||||||
|
* array of arrays to inspect.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} arrays The arrays to inspect.
|
||||||
|
* @param {Function} [iteratee] The iteratee invoked per element.
|
||||||
|
* @param {Function} [comparator] The comparator invoked per element.
|
||||||
|
* @returns {Array} Returns the new array of shared values.
|
||||||
|
*/
|
||||||
|
function baseIntersection(arrays, iteratee, comparator) {
|
||||||
|
const includes = comparator ? arrayIncludesWith : arrayIncludes
|
||||||
|
const length = arrays[0].length
|
||||||
|
const othLength = arrays.length
|
||||||
|
const caches = new Array(othLength)
|
||||||
|
const result = []
|
||||||
|
|
||||||
|
let array
|
||||||
|
let maxLength = Infinity
|
||||||
|
let othIndex = othLength
|
||||||
|
|
||||||
|
while (othIndex--) {
|
||||||
|
array = arrays[othIndex]
|
||||||
|
if (othIndex && iteratee) {
|
||||||
|
array = map(array, (value) => iteratee(value))
|
||||||
|
}
|
||||||
|
maxLength = Math.min(array.length, maxLength)
|
||||||
|
caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
|
||||||
|
? new SetCache(othIndex && array)
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
|
array = arrays[0]
|
||||||
|
|
||||||
|
let index = -1
|
||||||
|
const seen = caches[0]
|
||||||
|
|
||||||
|
outer:
|
||||||
|
while (++index < length && result.length < maxLength) {
|
||||||
|
let value = array[index]
|
||||||
|
const computed = iteratee ? iteratee(value) : value
|
||||||
|
|
||||||
|
value = (comparator || value !== 0) ? value : 0
|
||||||
|
if (!(seen
|
||||||
|
? cacheHas(seen, computed)
|
||||||
|
: includes(result, computed, comparator)
|
||||||
|
)) {
|
||||||
|
othIndex = othLength
|
||||||
|
while (--othIndex) {
|
||||||
|
const cache = caches[othIndex]
|
||||||
|
if (!(cache
|
||||||
|
? cacheHas(cache, computed)
|
||||||
|
: includes(arrays[othIndex], computed, comparator))
|
||||||
|
) {
|
||||||
|
continue outer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (seen) {
|
||||||
|
seen.push(computed)
|
||||||
|
}
|
||||||
|
result.push(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIntersection
|
||||||
28
src/.internal/baseIsEqual.ts
Normal file
28
src/.internal/baseIsEqual.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import baseIsEqualDeep from './baseIsEqualDeep.js'
|
||||||
|
import isObjectLike from '../isObjectLike.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `isEqual` which supports partial comparisons
|
||||||
|
* and tracks traversed objects.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {*} value The value to compare.
|
||||||
|
* @param {*} other The other value to compare.
|
||||||
|
* @param {boolean} bitmask The bitmask flags.
|
||||||
|
* 1 - Unordered comparison
|
||||||
|
* 2 - Partial comparison
|
||||||
|
* @param {Function} [customizer] The function to customize comparisons.
|
||||||
|
* @param {Object} [stack] Tracks traversed `value` and `other` objects.
|
||||||
|
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
||||||
|
*/
|
||||||
|
function baseIsEqual(value, other, bitmask, customizer, stack) {
|
||||||
|
if (value === other) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
|
||||||
|
return value !== value && other !== other
|
||||||
|
}
|
||||||
|
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIsEqual
|
||||||
79
src/.internal/baseIsEqualDeep.ts
Normal file
79
src/.internal/baseIsEqualDeep.ts
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
import Stack from './Stack.js'
|
||||||
|
import equalArrays from './equalArrays.js'
|
||||||
|
import equalByTag from './equalByTag.js'
|
||||||
|
import equalObjects from './equalObjects.js'
|
||||||
|
import getTag from './getTag.js'
|
||||||
|
import isBuffer from '../isBuffer.js'
|
||||||
|
import isTypedArray from '../isTypedArray.js'
|
||||||
|
|
||||||
|
/** Used to compose bitmasks for value comparisons. */
|
||||||
|
const COMPARE_PARTIAL_FLAG = 1
|
||||||
|
|
||||||
|
/** `Object#toString` result references. */
|
||||||
|
const argsTag = '[object Arguments]'
|
||||||
|
const arrayTag = '[object Array]'
|
||||||
|
const objectTag = '[object Object]'
|
||||||
|
|
||||||
|
/** Used to check objects for own properties. */
|
||||||
|
const hasOwnProperty = Object.prototype.hasOwnProperty
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A specialized version of `baseIsEqual` for arrays and objects which performs
|
||||||
|
* deep comparisons and tracks traversed objects enabling objects with circular
|
||||||
|
* references to be compared.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to compare.
|
||||||
|
* @param {Object} other The other object to compare.
|
||||||
|
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
|
||||||
|
* @param {Function} customizer The function to customize comparisons.
|
||||||
|
* @param {Function} equalFunc The function to determine equivalents of values.
|
||||||
|
* @param {Object} [stack] Tracks traversed `object` and `other` objects.
|
||||||
|
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
||||||
|
*/
|
||||||
|
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
||||||
|
let objIsArr = Array.isArray(object)
|
||||||
|
const othIsArr = Array.isArray(other)
|
||||||
|
let objTag = objIsArr ? arrayTag : getTag(object)
|
||||||
|
let othTag = othIsArr ? arrayTag : getTag(other)
|
||||||
|
|
||||||
|
objTag = objTag === argsTag ? objectTag : objTag
|
||||||
|
othTag = othTag === argsTag ? objectTag : othTag
|
||||||
|
|
||||||
|
let objIsObj = objTag === objectTag
|
||||||
|
const othIsObj = othTag === objectTag
|
||||||
|
const isSameTag = objTag === othTag
|
||||||
|
|
||||||
|
if (isSameTag && isBuffer(object)) {
|
||||||
|
if (!isBuffer(other)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
objIsArr = true
|
||||||
|
objIsObj = false
|
||||||
|
}
|
||||||
|
if (isSameTag && !objIsObj) {
|
||||||
|
stack || (stack = new Stack)
|
||||||
|
return (objIsArr || isTypedArray(object))
|
||||||
|
? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
|
||||||
|
: equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack)
|
||||||
|
}
|
||||||
|
if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
|
||||||
|
const objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__')
|
||||||
|
const othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__')
|
||||||
|
|
||||||
|
if (objIsWrapped || othIsWrapped) {
|
||||||
|
const objUnwrapped = objIsWrapped ? object.value() : object
|
||||||
|
const othUnwrapped = othIsWrapped ? other.value() : other
|
||||||
|
|
||||||
|
stack || (stack = new Stack)
|
||||||
|
return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isSameTag) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
stack || (stack = new Stack)
|
||||||
|
return equalObjects(object, other, bitmask, customizer, equalFunc, stack)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIsEqualDeep
|
||||||
64
src/.internal/baseIsMatch.ts
Normal file
64
src/.internal/baseIsMatch.ts
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
import Stack from './Stack.js'
|
||||||
|
import baseIsEqual from './baseIsEqual.js'
|
||||||
|
|
||||||
|
/** Used to compose bitmasks for value comparisons. */
|
||||||
|
const COMPARE_PARTIAL_FLAG = 1
|
||||||
|
const COMPARE_UNORDERED_FLAG = 2
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `isMatch`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to inspect.
|
||||||
|
* @param {Object} source The object of property values to match.
|
||||||
|
* @param {Array} matchData The property names, values, and compare flags to match.
|
||||||
|
* @param {Function} [customizer] The function to customize comparisons.
|
||||||
|
* @returns {boolean} Returns `true` if `object` is a match, else `false`.
|
||||||
|
*/
|
||||||
|
function baseIsMatch(object, source, matchData, customizer) {
|
||||||
|
let index = matchData.length
|
||||||
|
const length = index
|
||||||
|
const noCustomizer = !customizer
|
||||||
|
|
||||||
|
if (object == null) {
|
||||||
|
return !length
|
||||||
|
}
|
||||||
|
let data
|
||||||
|
let result
|
||||||
|
object = Object(object)
|
||||||
|
while (index--) {
|
||||||
|
data = matchData[index]
|
||||||
|
if ((noCustomizer && data[2])
|
||||||
|
? data[1] !== object[data[0]]
|
||||||
|
: !(data[0] in object)
|
||||||
|
) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (++index < length) {
|
||||||
|
data = matchData[index]
|
||||||
|
const key = data[0]
|
||||||
|
const objValue = object[key]
|
||||||
|
const srcValue = data[1]
|
||||||
|
|
||||||
|
if (noCustomizer && data[2]) {
|
||||||
|
if (objValue === undefined && !(key in object)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const stack = new Stack
|
||||||
|
if (customizer) {
|
||||||
|
result = customizer(objValue, srcValue, key, object, source, stack)
|
||||||
|
}
|
||||||
|
if (!(result === undefined
|
||||||
|
? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
|
||||||
|
: result
|
||||||
|
)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIsMatch
|
||||||
12
src/.internal/baseIsNaN.ts
Normal file
12
src/.internal/baseIsNaN.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `isNaN` without support for number objects.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {*} value The value to check.
|
||||||
|
* @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
|
||||||
|
*/
|
||||||
|
function baseIsNaN(value) {
|
||||||
|
return value !== value
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseIsNaN
|
||||||
20
src/.internal/baseMatches.ts
Normal file
20
src/.internal/baseMatches.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import baseIsMatch from './baseIsMatch.js'
|
||||||
|
import getMatchData from './getMatchData.js'
|
||||||
|
import matchesStrictComparable from './matchesStrictComparable.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `matches` which doesn't clone `source`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} source The object of property values to match.
|
||||||
|
* @returns {Function} Returns the new spec function.
|
||||||
|
*/
|
||||||
|
function baseMatches(source) {
|
||||||
|
const matchData = getMatchData(source)
|
||||||
|
if (matchData.length === 1 && matchData[0][2]) {
|
||||||
|
return matchesStrictComparable(matchData[0][0], matchData[0][1])
|
||||||
|
}
|
||||||
|
return (object) => object === source || baseIsMatch(object, source, matchData)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseMatches
|
||||||
33
src/.internal/baseMatchesProperty.ts
Normal file
33
src/.internal/baseMatchesProperty.ts
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import baseIsEqual from './baseIsEqual.js'
|
||||||
|
import get from '../get.js'
|
||||||
|
import hasIn from '../hasIn.js'
|
||||||
|
import isKey from './isKey.js'
|
||||||
|
import isStrictComparable from './isStrictComparable.js'
|
||||||
|
import matchesStrictComparable from './matchesStrictComparable.js'
|
||||||
|
import toKey from './toKey.js'
|
||||||
|
|
||||||
|
/** Used to compose bitmasks for value comparisons. */
|
||||||
|
const COMPARE_PARTIAL_FLAG = 1
|
||||||
|
const COMPARE_UNORDERED_FLAG = 2
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `matchesProperty` which doesn't clone `srcValue`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} path The path of the property to get.
|
||||||
|
* @param {*} srcValue The value to match.
|
||||||
|
* @returns {Function} Returns the new spec function.
|
||||||
|
*/
|
||||||
|
function baseMatchesProperty(path, srcValue) {
|
||||||
|
if (isKey(path) && isStrictComparable(srcValue)) {
|
||||||
|
return matchesStrictComparable(toKey(path), srcValue)
|
||||||
|
}
|
||||||
|
return (object) => {
|
||||||
|
const objValue = get(object, path)
|
||||||
|
return (objValue === undefined && objValue === srcValue)
|
||||||
|
? hasIn(object, path)
|
||||||
|
: baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseMatchesProperty
|
||||||
41
src/.internal/baseMerge.ts
Normal file
41
src/.internal/baseMerge.ts
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import Stack from './Stack.js'
|
||||||
|
import assignMergeValue from './assignMergeValue.js'
|
||||||
|
import baseFor from './baseFor.js'
|
||||||
|
import baseMergeDeep from './baseMergeDeep.js'
|
||||||
|
import isObject from '../isObject.js'
|
||||||
|
import keysIn from '../keysIn.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `merge` without support for multiple sources.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The destination object.
|
||||||
|
* @param {Object} source The source object.
|
||||||
|
* @param {number} srcIndex The index of `source`.
|
||||||
|
* @param {Function} [customizer] The function to customize merged values.
|
||||||
|
* @param {Object} [stack] Tracks traversed source values and their merged
|
||||||
|
* counterparts.
|
||||||
|
*/
|
||||||
|
function baseMerge(object, source, srcIndex, customizer, stack) {
|
||||||
|
if (object === source) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
baseFor(source, (srcValue, key) => {
|
||||||
|
if (isObject(srcValue)) {
|
||||||
|
stack || (stack = new Stack)
|
||||||
|
baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let newValue = customizer
|
||||||
|
? customizer(object[key], srcValue, `${key}`, object, source, stack)
|
||||||
|
: undefined
|
||||||
|
|
||||||
|
if (newValue === undefined) {
|
||||||
|
newValue = srcValue
|
||||||
|
}
|
||||||
|
assignMergeValue(object, key, newValue)
|
||||||
|
}
|
||||||
|
}, keysIn)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseMerge
|
||||||
91
src/.internal/baseMergeDeep.ts
Normal file
91
src/.internal/baseMergeDeep.ts
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
import assignMergeValue from './assignMergeValue.js'
|
||||||
|
import cloneBuffer from './cloneBuffer.js'
|
||||||
|
import cloneTypedArray from './cloneTypedArray.js'
|
||||||
|
import copyArray from './copyArray.js'
|
||||||
|
import initCloneObject from './initCloneObject.js'
|
||||||
|
import isArguments from '../isArguments.js'
|
||||||
|
import isArrayLikeObject from '../isArrayLikeObject.js'
|
||||||
|
import isBuffer from '../isBuffer.js'
|
||||||
|
import isObject from '../isObject.js'
|
||||||
|
import isPlainObject from '../isPlainObject.js'
|
||||||
|
import isTypedArray from '../isTypedArray.js'
|
||||||
|
import toPlainObject from '../toPlainObject.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A specialized version of `baseMerge` for arrays and objects which performs
|
||||||
|
* deep merges and tracks traversed objects enabling objects with circular
|
||||||
|
* references to be merged.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The destination object.
|
||||||
|
* @param {Object} source The source object.
|
||||||
|
* @param {string} key The key of the value to merge.
|
||||||
|
* @param {number} srcIndex The index of `source`.
|
||||||
|
* @param {Function} mergeFunc The function to merge values.
|
||||||
|
* @param {Function} [customizer] The function to customize assigned values.
|
||||||
|
* @param {Object} [stack] Tracks traversed source values and their merged
|
||||||
|
* counterparts.
|
||||||
|
*/
|
||||||
|
function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
|
||||||
|
const objValue = object[key]
|
||||||
|
const srcValue = source[key]
|
||||||
|
const stacked = stack.get(srcValue)
|
||||||
|
|
||||||
|
if (stacked) {
|
||||||
|
assignMergeValue(object, key, stacked)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let newValue = customizer
|
||||||
|
? customizer(objValue, srcValue, `${key}`, object, source, stack)
|
||||||
|
: undefined
|
||||||
|
|
||||||
|
let isCommon = newValue === undefined
|
||||||
|
|
||||||
|
if (isCommon) {
|
||||||
|
const isArr = Array.isArray(srcValue)
|
||||||
|
const isBuff = !isArr && isBuffer(srcValue)
|
||||||
|
const isTyped = !isArr && !isBuff && isTypedArray(srcValue)
|
||||||
|
|
||||||
|
newValue = srcValue
|
||||||
|
if (isArr || isBuff || isTyped) {
|
||||||
|
if (Array.isArray(objValue)) {
|
||||||
|
newValue = objValue
|
||||||
|
}
|
||||||
|
else if (isArrayLikeObject(objValue)) {
|
||||||
|
newValue = copyArray(objValue)
|
||||||
|
}
|
||||||
|
else if (isBuff) {
|
||||||
|
isCommon = false
|
||||||
|
newValue = cloneBuffer(srcValue, true)
|
||||||
|
}
|
||||||
|
else if (isTyped) {
|
||||||
|
isCommon = false
|
||||||
|
newValue = cloneTypedArray(srcValue, true)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
newValue = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (isPlainObject(srcValue) || isArguments(srcValue)) {
|
||||||
|
newValue = objValue
|
||||||
|
if (isArguments(objValue)) {
|
||||||
|
newValue = toPlainObject(objValue)
|
||||||
|
}
|
||||||
|
else if (typeof objValue === 'function' || !isObject(objValue)) {
|
||||||
|
newValue = initCloneObject(srcValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
isCommon = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isCommon) {
|
||||||
|
// Recursively merge objects and arrays (susceptible to call stack limits).
|
||||||
|
stack.set(srcValue, newValue)
|
||||||
|
mergeFunc(newValue, srcValue, srcIndex, customizer, stack)
|
||||||
|
stack['delete'](srcValue)
|
||||||
|
}
|
||||||
|
assignMergeValue(object, key, newValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseMergeDeep
|
||||||
49
src/.internal/baseOrderBy.ts
Normal file
49
src/.internal/baseOrderBy.ts
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
import baseEach from './baseEach.js'
|
||||||
|
import baseSortBy from './baseSortBy.js'
|
||||||
|
import baseGet from './baseGet.js'
|
||||||
|
import compareMultiple from './compareMultiple.js'
|
||||||
|
import isArrayLike from '../isArrayLike.js'
|
||||||
|
|
||||||
|
const identity = (value) => value
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `orderBy` without param guards.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array|Object} collection The collection to iterate over.
|
||||||
|
* @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
|
||||||
|
* @param {string[]} orders The sort orders of `iteratees`.
|
||||||
|
* @returns {Array} Returns the new sorted array.
|
||||||
|
*/
|
||||||
|
function baseOrderBy(collection, iteratees, orders) {
|
||||||
|
if (iteratees.length) {
|
||||||
|
iteratees = iteratees.map((iteratee) => {
|
||||||
|
if (Array.isArray(iteratee)) {
|
||||||
|
return (value) => baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee)
|
||||||
|
}
|
||||||
|
|
||||||
|
return iteratee
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
iteratees = [identity]
|
||||||
|
}
|
||||||
|
|
||||||
|
let criteriaIndex = -1
|
||||||
|
let eachIndex = -1
|
||||||
|
|
||||||
|
const result = isArrayLike(collection) ? new Array(collection.length) : []
|
||||||
|
|
||||||
|
baseEach(collection, (value) => {
|
||||||
|
const criteria = iteratees.map((iteratee) => iteratee(value))
|
||||||
|
|
||||||
|
result[++eachIndex] = {
|
||||||
|
criteria,
|
||||||
|
index: ++criteriaIndex,
|
||||||
|
value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return baseSortBy(result, (object, other) => compareMultiple(object, other, orders))
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseOrderBy
|
||||||
17
src/.internal/basePick.ts
Normal file
17
src/.internal/basePick.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import basePickBy from './basePickBy.js'
|
||||||
|
import hasIn from '../hasIn.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `pick` without support for individual
|
||||||
|
* property identifiers.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The source object.
|
||||||
|
* @param {string[]} paths The property paths to pick.
|
||||||
|
* @returns {Object} Returns the new object.
|
||||||
|
*/
|
||||||
|
function basePick(object, paths) {
|
||||||
|
return basePickBy(object, paths, (value, path) => hasIn(object, path))
|
||||||
|
}
|
||||||
|
|
||||||
|
export default basePick
|
||||||
29
src/.internal/basePickBy.ts
Normal file
29
src/.internal/basePickBy.ts
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import baseGet from './baseGet.js'
|
||||||
|
import baseSet from './baseSet.js'
|
||||||
|
import castPath from './castPath.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `pickBy`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The source object.
|
||||||
|
* @param {string[]} paths The property paths to pick.
|
||||||
|
* @param {Function} predicate The function invoked per property.
|
||||||
|
* @returns {Object} Returns the new object.
|
||||||
|
*/
|
||||||
|
function basePickBy(object, paths, predicate) {
|
||||||
|
let index = -1
|
||||||
|
const length = paths.length
|
||||||
|
const result = {}
|
||||||
|
|
||||||
|
while (++index < length) {
|
||||||
|
const path = paths[index]
|
||||||
|
const value = baseGet(object, path)
|
||||||
|
if (predicate(value, path)) {
|
||||||
|
baseSet(result, castPath(path, object), value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default basePickBy
|
||||||
12
src/.internal/baseProperty.ts
Normal file
12
src/.internal/baseProperty.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `property` without support for deep paths.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} key The key of the property to get.
|
||||||
|
* @returns {Function} Returns the new accessor function.
|
||||||
|
*/
|
||||||
|
function baseProperty(key) {
|
||||||
|
return (object) => object == null ? undefined : object[key]
|
||||||
|
}
|
||||||
|
|
||||||
|
export default baseProperty
|
||||||
14
src/.internal/basePropertyDeep.ts
Normal file
14
src/.internal/basePropertyDeep.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import baseGet from './baseGet.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A specialized version of `baseProperty` which supports deep paths.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array|string} path The path of the property to get.
|
||||||
|
* @returns {Function} Returns the new accessor function.
|
||||||
|
*/
|
||||||
|
function basePropertyDeep(path) {
|
||||||
|
return (object) => baseGet(object, path)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default basePropertyDeep
|
||||||
12
src/.internal/basePropertyOf.ts
Normal file
12
src/.internal/basePropertyOf.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* The base implementation of `propertyOf` without support for deep paths.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} object The object to query.
|
||||||
|
* @returns {Function} Returns the new accessor function.
|
||||||
|
*/
|
||||||
|
function basePropertyOf(object) {
|
||||||
|
return (key) => object == null ? undefined : object[key]
|
||||||
|
}
|
||||||
|
|
||||||
|
export default basePropertyOf
|
||||||
44
src/.internal/basePullAll.ts
Normal file
44
src/.internal/basePullAll.ts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import map from '../map.js'
|
||||||
|
import baseIndexOf from './baseIndexOf.js'
|
||||||
|
import baseIndexOfWith from './baseIndexOfWith.js'
|
||||||
|
import copyArray from './copyArray.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base implementation of `pullAllBy`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Array} array The array to modify.
|
||||||
|
* @param {Array} values The values to remove.
|
||||||
|
* @param {Function} [iteratee] The iteratee invoked per element.
|
||||||
|
* @param {Function} [comparator] The comparator invoked per element.
|
||||||
|
* @returns {Array} Returns `array`.
|
||||||
|
*/
|
||||||
|
function basePullAll(array, values, iteratee, comparator) {
|
||||||
|
const indexOf = comparator ? baseIndexOfWith : baseIndexOf
|
||||||
|
const length = values.length
|
||||||
|
|
||||||
|
let index = -1
|
||||||
|
let seen = array
|
||||||
|
|
||||||
|
if (array === values) {
|
||||||
|
values = copyArray(values)
|
||||||
|
}
|
||||||
|
if (iteratee) {
|
||||||
|
seen = map(array, (value) => iteratee(value))
|
||||||
|
}
|
||||||
|
while (++index < length) {
|
||||||
|
let fromIndex = 0
|
||||||
|
const value = values[index]
|
||||||
|
const computed = iteratee ? iteratee(value) : value
|
||||||
|
|
||||||
|
while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
|
||||||
|
if (seen !== array) {
|
||||||
|
seen.splice(fromIndex, 1)
|
||||||
|
}
|
||||||
|
array.splice(fromIndex, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return array
|
||||||
|
}
|
||||||
|
|
||||||
|
export default basePullAll
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user