From db4eeda411618a4ce57a10a45b7b20bda19e48ae Mon Sep 17 00:00:00 2001 From: diachkinainna Date: Mon, 9 Dec 2024 11:15:38 +0200 Subject: [PATCH] make build --- index.b94d807a.css | 2 + index.b94d807a.css.map | 1 + index.html | 1 + report/bitmaps_reference/Entire_document.png | Bin 0 -> 841 bytes report/bitmaps_reference/stars--0.png | Bin 0 -> 256 bytes report/bitmaps_reference/stars--1.png | Bin 0 -> 366 bytes report/bitmaps_reference/stars--2.png | Bin 0 -> 390 bytes report/bitmaps_reference/stars--3.png | Bin 0 -> 395 bytes report/bitmaps_reference/stars--4.png | Bin 0 -> 385 bytes report/bitmaps_reference/stars--5.png | Bin 0 -> 276 bytes .../20241209-111427/Entire_document.png | Bin 0 -> 841 bytes .../bitmaps_test/20241209-111427/report.json | 173 ++ .../bitmaps_test/20241209-111427/stars--0.png | Bin 0 -> 256 bytes .../bitmaps_test/20241209-111427/stars--1.png | Bin 0 -> 366 bytes .../bitmaps_test/20241209-111427/stars--2.png | Bin 0 -> 390 bytes .../bitmaps_test/20241209-111427/stars--3.png | Bin 0 -> 395 bytes .../bitmaps_test/20241209-111427/stars--4.png | Bin 0 -> 385 bytes .../bitmaps_test/20241209-111427/stars--5.png | Bin 0 -> 276 bytes .../a96f14595379b7c348d66e115ec65a93.png | Bin 0 -> 12777 bytes report/html_report/assets/fonts/Lato-Bold.ttf | Bin 0 -> 121788 bytes .../html_report/assets/fonts/Lato-Regular.ttf | Bin 0 -> 120196 bytes .../assets/fonts/lato-bold-webfont.woff | Bin 0 -> 33272 bytes .../assets/fonts/lato-bold-webfont.woff2 | Bin 0 -> 26248 bytes .../assets/fonts/lato-regular-webfont.woff | Bin 0 -> 31860 bytes .../assets/fonts/lato-regular-webfont.woff2 | Bin 0 -> 24992 bytes .../b815e28b1e230cff6e9d7b749edcd562.png | Bin 0 -> 12777 bytes report/html_report/config.js | 173 ++ report/html_report/diff.js | 1843 +++++++++++++++++ report/html_report/diverged.js | 340 +++ report/html_report/divergedWorker.js | 6 + report/html_report/index.html | 49 + report/html_report/index_bundle.js | 2 + .../html_report/index_bundle.js.LICENSE.txt | 59 + star-active.edda4c43.svg | 1 + star.822d561e.svg | 1 + 35 files changed, 2651 insertions(+) create mode 100644 index.b94d807a.css create mode 100644 index.b94d807a.css.map create mode 100644 index.html create mode 100644 report/bitmaps_reference/Entire_document.png create mode 100644 report/bitmaps_reference/stars--0.png create mode 100644 report/bitmaps_reference/stars--1.png create mode 100644 report/bitmaps_reference/stars--2.png create mode 100644 report/bitmaps_reference/stars--3.png create mode 100644 report/bitmaps_reference/stars--4.png create mode 100644 report/bitmaps_reference/stars--5.png create mode 100644 report/bitmaps_test/20241209-111427/Entire_document.png create mode 100644 report/bitmaps_test/20241209-111427/report.json create mode 100644 report/bitmaps_test/20241209-111427/stars--0.png create mode 100644 report/bitmaps_test/20241209-111427/stars--1.png create mode 100644 report/bitmaps_test/20241209-111427/stars--2.png create mode 100644 report/bitmaps_test/20241209-111427/stars--3.png create mode 100644 report/bitmaps_test/20241209-111427/stars--4.png create mode 100644 report/bitmaps_test/20241209-111427/stars--5.png create mode 100644 report/html_report/a96f14595379b7c348d66e115ec65a93.png create mode 100644 report/html_report/assets/fonts/Lato-Bold.ttf create mode 100644 report/html_report/assets/fonts/Lato-Regular.ttf create mode 100644 report/html_report/assets/fonts/lato-bold-webfont.woff create mode 100644 report/html_report/assets/fonts/lato-bold-webfont.woff2 create mode 100644 report/html_report/assets/fonts/lato-regular-webfont.woff create mode 100644 report/html_report/assets/fonts/lato-regular-webfont.woff2 create mode 100644 report/html_report/b815e28b1e230cff6e9d7b749edcd562.png create mode 100644 report/html_report/config.js create mode 100644 report/html_report/diff.js create mode 100644 report/html_report/diverged.js create mode 100644 report/html_report/divergedWorker.js create mode 100644 report/html_report/index.html create mode 100644 report/html_report/index_bundle.js create mode 100644 report/html_report/index_bundle.js.LICENSE.txt create mode 100644 star-active.edda4c43.svg create mode 100644 star.822d561e.svg diff --git a/index.b94d807a.css b/index.b94d807a.css new file mode 100644 index 0000000000..63ded8ddac --- /dev/null +++ b/index.b94d807a.css @@ -0,0 +1,2 @@ +body{margin:0}.stars{display:flex}.stars__star{background-image:url(star.822d561e.svg);background-position:50%;background-repeat:no-repeat;width:16px;height:16px;margin-right:4px}.stars__star:last-child{margin-right:0}.stars--0 .stars__star{margin-top:0}.stars--5 .stars__star,.stars--1 .stars__star:first-child,.stars--2 .stars__star:nth-child(-n+2),.stars--3 .stars__star:nth-child(-n+3),.stars--4 .stars__star:nth-child(-n+4){background-image:url(star-active.edda4c43.svg)} +/*# sourceMappingURL=index.b94d807a.css.map */ diff --git a/index.b94d807a.css.map b/index.b94d807a.css.map new file mode 100644 index 0000000000..e45143840b --- /dev/null +++ b/index.b94d807a.css.map @@ -0,0 +1 @@ +{"mappings":"ACAA,cCAA,oBAIA,kKASA,uCAIA,oCAIA","sources":["index.b94d807a.css","src/styles/blocks/normalize.css","src/styles/blocks/stars.css"],"sourcesContent":["body {\n margin: 0;\n}\n\n.stars {\n display: flex;\n}\n\n.stars__star {\n background-image: url(\"star.822d561e.svg\");\n background-position: center;\n background-repeat: no-repeat;\n width: 16px;\n height: 16px;\n margin-right: 4px;\n}\n\n.stars__star:last-child {\n margin-right: 0;\n}\n\n.stars--0 .stars__star {\n margin-top: 0;\n}\n\n.stars--5 .stars__star, .stars--1 .stars__star:first-child, .stars--2 .stars__star:nth-child(-n+2), .stars--3 .stars__star:nth-child(-n+3), .stars--4 .stars__star:nth-child(-n+4) {\n background-image: url(\"star-active.edda4c43.svg\");\n}\n/*# sourceMappingURL=index.b94d807a.css.map */\n","body {\n margin: 0;\n}\n",".stars {\n display: flex;\n}\n\n.stars__star {\n margin-right: 4px;\n height: 16px;\n width: 16px;\n background-image: url(../../images/star.svg);\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.stars__star:last-child {\n margin-right: 0;\n}\n\n.stars--0 .stars__star {\n margin-top: 0;\n}\n\n.stars--5 .stars__star {\n background-image: url(../../images/star-active.svg);\n}\n\n.stars--1 .stars__star:first-child {\n background-image: url(../../images/star-active.svg);\n}\n\n.stars--2 .stars__star:nth-child(-n + 2) {\n background-image: url(../../images/star-active.svg);\n}\n\n.stars--3 .stars__star:nth-child(-n + 3) {\n background-image: url(../../images/star-active.svg);\n}\n\n.stars--4 .stars__star:nth-child(-n + 4) {\n background-image: url(../../images/star-active.svg);\n}\n"],"names":[],"version":3,"file":"index.b94d807a.css.map"} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000000..5dfdfaf7ef --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Stars
\ No newline at end of file diff --git a/report/bitmaps_reference/Entire_document.png b/report/bitmaps_reference/Entire_document.png new file mode 100644 index 0000000000000000000000000000000000000000..4a36491b780e931e211ecc4ea9d68f0db2628372 GIT binary patch literal 841 zcmV-P1GfB$P)=O$&shIA>u)aUVX&1b3 z$tD%k^$n{ZQ_#*T-=t!?zG2xh!RJ-JNyT&#cZv_5S5>I9%Vu_V)z#u5$-}+KKN^Pw(NyyQkbBGO3vE@aN8XFTUQ#Z+ZT> zvZM_blZxpM5BQ%ybJp+%i%G?Fhr_bRmV437`%c7SQZe0uXZ@RtJ7<~{X?L1a=fUG^+MSRDZ2VFAL!0wld>RcvADJ*#31OYB*7TUcVx zs@uY1J&TluCGadd7M8}dh*(%M&!S*q$vlgKg(dSW3Ko{kvnW_t8qXqPVeDCeusQ(3 z!vchd1xQ(*Rk($f;>UlAeXm!WQ-{To$&xXCbn%B0LL=g%#mh zSS+jv&%$D1zG1Dm;^|F1e~9%~*xR3*S*UAGYO~pNT{oX-0=mn479tB{&jN(i0T3P* zAUrHU>hY`$7FLgEWw5YHJS&fdRpMEBEDWn>En;DaJuAP3;r6V|7KYxla#|RA&&p|G z=shc^g`xMXoEC=Lvoc#4dln$94uJ5m0O4T)!kz`_vS$Ih>{);=dlsNe(X)cPL_I64 zOV_gkx}-e|+9mB-&@O4uf_6!J7PL#(vjV#8S%9!Q0K&rpgogzP4+{_;79f8C!jG+n TfkAu(00000NkvXXu0mjfih`JC literal 0 HcmV?d00001 diff --git a/report/bitmaps_reference/stars--0.png b/report/bitmaps_reference/stars--0.png new file mode 100644 index 0000000000000000000000000000000000000000..03ed921700ee078569c541184125912dad347643 GIT binary patch literal 256 zcmV+b0ssDqP)Z*B$psaDN9w%O$o~5qLVQQmveq>jp_O8ANVJ=!x9ky zb2Bc?cEb{pY2#JdMp!47QkrvJm~Dim1vydGYqKurT&>tLVxP5mbSgJ&kgP`7TBYF zIg@5)X4X|LBKM2m4*L!ZK-JrHijS^FShsH-#=Eo5Iiy&w1QvNe--(Dv}!#%gB^eStjH(O+|7; zVzEq*>&3;K&=LQiE40?WL)qia{x;qnoGHNXZnyIzrQ|UpR#lZdS9~8GF2_4{w0(o! zA^4{2y5$;1L_{orD{kkkp@Hi;z}xJDHDzPYAf=SS+-AxZ&Y^T{;d1mpc|9$JWDrr` z_uj+0u1n&&2LJgH6C;SUohUD^D;C?9-E?t#B3q{Ik&$~-F5G8lW^`dMH!e0b@bZ2) zu*nkpqWZzIapc9d#2Q=Q%Z+3~*LOigo-cCvlDJ~Mb%@7$>+k@+0ODV;=5QU+ta5hNEvfg!(%QTniQL@QVoWs-y$i|i<%_1Ie=z@d*!VYCBhe&=a{PP)R zJUkFwDa97W>FwDAcqNS_tE*UFCw`K^0star%Z?=Ld}Ljf)-iv;#Xi0t_e@~*A2yx}H%*(){H&F%zV`iChaGfoPXrbbJx?`5 k&yD5FsYAS$Q-?q37l`a#FmO$Z1poj507*qoM6N<$f){P9YybcN literal 0 HcmV?d00001 diff --git a/report/bitmaps_reference/stars--3.png b/report/bitmaps_reference/stars--3.png new file mode 100644 index 0000000000000000000000000000000000000000..4c28dac37cb9703d4615bca675cbab241dbe39c3 GIT binary patch literal 395 zcmV;60d)R}P)3N8~avqz!fDB&=00GdQWamT9d+r*Oxs?R~u7d512h3yrWLf)gi$8I1B4Vvo zyWX6*Cr)K!$tr93`i9K`${K9@^HfBvsSZS}s!9l9Tsg5joyvZC5eJ@XwxOu|1|njW pQh^_*Co6+x%U_3dEq@&*=oe{tFagnnGdKVM002ovPDHLkV1k41t5yI2 literal 0 HcmV?d00001 diff --git a/report/bitmaps_reference/stars--4.png b/report/bitmaps_reference/stars--4.png new file mode 100644 index 0000000000000000000000000000000000000000..8ae1b71b79cc5ab26f1f0ba89401c74298536b97 GIT binary patch literal 385 zcmV-{0e=38P)YLKkueKcL z*(%do!-71l{yP9l7)e&&!1FrulLWa^N~KiNY$RFtGxW_o#}v6zN-1U1ES4;;hP}WUclr{WLoR+w!7=i{=MEFyhj6q+(4n+n&O<>H6j*8;S$+v zbhsT8XHwR%J;YxT9GFK_pbzQJ2gc!5;1^#i#iZ2R++?)>R!cUf!0JnfM`wKy?m3dd!CwgKm zS!E4Bzpy(&S%V#6GJ__?HI;>kRaFTgjG|9Wr)$q^po^xJL>2TiVrpEaRG{U_WU=M1 fLq3+j4qxC81a}v=`rYD-00000NkvXXu0mjf{jRJ> literal 0 HcmV?d00001 diff --git a/report/bitmaps_reference/stars--5.png b/report/bitmaps_reference/stars--5.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4be84e03410d58d8ab70289ab55e1d2a4d0672 GIT binary patch literal 276 zcmV+v0qg#WP)MU01+EQ=G|rkmdt^}C>~=s_!B=O$&shIA>u)aUVX&1b3 z$tD%k^$n{ZQ_#*T-=t!?zG2xh!RJ-JNyT&#cZv_5S5>I9%Vu_V)z#u5$-}+KKN^Pw(NyyQkbBGO3vE@aN8XFTUQ#Z+ZT> zvZM_blZxpM5BQ%ybJp+%i%G?Fhr_bRmV437`%c7SQZe0uXZ@RtJ7<~{X?L1a=fUG^+MSRDZ2VFAL!0wld>RcvADJ*#31OYB*7TUcVx zs@uY1J&TluCGadd7M8}dh*(%M&!S*q$vlgKg(dSW3Ko{kvnW_t8qXqPVeDCeusQ(3 z!vchd1xQ(*Rk($f;>UlAeXm!WQ-{To$&xXCbn%B0LL=g%#mh zSS+jv&%$D1zG1Dm;^|F1e~9%~*xR3*S*UAGYO~pNT{oX-0=mn479tB{&jN(i0T3P* zAUrHU>hY`$7FLgEWw5YHJS&fdRpMEBEDWn>En;DaJuAP3;r6V|7KYxla#|RA&&p|G z=shc^g`xMXoEC=Lvoc#4dln$94uJ5m0O4T)!kz`_vS$Ih>{);=dlsNe(X)cPL_I64 zOV_gkx}-e|+9mB-&@O4uf_6!J7PL#(vjV#8S%9!Q0K&rpgogzP4+{_;79f8C!jG+n TfkAu(00000NkvXXu0mjfih`JC literal 0 HcmV?d00001 diff --git a/report/bitmaps_test/20241209-111427/report.json b/report/bitmaps_test/20241209-111427/report.json new file mode 100644 index 0000000000..ff9d9b9f4a --- /dev/null +++ b/report/bitmaps_test/20241209-111427/report.json @@ -0,0 +1,173 @@ +{ + "testSuite": "BackstopJS", + "tests": [ + { + "pair": { + "reference": "..\\bitmaps_reference\\Entire_document.png", + "test": "..\\bitmaps_test\\20241209-111427\\Entire_document.png", + "selector": "document", + "fileName": "Entire_document.png", + "label": "Entire document", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--0.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--0.png", + "selector": ".stars--0", + "fileName": "stars--0.png", + "label": "stars--0", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--1.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--1.png", + "selector": ".stars--1", + "fileName": "stars--1.png", + "label": "stars--1", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--2.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--2.png", + "selector": ".stars--2", + "fileName": "stars--2.png", + "label": "stars--2", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--3.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--3.png", + "selector": ".stars--3", + "fileName": "stars--3.png", + "label": "stars--3", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--4.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--4.png", + "selector": ".stars--4", + "fileName": "stars--4.png", + "label": "stars--4", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--5.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--5.png", + "selector": ".stars--5", + "fileName": "stars--5.png", + "label": "stars--5", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + } + ] +} \ No newline at end of file diff --git a/report/bitmaps_test/20241209-111427/stars--0.png b/report/bitmaps_test/20241209-111427/stars--0.png new file mode 100644 index 0000000000000000000000000000000000000000..03ed921700ee078569c541184125912dad347643 GIT binary patch literal 256 zcmV+b0ssDqP)Z*B$psaDN9w%O$o~5qLVQQmveq>jp_O8ANVJ=!x9ky zb2Bc?cEb{pY2#JdMp!47QkrvJm~Dim1vydGYqKurT&>tLVxP5mbSgJ&kgP`7TBYF zIg@5)X4X|LBKM2m4*L!ZK-JrHijS^FShsH-#=Eo5Iiy&w1QvNe--(Dv}!#%gB^eStjH(O+|7; zVzEq*>&3;K&=LQiE40?WL)qia{x;qnoGHNXZnyIzrQ|UpR#lZdS9~8GF2_4{w0(o! zA^4{2y5$;1L_{orD{kkkp@Hi;z}xJDHDzPYAf=SS+-AxZ&Y^T{;d1mpc|9$JWDrr` z_uj+0u1n&&2LJgH6C;SUohUD^D;C?9-E?t#B3q{Ik&$~-F5G8lW^`dMH!e0b@bZ2) zu*nkpqWZzIapc9d#2Q=Q%Z+3~*LOigo-cCvlDJ~Mb%@7$>+k@+0ODV;=5QU+ta5hNEvfg!(%QTniQL@QVoWs-y$i|i<%_1Ie=z@d*!VYCBhe&=a{PP)R zJUkFwDa97W>FwDAcqNS_tE*UFCw`K^0star%Z?=Ld}Ljf)-iv;#Xi0t_e@~*A2yx}H%*(){H&F%zV`iChaGfoPXrbbJx?`5 k&yD5FsYAS$Q-?q37l`a#FmO$Z1poj507*qoM6N<$f){P9YybcN literal 0 HcmV?d00001 diff --git a/report/bitmaps_test/20241209-111427/stars--3.png b/report/bitmaps_test/20241209-111427/stars--3.png new file mode 100644 index 0000000000000000000000000000000000000000..4c28dac37cb9703d4615bca675cbab241dbe39c3 GIT binary patch literal 395 zcmV;60d)R}P)3N8~avqz!fDB&=00GdQWamT9d+r*Oxs?R~u7d512h3yrWLf)gi$8I1B4Vvo zyWX6*Cr)K!$tr93`i9K`${K9@^HfBvsSZS}s!9l9Tsg5joyvZC5eJ@XwxOu|1|njW pQh^_*Co6+x%U_3dEq@&*=oe{tFagnnGdKVM002ovPDHLkV1k41t5yI2 literal 0 HcmV?d00001 diff --git a/report/bitmaps_test/20241209-111427/stars--4.png b/report/bitmaps_test/20241209-111427/stars--4.png new file mode 100644 index 0000000000000000000000000000000000000000..8ae1b71b79cc5ab26f1f0ba89401c74298536b97 GIT binary patch literal 385 zcmV-{0e=38P)YLKkueKcL z*(%do!-71l{yP9l7)e&&!1FrulLWa^N~KiNY$RFtGxW_o#}v6zN-1U1ES4;;hP}WUclr{WLoR+w!7=i{=MEFyhj6q+(4n+n&O<>H6j*8;S$+v zbhsT8XHwR%J;YxT9GFK_pbzQJ2gc!5;1^#i#iZ2R++?)>R!cUf!0JnfM`wKy?m3dd!CwgKm zS!E4Bzpy(&S%V#6GJ__?HI;>kRaFTgjG|9Wr)$q^po^xJL>2TiVrpEaRG{U_WU=M1 fLq3+j4qxC81a}v=`rYD-00000NkvXXu0mjf{jRJ> literal 0 HcmV?d00001 diff --git a/report/bitmaps_test/20241209-111427/stars--5.png b/report/bitmaps_test/20241209-111427/stars--5.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4be84e03410d58d8ab70289ab55e1d2a4d0672 GIT binary patch literal 276 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 literal 0 HcmV?d00001 diff --git a/report/html_report/assets/fonts/Lato-Bold.ttf b/report/html_report/assets/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..74343694e2b2114272f38b1124813b972cb592e5 GIT binary patch literal 121788 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 literal 0 HcmV?d00001 diff --git a/report/html_report/assets/fonts/Lato-Regular.ttf b/report/html_report/assets/fonts/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04ea8efb1367727b081dea87e63818be0a4d02f0 GIT binary patch literal 120196 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�r(aJ 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 d3)lz{Xfc9M412p literal 0 HcmV?d00001 diff --git a/report/html_report/assets/fonts/lato-bold-webfont.woff b/report/html_report/assets/fonts/lato-bold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..d02221df5b1fe1ee13eeb0988408ef43a795d786 GIT binary patch literal 33272 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 literal 0 HcmV?d00001 diff --git a/report/html_report/assets/fonts/lato-bold-webfont.woff2 b/report/html_report/assets/fonts/lato-bold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d330650bc325af7126b1411b2bfaee8747826c1f GIT binary patch literal 26248 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 literal 0 HcmV?d00001 diff --git a/report/html_report/assets/fonts/lato-regular-webfont.woff2 b/report/html_report/assets/fonts/lato-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0e58138a07e7dfadcd6bb92348ff09268098228c GIT binary patch literal 24992 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 literal 0 HcmV?d00001 diff --git a/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png b/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5adc37b2a8af0688dd640f6e7b759c2b0d31a9 GIT binary patch literal 12777 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 literal 0 HcmV?d00001 diff --git a/report/html_report/config.js b/report/html_report/config.js new file mode 100644 index 0000000000..0833d984e8 --- /dev/null +++ b/report/html_report/config.js @@ -0,0 +1,173 @@ +report({ + "testSuite": "BackstopJS", + "tests": [ + { + "pair": { + "reference": "..\\bitmaps_reference\\Entire_document.png", + "test": "..\\bitmaps_test\\20241209-111427\\Entire_document.png", + "selector": "document", + "fileName": "Entire_document.png", + "label": "Entire document", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--0.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--0.png", + "selector": ".stars--0", + "fileName": "stars--0.png", + "label": "stars--0", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--1.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--1.png", + "selector": ".stars--1", + "fileName": "stars--1.png", + "label": "stars--1", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--2.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--2.png", + "selector": ".stars--2", + "fileName": "stars--2.png", + "label": "stars--2", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--3.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--3.png", + "selector": ".stars--3", + "fileName": "stars--3.png", + "label": "stars--3", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--4.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--4.png", + "selector": ".stars--4", + "fileName": "stars--4.png", + "label": "stars--4", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\stars--5.png", + "test": "..\\bitmaps_test\\20241209-111427\\stars--5.png", + "selector": ".stars--5", + "fileName": "stars--5.png", + "label": "stars--5", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:3001/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/stars/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + } + ] +}); \ No newline at end of file diff --git a/report/html_report/diff.js b/report/html_report/diff.js new file mode 100644 index 0000000000..0b824f1237 --- /dev/null +++ b/report/html_report/diff.js @@ -0,0 +1,1843 @@ +/*! + + diff v3.5.0 + +Software License Agreement (BSD License) + +Copyright (c) 2009-2015, Kevin Decker + +All rights reserved. + +Redistribution and use of this software in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of Kevin Decker nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@license +*/ +(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["JsDiff"] = factory(); + else + root["JsDiff"] = 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__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.merge = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined; + + /*istanbul ignore end*/var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_character = __webpack_require__(2) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_word = __webpack_require__(3) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_sentence = __webpack_require__(6) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_css = __webpack_require__(7) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_json = __webpack_require__(8) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_array = __webpack_require__(9) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_apply = __webpack_require__(10) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_merge = __webpack_require__(13) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_dmp = __webpack_require__(16) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_xml = __webpack_require__(17) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /* See LICENSE file for terms of use */ + + /* + * Text diff implementation. + * + * This library supports the following APIS: + * JsDiff.diffChars: Character by character diff + * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace + * JsDiff.diffLines: Line based diff + * + * JsDiff.diffCss: Diff targeted at CSS content + * + * These methods are based on the implementation proposed in + * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). + * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 + */ + exports. /*istanbul ignore end*/Diff = _base2['default']; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays; + /*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches; + /*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = _merge.merge; + /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP; + /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML; + /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize; + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJEaWZmIiwiZGlmZkNoYXJzIiwiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImRpZmZTZW50ZW5jZXMiLCJkaWZmQ3NzIiwiZGlmZkpzb24iLCJkaWZmQXJyYXlzIiwic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwiYXBwbHlQYXRjaCIsImFwcGx5UGF0Y2hlcyIsInBhcnNlUGF0Y2giLCJtZXJnZSIsImNvbnZlcnRDaGFuZ2VzVG9ETVAiLCJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2Fub25pY2FsaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozt1QkFnQkE7Ozs7dUJBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFqQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O2dDQWtDRUEsSTt5REFFQUMsUzt5REFDQUMsUzt5REFDQUMsa0I7eURBQ0FDLFM7eURBQ0FDLGdCO3lEQUNBQyxhO3lEQUVBQyxPO3lEQUNBQyxRO3lEQUVBQyxVO3lEQUVBQyxlO3lEQUNBQyxtQjt5REFDQUMsVzt5REFDQUMsVTt5REFDQUMsWTt5REFDQUMsVTt5REFDQUMsSzt5REFDQUMsbUI7eURBQ0FDLG1CO3lEQUNBQyxZIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogU2VlIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMgb2YgdXNlICovXG5cbi8qXG4gKiBUZXh0IGRpZmYgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBsaWJyYXJ5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgQVBJUzpcbiAqIEpzRGlmZi5kaWZmQ2hhcnM6IENoYXJhY3RlciBieSBjaGFyYWN0ZXIgZGlmZlxuICogSnNEaWZmLmRpZmZXb3JkczogV29yZCAoYXMgZGVmaW5lZCBieSBcXGIgcmVnZXgpIGRpZmYgd2hpY2ggaWdub3JlcyB3aGl0ZXNwYWNlXG4gKiBKc0RpZmYuZGlmZkxpbmVzOiBMaW5lIGJhc2VkIGRpZmZcbiAqXG4gKiBKc0RpZmYuZGlmZkNzczogRGlmZiB0YXJnZXRlZCBhdCBDU1MgY29udGVudFxuICpcbiAqIFRoZXNlIG1ldGhvZHMgYXJlIGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm9wb3NlZCBpblxuICogXCJBbiBPKE5EKSBEaWZmZXJlbmNlIEFsZ29yaXRobSBhbmQgaXRzIFZhcmlhdGlvbnNcIiAoTXllcnMsIDE5ODYpLlxuICogaHR0cDovL2NpdGVzZWVyeC5pc3QucHN1LmVkdS92aWV3ZG9jL3N1bW1hcnk/ZG9pPTEwLjEuMS40LjY5MjdcbiAqL1xuaW1wb3J0IERpZmYgZnJvbSAnLi9kaWZmL2Jhc2UnO1xuaW1wb3J0IHtkaWZmQ2hhcnN9IGZyb20gJy4vZGlmZi9jaGFyYWN0ZXInO1xuaW1wb3J0IHtkaWZmV29yZHMsIGRpZmZXb3Jkc1dpdGhTcGFjZX0gZnJvbSAnLi9kaWZmL3dvcmQnO1xuaW1wb3J0IHtkaWZmTGluZXMsIGRpZmZUcmltbWVkTGluZXN9IGZyb20gJy4vZGlmZi9saW5lJztcbmltcG9ydCB7ZGlmZlNlbnRlbmNlc30gZnJvbSAnLi9kaWZmL3NlbnRlbmNlJztcblxuaW1wb3J0IHtkaWZmQ3NzfSBmcm9tICcuL2RpZmYvY3NzJztcbmltcG9ydCB7ZGlmZkpzb24sIGNhbm9uaWNhbGl6ZX0gZnJvbSAnLi9kaWZmL2pzb24nO1xuXG5pbXBvcnQge2RpZmZBcnJheXN9IGZyb20gJy4vZGlmZi9hcnJheSc7XG5cbmltcG9ydCB7YXBwbHlQYXRjaCwgYXBwbHlQYXRjaGVzfSBmcm9tICcuL3BhdGNoL2FwcGx5JztcbmltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXRjaC9wYXJzZSc7XG5pbXBvcnQge21lcmdlfSBmcm9tICcuL3BhdGNoL21lcmdlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgZGlmZkFycmF5cyxcblxuICBzdHJ1Y3R1cmVkUGF0Y2gsXG4gIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsXG4gIGNyZWF0ZVBhdGNoLFxuICBhcHBseVBhdGNoLFxuICBhcHBseVBhdGNoZXMsXG4gIHBhcnNlUGF0Y2gsXG4gIG1lcmdlLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0= + + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports['default'] = /*istanbul ignore end*/Diff; + function Diff() {} + + Diff.prototype = { + /*istanbul ignore start*/ /*istanbul ignore end*/diff: function diff(oldString, newString) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var callback = options.callback; + if (typeof options === 'function') { + callback = options; + options = {}; + } + this.options = options; + + var self = this; + + function done(value) { + if (callback) { + setTimeout(function () { + callback(undefined, value); + }, 0); + return true; + } else { + return value; + } + } + + // Allow subclasses to massage the input prior to running + oldString = this.castInput(oldString); + newString = this.castInput(newString); + + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + + var newLen = newString.length, + oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ newPos: -1, components: [] }]; + + // Seed editLength = 0, i.e. the content starts with the same values + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + // Identity per the equality and tokenizer + return done([{ value: this.join(newString), count: newString.length }]); + } + + // Main worker method. checks all permutations of a given edit length for acceptance. + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + var addPath = bestPath[diagonalPath - 1], + removePath = bestPath[diagonalPath + 1], + _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + // No one else is going to attempt to use this value, clear it + bestPath[diagonalPath - 1] = undefined; + } + + var canAdd = addPath && addPath.newPos + 1 < newLen, + canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + // If this path is a terminal then prune + bestPath[diagonalPath] = undefined; + continue; + } + + // Select the diagonal that we want to branch from. We select the prior + // path whose position in the new string is the farthest from the origin + // and does not pass the bounds of the diff graph + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self.pushComponent(basePath.components, undefined, true); + } else { + basePath = addPath; // No need to clone, we've pulled it from the list + basePath.newPos++; + self.pushComponent(basePath.components, true, undefined); + } + + _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); + + // If we have hit the end of both strings, then we are done + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); + } else { + // Otherwise track this path as a potential candidate and continue. + bestPath[diagonalPath] = basePath; + } + } + + editLength++; + } + + // Performs the length of edit iteration. Is a bit fugly as this has to support the + // sync and async mode which is never fun. Loops over execEditLength until a value + // is produced. + if (callback) { + (function exec() { + setTimeout(function () { + // This should not happen, but we want to be safe. + /* istanbul ignore next */ + if (editLength > maxEditLength) { + return callback(); + } + + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + if (last && last.added === added && last.removed === removed) { + // We need to clone here as the component clone operation is just + // as shallow array clone + components[components.length - 1] = { count: last.count + 1, added: added, removed: removed }; + } else { + components.push({ count: 1, added: added, removed: removed }); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, + oldLen = oldString.length, + newPos = basePath.newPos, + oldPos = newPos - diagonalPath, + commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + + if (commonCount) { + basePath.components.push({ count: commonCount }); + } + + basePath.newPos = newPos; + return oldPos; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) { + return value; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) { + return value.split(''); + }, + /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) { + return chars.join(''); + } + }; + + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, + componentLen = components.length, + newPos = 0, + oldPos = 0; + + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function (value, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + + // Common case + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + + // Reverse add and remove so removes are output first to match common convention + // The diffing algorithm is tied to add then remove output and this is the simplest + // route to get the desired output with minimal overhead. + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + + // Special case handle for when one terminal is ignored (i.e. whitespace). + // For this case we merge the terminal into the prior string and drop the change. + // This is only available for string mode. + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + + return components; + } + + function clonePath(path) { + return { newPos: path.newPos, components: path.components.slice(0) }; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOlsiRGlmZiIsInByb3RvdHlwZSIsImRpZmYiLCJvbGRTdHJpbmciLCJuZXdTdHJpbmciLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzZWxmIiwiZG9uZSIsInZhbHVlIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImNhc3RJbnB1dCIsInJlbW92ZUVtcHR5IiwidG9rZW5pemUiLCJuZXdMZW4iLCJsZW5ndGgiLCJvbGRMZW4iLCJlZGl0TGVuZ3RoIiwibWF4RWRpdExlbmd0aCIsImJlc3RQYXRoIiwibmV3UG9zIiwiY29tcG9uZW50cyIsIm9sZFBvcyIsImV4dHJhY3RDb21tb24iLCJqb2luIiwiY291bnQiLCJleGVjRWRpdExlbmd0aCIsImRpYWdvbmFsUGF0aCIsImJhc2VQYXRoIiwiYWRkUGF0aCIsInJlbW92ZVBhdGgiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjbG9uZVBhdGgiLCJwdXNoQ29tcG9uZW50IiwiYnVpbGRWYWx1ZXMiLCJ1c2VMb25nZXN0VG9rZW4iLCJleGVjIiwicmV0IiwiYWRkZWQiLCJyZW1vdmVkIiwibGFzdCIsInB1c2giLCJjb21tb25Db3VudCIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsImNvbXBhcmF0b3IiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJhcnJheSIsImkiLCJzcGxpdCIsImNoYXJzIiwiY29tcG9uZW50UG9zIiwiY29tcG9uZW50TGVuIiwiY29tcG9uZW50Iiwic2xpY2UiLCJtYXAiLCJvbGRWYWx1ZSIsInRtcCIsImxhc3RDb21wb25lbnQiLCJwb3AiLCJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7NENBQXdCQSxJO0FBQVQsU0FBU0EsSUFBVCxHQUFnQixDQUFFOztBQUVqQ0EsS0FBS0MsU0FBTCxHQUFpQjtBQUFBLG1EQUNmQyxJQURlLGdCQUNWQyxTQURVLEVBQ0NDLFNBREQsRUFDMEI7QUFBQSx3REFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUN2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RUFBd0JBLFNBQVNrQyxVQUFVL0IsS0FBM0MsQ0FBVixDQUFsQjtBQUNBSCxnQkFBVWtDLFVBQVUvQixLQUFwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFJNkIsZ0JBQWdCakMsV0FBV2lDLGVBQWUsQ0FBMUIsRUFBNkJmLEtBQWpELEVBQXdEO0FBQ3RELFlBQUlxQixNQUFNdkMsV0FBV2lDLGVBQWUsQ0FBMUIsQ0FBVjtBQUNBakMsbUJBQVdpQyxlQUFlLENBQTFCLElBQStCakMsV0FBV2lDLFlBQVgsQ0FBL0I7QUFDQWpDLG1CQUFXaUMsWUFBWCxJQUEyQk0sR0FBM0I7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsTUFBSUMsZ0JBQWdCeEMsV0FBV2tDLGVBQWUsQ0FBMUIsQ0FBcEI7QUFDQSxNQUFJQSxlQUFlLENBQWYsSUFDRyxPQUFPTSxjQUFjckQsS0FBckIsS0FBK0IsUUFEbEMsS0FFSXFELGNBQWN0QixLQUFkLElBQXVCc0IsY0FBY3JCLE9BRnpDLEtBR0d2QyxLQUFLMkMsTUFBTCxDQUFZLEVBQVosRUFBZ0JpQixjQUFjckQsS0FBOUIsQ0FIUCxFQUc2QztBQUMzQ2EsZUFBV2tDLGVBQWUsQ0FBMUIsRUFBNkIvQyxLQUE3QixJQUFzQ3FELGNBQWNyRCxLQUFwRDtBQUNBYSxlQUFXeUMsR0FBWDtBQUNEOztBQUVELFNBQU96QyxVQUFQO0FBQ0Q7O0FBRUQsU0FBU1ksU0FBVCxDQUFtQjhCLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRTNDLFFBQVEyQyxLQUFLM0MsTUFBZixFQUF1QkMsWUFBWTBDLEtBQUsxQyxVQUFMLENBQWdCb0MsS0FBaEIsQ0FBc0IsQ0FBdEIsQ0FBbkMsRUFBUDtBQUNEIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7XG4gIGRpZmYob2xkU3RyaW5nLCBuZXdTdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBsZXQgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7IH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgbGV0IGVkaXRMZW5ndGggPSAxO1xuICAgIGxldCBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIGxldCBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICBsZXQgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7dmFsdWU6IHRoaXMuam9pbihuZXdTdHJpbmcpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29tcGFyYXRvcihsZWZ0LCByaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsZWZ0ID09PSByaWdodFxuICAgICAgICB8fCAodGhpcy5vcHRpb25zLmlnbm9yZUNhc2UgJiYgbGVmdC50b0xvd2VyQ2FzZSgpID09PSByaWdodC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9LFxuICBqb2luKGNoYXJzKSB7XG4gICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4odmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gZGlmZi5qb2luKG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkpO1xuICAgICAgfVxuICAgICAgbmV3UG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gQ29tbW9uIGNhc2VcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkKSB7XG4gICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbihvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkIChpLmUuIHdoaXRlc3BhY2UpLlxuICAvLyBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZSB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgLy8gVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Igc3RyaW5nIG1vZGUuXG4gIGxldCBsYXN0Q29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAxXTtcbiAgaWYgKGNvbXBvbmVudExlbiA+IDFcbiAgICAgICYmIHR5cGVvZiBsYXN0Q29tcG9uZW50LnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0= + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.characterDiff = undefined; + exports. /*istanbul ignore end*/diffChars = diffChars; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6WyJkaWZmQ2hhcnMiLCJjaGFyYWN0ZXJEaWZmIiwib2xkU3RyIiwibmV3U3RyIiwib3B0aW9ucyIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBR2dCQSxTLEdBQUFBLFM7O0FBSGhCOzs7Ozs7dUJBRU8sSUFBTUMseUZBQWdCLHdFQUF0QjtBQUNBLFNBQVNELFNBQVQsQ0FBbUJFLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ0MsT0FBbkMsRUFBNEM7QUFBRSxTQUFPSCxjQUFjSSxJQUFkLENBQW1CSCxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLE9BQW5DLENBQVA7QUFBcUQiLCJmaWxlIjoiY2hhcmFjdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckRpZmYgPSBuZXcgRGlmZigpO1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGFycyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykgeyByZXR1cm4gY2hhcmFjdGVyRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTsgfVxuIl19 + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.wordDiff = undefined; + exports. /*istanbul ignore end*/diffWords = diffWords; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/ // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode + // + // Ranges and exceptions: + // Latin-1 Supplement, 0080–00FF + // - U+00D7 × Multiplication sign + // - U+00F7 ÷ Division sign + // Latin Extended-A, 0100–017F + // Latin Extended-B, 0180–024F + // IPA Extensions, 0250–02AF + // Spacing Modifier Letters, 02B0–02FF + // - U+02C7 ˇ ˇ Caron + // - U+02D8 ˘ ˘ Breve + // - U+02D9 ˙ ˙ Dot Above + // - U+02DA ˚ ˚ Ring Above + // - U+02DB ˛ ˛ Ogonek + // - U+02DC ˜ ˜ Small Tilde + // - U+02DD ˝ ˝ Double Acute Accent + // Latin Extended Additional, 1E00–1EFF + var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + + var reWhitespace = /\S/; + + var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + wordDiff.equals = function (left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); + }; + wordDiff.tokenize = function (value) { + var tokens = value.split(/(\s+|\b)/); + + // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + for (var i = 0; i < tokens.length - 1; i++) { + // If we have an empty string in the next field and we have only word chars before and after, merge + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + + return tokens; + }; + + function diffWords(oldStr, newStr, options) { + options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(options, { ignoreWhitespace: true }); + return wordDiff.diff(oldStr, newStr, options); + } + + function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOlsiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZXh0ZW5kZWRXb3JkQ2hhcnMiLCJyZVdoaXRlc3BhY2UiLCJ3b3JkRGlmZiIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsIm9wdGlvbnMiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJpZ25vcmVXaGl0ZXNwYWNlIiwidGVzdCIsInRva2VuaXplIiwidmFsdWUiLCJ0b2tlbnMiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJzcGxpY2UiLCJvbGRTdHIiLCJuZXdTdHIiLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7O2dDQW1EZ0JBLFMsR0FBQUEsUzt5REFLQUMsa0IsR0FBQUEsa0I7O0FBeERoQjs7Ozt1QkFDQTs7Ozt3QkFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsK0RBQTFCOztBQUVBLElBQU1DLGVBQWUsSUFBckI7O0FBRU8sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1BBLFNBQVNDLE1BQVQsR0FBa0IsVUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXNCO0FBQ3RDLE1BQUksS0FBS0MsT0FBTCxDQUFhQyxVQUFqQixFQUE2QjtBQUMzQkgsV0FBT0EsS0FBS0ksV0FBTCxFQUFQO0FBQ0FILFlBQVFBLE1BQU1HLFdBQU4sRUFBUjtBQUNEO0FBQ0QsU0FBT0osU0FBU0MsS0FBVCxJQUFtQixLQUFLQyxPQUFMLENBQWFHLGdCQUFiLElBQWlDLENBQUNSLGFBQWFTLElBQWIsQ0FBa0JOLElBQWxCLENBQWxDLElBQTZELENBQUNILGFBQWFTLElBQWIsQ0FBa0JMLEtBQWxCLENBQXhGO0FBQ0QsQ0FORDtBQU9BSCxTQUFTUyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsU0FBU0QsTUFBTUUsS0FBTixDQUFZLFVBQVosQ0FBYjs7QUFFQTtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixPQUFPRyxNQUFQLEdBQWdCLENBQXBDLEVBQXVDRCxHQUF2QyxFQUE0QztBQUMxQztBQUNBLFFBQUksQ0FBQ0YsT0FBT0UsSUFBSSxDQUFYLENBQUQsSUFBa0JGLE9BQU9FLElBQUksQ0FBWCxDQUFsQixJQUNLZixrQkFBa0JVLElBQWxCLENBQXVCRyxPQUFPRSxDQUFQLENBQXZCLENBREwsSUFFS2Ysa0JBQWtCVSxJQUFsQixDQUF1QkcsT0FBT0UsSUFBSSxDQUFYLENBQXZCLENBRlQsRUFFZ0Q7QUFDOUNGLGFBQU9FLENBQVAsS0FBYUYsT0FBT0UsSUFBSSxDQUFYLENBQWI7QUFDQUYsYUFBT0ksTUFBUCxDQUFjRixJQUFJLENBQWxCLEVBQXFCLENBQXJCO0FBQ0FBO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPRixNQUFQO0FBQ0QsQ0FoQkQ7O0FBa0JPLFNBQVNmLFNBQVQsQ0FBbUJvQixNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNiLE9BQW5DLEVBQTRDO0FBQ2pEQSxZQUFVLDhFQUFnQkEsT0FBaEIsRUFBeUIsRUFBQ0csa0JBQWtCLElBQW5CLEVBQXpCLENBQVY7QUFDQSxTQUFPUCxTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEOztBQUVNLFNBQVNQLGtCQUFULENBQTRCbUIsTUFBNUIsRUFBb0NDLE1BQXBDLEVBQTRDYixPQUE1QyxFQUFxRDtBQUMxRCxTQUFPSixTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVDYXNlKSB7XG4gICAgbGVmdCA9IGxlZnQudG9Mb3dlckNhc2UoKTtcbiAgICByaWdodCA9IHJpZ2h0LnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3Jkc1dpdGhTcGFjZShvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4iXX0= + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/generateOptions = generateOptions; + function generateOptions(options, defaults) { + if (typeof options === 'function') { + defaults.callback = options; + } else if (options) { + for (var name in options) { + /* istanbul ignore else */ + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; + } + } + } + return defaults; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6WyJnZW5lcmF0ZU9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJjYWxsYmFjayIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsZSxHQUFBQSxlO0FBQVQsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsYUFBU0MsUUFBVCxHQUFvQkYsT0FBcEI7QUFDRCxHQUZELE1BRU8sSUFBSUEsT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSUcsSUFBVCxJQUFpQkgsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxVQUFJQSxRQUFRSSxjQUFSLENBQXVCRCxJQUF2QixDQUFKLEVBQWtDO0FBQ2hDRixpQkFBU0UsSUFBVCxJQUFpQkgsUUFBUUcsSUFBUixDQUFqQjtBQUNEO0FBQ0Y7QUFDRjtBQUNELFNBQU9GLFFBQVA7QUFDRCIsImZpbGUiOiJwYXJhbXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0= + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.lineDiff = undefined; + exports. /*istanbul ignore end*/diffLines = diffLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + lineDiff.tokenize = function (value) { + var retLines = [], + linesAndNewlines = value.split(/(\n|\r\n)/); + + // Ignore the final empty token that occurs if the string ends with a new line + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + + // Merge the content and line separators into single tokens + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + + return retLines; + }; + + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); + } + function diffTrimmedLines(oldStr, newStr, callback) { + var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); + return lineDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOlsiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImxpbmVEaWZmIiwidG9rZW5pemUiLCJ2YWx1ZSIsInJldExpbmVzIiwibGluZXNBbmROZXdsaW5lcyIsInNwbGl0IiwibGVuZ3RoIiwicG9wIiwiaSIsImxpbmUiLCJvcHRpb25zIiwibmV3bGluZUlzVG9rZW4iLCJpZ25vcmVXaGl0ZXNwYWNlIiwidHJpbSIsInB1c2giLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBOEJnQkEsUyxHQUFBQSxTO3lEQUNBQyxnQixHQUFBQSxnQjs7QUEvQmhCOzs7O3VCQUNBOzs7O3VCQUVPLElBQU1DLCtFQUFXLHdFQUFqQjtBQUNQQSxTQUFTQyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsV0FBVyxFQUFmO0FBQUEsTUFDSUMsbUJBQW1CRixNQUFNRyxLQUFOLENBQVksV0FBWixDQUR2Qjs7QUFHQTtBQUNBLE1BQUksQ0FBQ0QsaUJBQWlCQSxpQkFBaUJFLE1BQWpCLEdBQTBCLENBQTNDLENBQUwsRUFBb0Q7QUFDbERGLHFCQUFpQkcsR0FBakI7QUFDRDs7QUFFRDtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJSixpQkFBaUJFLE1BQXJDLEVBQTZDRSxHQUE3QyxFQUFrRDtBQUNoRCxRQUFJQyxPQUFPTCxpQkFBaUJJLENBQWpCLENBQVg7O0FBRUEsUUFBSUEsSUFBSSxDQUFKLElBQVMsQ0FBQyxLQUFLRSxPQUFMLENBQWFDLGNBQTNCLEVBQTJDO0FBQ3pDUixlQUFTQSxTQUFTRyxNQUFULEdBQWtCLENBQTNCLEtBQWlDRyxJQUFqQztBQUNELEtBRkQsTUFFTztBQUNMLFVBQUksS0FBS0MsT0FBTCxDQUFhRSxnQkFBakIsRUFBbUM7QUFDakNILGVBQU9BLEtBQUtJLElBQUwsRUFBUDtBQUNEO0FBQ0RWLGVBQVNXLElBQVQsQ0FBY0wsSUFBZDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT04sUUFBUDtBQUNELENBeEJEOztBQTBCTyxTQUFTTCxTQUFULENBQW1CaUIsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxRQUFuQyxFQUE2QztBQUFFLFNBQU9qQixTQUFTa0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsUUFBOUIsQ0FBUDtBQUFpRDtBQUNoRyxTQUFTbEIsZ0JBQVQsQ0FBMEJnQixNQUExQixFQUFrQ0MsTUFBbEMsRUFBMENDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUlQLFVBQVUsOEVBQWdCTyxRQUFoQixFQUEwQixFQUFDTCxrQkFBa0IsSUFBbkIsRUFBMUIsQ0FBZDtBQUNBLFNBQU9aLFNBQVNrQixJQUFULENBQWNILE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCTixPQUE5QixDQUFQO0FBQ0QiLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2dlbmVyYXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbC9wYXJhbXMnO1xuXG5leHBvcnQgY29uc3QgbGluZURpZmYgPSBuZXcgRGlmZigpO1xubGluZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgcmV0TGluZXMgPSBbXSxcbiAgICAgIGxpbmVzQW5kTmV3bGluZXMgPSB2YWx1ZS5zcGxpdCgvKFxcbnxcXHJcXG4pLyk7XG5cbiAgLy8gSWdub3JlIHRoZSBmaW5hbCBlbXB0eSB0b2tlbiB0aGF0IG9jY3VycyBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhIG5ldyBsaW5lXG4gIGlmICghbGluZXNBbmROZXdsaW5lc1tsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgbGluZXNBbmROZXdsaW5lcy5wb3AoKTtcbiAgfVxuXG4gIC8vIE1lcmdlIHRoZSBjb250ZW50IGFuZCBsaW5lIHNlcGFyYXRvcnMgaW50byBzaW5nbGUgdG9rZW5zXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXNBbmROZXdsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNBbmROZXdsaW5lc1tpXTtcblxuICAgIGlmIChpICUgMiAmJiAhdGhpcy5vcHRpb25zLm5ld2xpbmVJc1Rva2VuKSB7XG4gICAgICByZXRMaW5lc1tyZXRMaW5lcy5sZW5ndGggLSAxXSArPSBsaW5lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlnbm9yZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0TGluZXMucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0TGluZXM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG5leHBvcnQgZnVuY3Rpb24gZGlmZlRyaW1tZWRMaW5lcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbiJdfQ== + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.sentenceDiff = undefined; + exports. /*istanbul ignore end*/diffSentences = diffSentences; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + sentenceDiff.tokenize = function (value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); + }; + + function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbImRpZmZTZW50ZW5jZXMiLCJzZW50ZW5jZURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic3BsaXQiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCQSxhLEdBQUFBLGE7O0FBUmhCOzs7Ozs7dUJBR08sSUFBTUMsdUZBQWUsd0VBQXJCO0FBQ1BBLGFBQWFDLFFBQWIsR0FBd0IsVUFBU0MsS0FBVCxFQUFnQjtBQUN0QyxTQUFPQSxNQUFNQyxLQUFOLENBQVksdUJBQVosQ0FBUDtBQUNELENBRkQ7O0FBSU8sU0FBU0osYUFBVCxDQUF1QkssTUFBdkIsRUFBK0JDLE1BQS9CLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUFFLFNBQU9OLGFBQWFPLElBQWIsQ0FBa0JILE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ0MsUUFBbEMsQ0FBUDtBQUFxRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ== + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.cssDiff = undefined; + exports. /*istanbul ignore end*/diffCss = diffCss; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + cssDiff.tokenize = function (value) { + return value.split(/([{}:;,]|\s+)/); + }; + + function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6WyJkaWZmQ3NzIiwiY3NzRGlmZiIsInRva2VuaXplIiwidmFsdWUiLCJzcGxpdCIsIm9sZFN0ciIsIm5ld1N0ciIsImNhbGxiYWNrIiwiZGlmZiJdLCJtYXBwaW5ncyI6Ijs7OztnQ0FPZ0JBLE8sR0FBQUEsTzs7QUFQaEI7Ozs7Ozt1QkFFTyxJQUFNQyw2RUFBVSx3RUFBaEI7QUFDUEEsUUFBUUMsUUFBUixHQUFtQixVQUFTQyxLQUFULEVBQWdCO0FBQ2pDLFNBQU9BLE1BQU1DLEtBQU4sQ0FBWSxlQUFaLENBQVA7QUFDRCxDQUZEOztBQUlPLFNBQVNKLE9BQVQsQ0FBaUJLLE1BQWpCLEVBQXlCQyxNQUF6QixFQUFpQ0MsUUFBakMsRUFBMkM7QUFBRSxTQUFPTixRQUFRTyxJQUFSLENBQWFILE1BQWIsRUFBcUJDLE1BQXJCLEVBQTZCQyxRQUE3QixDQUFQO0FBQWdEIiwiZmlsZSI6ImNzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjc3NEaWZmID0gbmV3IERpZmYoKTtcbmNzc0RpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhbe306OyxdfFxccyspLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNzcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIGNzc0RpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG4iXX0= + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.jsonDiff = undefined; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + exports. /*istanbul ignore end*/diffJson = diffJson; + /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var objectPrototypeToString = Object.prototype.toString; + + var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a + // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: + jsonDiff.useLongestToken = true; + + jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff /*istanbul ignore end*/.tokenize; + jsonDiff.castInput = function (value) { + /*istanbul ignore start*/var _options = /*istanbul ignore end*/this.options, + undefinedReplacement = _options.undefinedReplacement, + _options$stringifyRep = _options.stringifyReplacer, + stringifyReplacer = _options$stringifyRep === undefined ? function (k, v) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/typeof v === 'undefined' ? undefinedReplacement : v + ); + } : _options$stringifyRep; + + + return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); + }; + jsonDiff.equals = function (left, right) { + return (/*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) + ); + }; + + function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); + } + + // This function handles the presence of circular references by bailing out when encountering an + // object that is already on the "stack" of items being processed. Accepts an optional replacer + function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + + if (replacer) { + obj = replacer(key, obj); + } + + var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + + var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + if ('[object Array]' === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + + if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], + _key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (_key in obj) { + /* istanbul ignore else */ + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOlsiZGlmZkpzb24iLCJjYW5vbmljYWxpemUiLCJvYmplY3RQcm90b3R5cGVUb1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwianNvbkRpZmYiLCJ1c2VMb25nZXN0VG9rZW4iLCJ0b2tlbml6ZSIsImNhc3RJbnB1dCIsInZhbHVlIiwib3B0aW9ucyIsInVuZGVmaW5lZFJlcGxhY2VtZW50Iiwic3RyaW5naWZ5UmVwbGFjZXIiLCJrIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJjYWxsIiwicmVwbGFjZSIsIm9sZE9iaiIsIm5ld09iaiIsImRpZmYiLCJvYmoiLCJzdGFjayIsInJlcGxhY2VtZW50U3RhY2siLCJyZXBsYWNlciIsImtleSIsImkiLCJsZW5ndGgiLCJjYW5vbmljYWxpemVkT2JqIiwicHVzaCIsIkFycmF5IiwicG9wIiwidG9KU09OIiwic29ydGVkS2V5cyIsImhhc093blByb3BlcnR5Iiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FxQmdCQSxRLEdBQUFBLFE7eURBSUFDLFksR0FBQUEsWTs7QUF6QmhCOzs7O3VCQUNBOzs7O3VCQUVBLElBQU1DLDBCQUEwQkMsT0FBT0MsU0FBUCxDQUFpQkMsUUFBakQ7O0FBR08sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1A7QUFDQTtBQUNBQSxTQUFTQyxlQUFULEdBQTJCLElBQTNCOztBQUVBRCxTQUFTRSxRQUFULEdBQW9CLGdFQUFTQSxRQUE3QjtBQUNBRixTQUFTRyxTQUFULEdBQXFCLFVBQVNDLEtBQVQsRUFBZ0I7QUFBQSxpRUFDK0UsS0FBS0MsT0FEcEY7QUFBQSxNQUM1QkMsb0JBRDRCLFlBQzVCQSxvQkFENEI7QUFBQSx1Q0FDTkMsaUJBRE07QUFBQSxNQUNOQSxpQkFETSx5Q0FDYyxVQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxtQ0FBVSxPQUFPQSxDQUFQ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QUFLVCxJQUFJLENBQVQsRUFBWUEsSUFBSU8sV0FBV04sTUFBM0IsRUFBbUNELEtBQUssQ0FBeEMsRUFBMkM7QUFDekNELGFBQU1RLFdBQVdQLENBQVgsQ0FBTjtBQUNBRSx1QkFBaUJILElBQWpCLElBQXdCN0IsYUFBYXlCLElBQUlJLElBQUosQ0FBYixFQUF1QkgsS0FBdkIsRUFBOEJDLGdCQUE5QixFQUFnREMsUUFBaEQsRUFBMERDLElBQTFELENBQXhCO0FBQ0Q7QUFDREgsVUFBTVMsR0FBTjtBQUNBUixxQkFBaUJRLEdBQWpCO0FBQ0QsR0FuQkQsTUFtQk87QUFDTEgsdUJBQW1CUCxHQUFuQjtBQUNEO0FBQ0QsU0FBT08sZ0JBQVA7QUFDRCIsImZpbGUiOiJqc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7bGluZURpZmZ9IGZyb20gJy4vbGluZSc7XG5cbmNvbnN0IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuXG5leHBvcnQgY29uc3QganNvbkRpZmYgPSBuZXcgRGlmZigpO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSBsaW5lRGlmZi50b2tlbml6ZTtcbmpzb25EaWZmLmNhc3RJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGNvbnN0IHt1bmRlZmluZWRSZXBsYWNlbWVudCwgc3RyaW5naWZ5UmVwbGFjZXIgPSAoaywgdikgPT4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkUmVwbGFjZW1lbnQgOiB2fSA9IHRoaXMub3B0aW9ucztcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlLCBudWxsLCBudWxsLCBzdHJpbmdpZnlSZXBsYWNlciksIHN0cmluZ2lmeVJlcGxhY2VyLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzLmNhbGwoanNvbkRpZmYsIGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgb3B0aW9ucykgeyByZXR1cm4ganNvbkRpZmYuZGlmZihvbGRPYmosIG5ld09iaiwgb3B0aW9ucyk7IH1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLiBBY2NlcHRzIGFuIG9wdGlvbmFsIHJlcGxhY2VyXG5leHBvcnQgZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgaWYgKHJlcGxhY2VyKSB7XG4gICAgb2JqID0gcmVwbGFjZXIoa2V5LCBvYmopO1xuICB9XG5cbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHN0YWNrW2ldID09PSBvYmopIHtcbiAgICAgIHJldHVybiByZXBsYWNlbWVudFN0YWNrW2ldO1xuICAgIH1cbiAgfVxuXG4gIGxldCBjYW5vbmljYWxpemVkT2JqO1xuXG4gIGlmICgnW29iamVjdCBBcnJheV0nID09PSBvYmplY3RQcm90b3R5cGVUb1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG5ldyBBcnJheShvYmoubGVuZ3RoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnB1c2goY2Fub25pY2FsaXplZE9iaik7XG4gICAgZm9yIChpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY2Fub25pY2FsaXplZE9ialtpXSA9IGNhbm9uaWNhbGl6ZShvYmpbaV0sIHN0YWNrLCByZXBsYWNlbWVudFN0YWNrLCByZXBsYWNlciwga2V5KTtcbiAgICB9XG4gICAgc3RhY2sucG9wKCk7XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wb3AoKTtcbiAgICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbiAgfVxuXG4gIGlmIChvYmogJiYgb2JqLnRvSlNPTikge1xuICAgIG9iaiA9IG9iai50b0pTT04oKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IHt9O1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4iXX0= + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.arrayDiff = undefined; + exports. /*istanbul ignore end*/diffArrays = diffArrays; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + arrayDiff.tokenize = function (value) { + return value.slice(); + }; + arrayDiff.join = arrayDiff.removeEmpty = function (value) { + return value; + }; + + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2FycmF5LmpzIl0sIm5hbWVzIjpbImRpZmZBcnJheXMiLCJhcnJheURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic2xpY2UiLCJqb2luIiwicmVtb3ZlRW1wdHkiLCJvbGRBcnIiLCJuZXdBcnIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBVWdCQSxVLEdBQUFBLFU7O0FBVmhCOzs7Ozs7dUJBRU8sSUFBTUMsaUZBQVksd0VBQWxCO0FBQ1BBLFVBQVVDLFFBQVYsR0FBcUIsVUFBU0MsS0FBVCxFQUFnQjtBQUNuQyxTQUFPQSxNQUFNQyxLQUFOLEVBQVA7QUFDRCxDQUZEO0FBR0FILFVBQVVJLElBQVYsR0FBaUJKLFVBQVVLLFdBQVYsR0FBd0IsVUFBU0gsS0FBVCxFQUFnQjtBQUN2RCxTQUFPQSxLQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTSCxVQUFULENBQW9CTyxNQUFwQixFQUE0QkMsTUFBNUIsRUFBb0NDLFFBQXBDLEVBQThDO0FBQUUsU0FBT1IsVUFBVVMsSUFBVixDQUFlSCxNQUFmLEVBQXVCQyxNQUF2QixFQUErQkMsUUFBL0IsQ0FBUDtBQUFrRCIsImZpbGUiOiJhcnJheS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBhcnJheURpZmYgPSBuZXcgRGlmZigpO1xuYXJyYXlEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNsaWNlKCk7XG59O1xuYXJyYXlEaWZmLmpvaW4gPSBhcnJheURpZmYucmVtb3ZlRW1wdHkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkFycmF5cyhvbGRBcnIsIG5ld0FyciwgY2FsbGJhY2spIHsgcmV0dXJuIGFycmF5RGlmZi5kaWZmKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjayk7IH1cbiJdfQ== + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/applyPatch = applyPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_distanceIterator = __webpack_require__(12) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _distanceIterator2 = _interopRequireDefault(_distanceIterator); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/function applyPatch(source, uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + if (Array.isArray(uniDiff)) { + if (uniDiff.length > 1) { + throw new Error('applyPatch only works with a single input.'); + } + + uniDiff = uniDiff[0]; + } + + // Apply the diff to the input + var lines = source.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], + hunks = uniDiff.hunks, + compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/line === patchContent + ); + }, + errorCount = 0, + fuzzFactor = options.fuzzFactor || 0, + minLine = 0, + offset = 0, + removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + /** + * Checks if the hunk exactly fits on the provided location + */ + function hunkFits(hunk, toPos) { + for (var j = 0; j < hunk.lines.length; j++) { + var line = hunk.lines[j], + operation = line.length > 0 ? line[0] : ' ', + content = line.length > 0 ? line.substr(1) : line; + + if (operation === ' ' || operation === '-') { + // Context sanity check + if (!compareLine(toPos + 1, lines[toPos], operation, content)) { + errorCount++; + + if (errorCount > fuzzFactor) { + return false; + } + } + toPos++; + } + } + + return true; + } + + // Search best fit offsets for each hunk based on the previous ones + for (var i = 0; i < hunks.length; i++) { + var hunk = hunks[i], + maxLine = lines.length - hunk.oldLines, + localOffset = 0, + toPos = offset + hunk.oldStart - 1; + + var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine); + + for (; localOffset !== undefined; localOffset = iterator()) { + if (hunkFits(hunk, toPos + localOffset)) { + hunk.offset = offset += localOffset; + break; + } + } + + if (localOffset === undefined) { + return false; + } + + // Set lower text limit to end of the current hunk, so next ones don't try + // to fit over already patched text + minLine = hunk.offset + hunk.oldStart + hunk.oldLines; + } + + // Apply patch hunks + var diffOffset = 0; + for (var _i = 0; _i < hunks.length; _i++) { + var _hunk = hunks[_i], + _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; + diffOffset += _hunk.newLines - _hunk.oldLines; + + if (_toPos < 0) { + // Creating a new file + _toPos = 0; + } + + for (var j = 0; j < _hunk.lines.length; j++) { + var line = _hunk.lines[j], + operation = line.length > 0 ? line[0] : ' ', + content = line.length > 0 ? line.substr(1) : line, + delimiter = _hunk.linedelimiters[j]; + + if (operation === ' ') { + _toPos++; + } else if (operation === '-') { + lines.splice(_toPos, 1); + delimiters.splice(_toPos, 1); + /* istanbul ignore else */ + } else if (operation === '+') { + lines.splice(_toPos, 0, content); + delimiters.splice(_toPos, 0, delimiter); + _toPos++; + } else if (operation === '\\') { + var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; + if (previousOperation === '+') { + removeEOFNL = true; + } else if (previousOperation === '-') { + addEOFNL = true; + } + } + } + } + + // Handle EOFNL insertion/removal + if (removeEOFNL) { + while (!lines[lines.length - 1]) { + lines.pop(); + delimiters.pop(); + } + } else if (addEOFNL) { + lines.push(''); + delimiters.push('\n'); + } + for (var _k = 0; _k < lines.length - 1; _k++) { + lines[_k] = lines[_k] + delimiters[_k]; + } + return lines.join(''); + } + + // Wrapper that supports multiple file patches via callbacks. + function applyPatches(uniDiff, options) { + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + var currentIndex = 0; + function processIndex() { + var index = uniDiff[currentIndex++]; + if (!index) { + return options.complete(); + } + + options.loadFile(index, function (err, data) { + if (err) { + return options.complete(err); + } + + var updatedContent = applyPatch(data, index, options); + options.patched(index, updatedContent, function (err) { + if (err) { + return options.complete(err); + } + + processIndex(); + }); + }); + } + processIndex(); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwiYXBwbHlQYXRjaGVzIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImxpbmVzIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJodW5rcyIsImNvbXBhcmVMaW5lIiwibGluZU51bWJlciIsImxpbmUiLCJvcGVyYXRpb24iLCJwYXRjaENvbnRlbnQiLCJlcnJvckNvdW50IiwiZnV6ekZhY3RvciIsIm1pbkxpbmUiLCJvZmZzZXQiLCJyZW1vdmVFT0ZOTCIsImFkZEVPRk5MIiwiaHVua0ZpdHMiLCJodW5rIiwidG9Qb3MiLCJqIiwiY29udGVudCIsInN1YnN0ciIsImkiLCJtYXhMaW5lIiwib2xkTGluZXMiLCJsb2NhbE9mZnNldCIsIm9sZFN0YXJ0IiwiaXRlcmF0b3IiLCJ1bmRlZmluZWQiLCJkaWZmT2Zmc2V0IiwibmV3TGluZXMiLCJkZWxpbWl0ZXIiLCJsaW5lZGVsaW1pdGVycyIsInNwbGljZSIsInByZXZpb3VzT3BlcmF0aW9uIiwicG9wIiwicHVzaCIsIl9rIiwiam9pbiIsImN1cnJlbnRJbmRleCIsInByb2Nlc3NJbmRleCIsImluZGV4IiwiY29tcGxldGUiLCJsb2FkRmlsZSIsImVyciIsImRhdGEiLCJ1cGRhdGVkQ29udGVudCIsInBhdGNoZWQiXSwibWFwcGluZ3MiOiI7OztnQ0FHZ0JBLFUsR0FBQUEsVTt5REFvSUFDLFksR0FBQUEsWTs7QUF2SWhCOztBQUNBOzs7Ozs7dUJBRU8sU0FBU0QsVUFBVCxDQUFvQkUsTUFBcEIsRUFBNEJDLE9BQTVCLEVBQW1EO0FBQUEsc0RBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDeEQsTUFBSSxPQUFPRCxPQUFQLEtBQW1CLFFBQXZCLEVBQWlDO0FBQy9CQSxjQUFVLHdFQUFXQSxPQUFYLENBQVY7QUFDRDs7QUFFRCxNQUFJRSxNQUFNQyxPQUFOLENBQWNILE9BQWQsQ0FBSixFQUE0QjtBQUMxQixRQUFJQSxRQUFRSSxNQUFSLEdBQWlCLENBQXJCLEVBQXdCO0FBQ3RCLFlBQU0sSUFBSUMsS0FBSixDQUFVLDRDQUFWLENBQU47QUFDRDs7QUFFREwsY0FBVUEsUUFBUSxDQUFSLENBQVY7QUFDRDs7QUFFRDtBQUNBLE1BQUlNLFFBQVFQLE9BQU9RLEtBQVAsQ0FBYSxxQkFBYixDQUFaO0FBQUEsTUFDSUMsYUFBYVQsT0FBT1UsS0FBUCxDQUFhLHNCQUFiLEtBQXdDLEVBRHpEO0FBQUEsTUFFSUMsUUFBUVYsUUFBUVUsS0FGcEI7QUFBQSxNQUlJQyxjQUFjVixRQUFRVSxXQUFSLElBQXdCLFVBQUNDLFVBQUQsRUFBYUMsSUFBYixFQUFtQkMsU0FBbkIsRUFBOEJDLFlBQTlCO0FBQUEsbUNBQStDRixTQUFTRTtBQUF4RDtBQUFBLEdBSjFDO0FBQUEsTUFLSUMsYUFBYSxDQUxqQjtBQUFBLE1BTUlDLGFBQWFoQixRQUFRZ0IsVUFBUixJQUFzQixDQU52QztBQUFBLE1BT0lDLFVBQVUsQ0FQZDtBQUFBLE1BUUlDLFNBQVMsQ0FSYjtBQUFBLE1BVUlDLDZDQVZKO0FBQUEsTUFXSUMsMENBWEo7O0FBYUE7OztBQUdBLFdBQVNDLFFBQVQsQ0FBa0JDLElBQWxCLEVBQXdCQyxLQUF4QixFQUErQjtBQUM3QixTQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUYsS0FBS2pCLEtBQUwsQ0FBV0YsTUFBL0IsRUFBdUNxQixHQUF2QyxFQUE0QztBQUMxQyxVQUFJWixPQUFPVSxLQUFLakIsS0FBTCxDQUFXbUIsQ0FBWCxDQUFYO0FBQUEsVUFDSVgsWUFBYUQsS0FBS1QsTUFBTCxHQUFjLENBQWQsR0FBa0JTLEtBQUssQ0FBTCxDQUFsQixHQUE0QixHQUQ3QztBQUFBLFVBRUlhLFVBQVdiLEtBQUtULE1BQUwsR0FBYyxDQUFkLEdBQWtCUyxLQUFLYyxNQUFMLENBQVksQ0FBWixDQUFsQixHQUFtQ2QsSUFGbEQ7O0FBSUEsVUFBSUMsY0FBYyxHQUFkLElBQXFCQSxjQUFjLEdBQXZDLEVBQTRDO0FBQzFDO0FBQ0EsWUFBSSxDQUFDSCxZQUFZYSxRQUFRLENBQXBCLEVBQXVCbEIsTUFBTWtCLEtBQU4sQ0FBdkIsRUFBcUNWLFNBQXJDLEVBQWdEWSxPQUFoRCxDQUFMLEVBQStEO0FBQzdEVjs7QUFFQSxjQUFJQSxhQUFhQyxVQUFqQixFQUE2QjtBQUMzQixtQkFBTyxLQUFQO0FBQ0Q7QUFDRjtBQUNETztBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxPQUFLLElBQUlJLElBQUksQ0FBYixFQUFnQkEsSUFBSWxCLE1BQU1OLE1BQTFCLEVBQWtDd0IsR0FBbEMsRUFBdUM7QUFDckMsUUFBSUwsT0FBT2IsTUFBTWtCLENBQU4sQ0FBWDtBQUFBLFFBQ0lDLFVBQVV2QixNQUFNRixNQUFOLEdBQWVtQixLQUFLTyxRQURsQztBQUFBLFFBRUlDLGNBQWMsQ0FGbEI7QUFBQSxRQUdJUCxRQUFRTCxTQUFTSSxLQUFLUyxRQUFkLEdBQXlCLENBSHJDOztBQUtBLFFBQUlDLFdBQVcsb0ZBQWlCVCxLQUFqQixFQUF3Qk4sT0FBeEIsRUFBaUNXLE9BQWpDLENBQWY7O0FBRUEsV0FBT0UsZ0JBQWdCRyxTQUF2QixFQUFrQ0gsY0FBY0UsVUFBaEQsRUFBNEQ7QUFDMUQsVUFBSVgsU0FBU0MsSUFBVCxFQUFlQyxRQUFRTyxXQUF2QixDQUFKLEVBQXlDO0FBQ3ZDUixhQUFLSixNQUFMLEdBQWNBLFVBQVVZLFdBQXhCO0FBQ0E7QUFDRDtBQUNGOztBQUVELFFBQUlBLGdCQUFnQkcsU0FBcEIsRUFBK0I7QUFDN0IsYUFBTyxLQUFQO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBaEIsY0FBVUssS0FBS0osTUFBTCxHQUFjSSxLQUFLUyxRQUFuQixHQUE4QlQsS0FBS08sUUFBN0M7QUFDRDs7QUFFRDtBQUNBLE1BQUlLLGFBQWEsQ0FBakI7QUFDQSxPQUFLLElBQUlQLEtBQUksQ0FBYixFQUFnQkEsS0FBSWxCLE1BQU1OLE1BQTFCLEVBQWtDd0IsSUFBbEMsRUFBdUM7QUFDckMsUUFBSUwsUUFBT2IsTUFBTWtCLEVBQU4sQ0FBWDtBQUFBLFFBQ0lKLFNBQVFELE1BQUtTLFFBQUwsR0FBZ0JULE1BQUtKLE1BQXJCLEdBQThCZ0IsVUFBOUIsR0FBMkMsQ0FEdkQ7QUFFQUEsa0JBQWNaLE1BQUthLFFBQUwsR0FBZ0JiLE1BQUtPLFFBQW5DOztBQUVBLFFBQUlOLFNBQVEsQ0FBWixFQUFlO0FBQUU7QUFDZkEsZUFBUSxDQUFSO0FBQ0Q7O0FBRUQsU0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLE1BQUtqQixLQUFMLENBQVdGLE1BQS9CLEVBQXVDcUIsR0FBdkMsRUFBNEM7QUFDMUMsVUFBSVosT0FBT1UsTUFBS2pCLEtBQUwsQ0FBV21CLENBQVgsQ0FBWDtBQUFBLFVBQ0lYLFlBQWFELEtBQUtULE1BQUwsR0FBYyxDQUFkLEdBQWtCUyxLQUFLLENBQUwsQ0FBbEIsR0FBNEIsR0FEN0M7QUFBQSxVQUVJYSxVQUFXYixLQUFLVCxNQUFMLEdBQWMsQ0FBZCxHQUFrQlMsS0FBS2MsTUFBTCxDQUFZLENBQVosQ0FBbEIsR0FBbUNkLElBRmxEO0FBQUEsVUFHSXdCLFlBQVlkLE1BQUtlLGNBQUwsQ0FBb0JiLENBQXBCLENBSGhCOztBQUtBLFVBQUlYLGNBQWMsR0FBbEIsRUFBdUI7QUFDckJVO0FBQ0QsT0FGRCxNQUVPLElBQUlWLGNBQWMsR0FBbEIsRUFBdUI7QUFDNUJSLGNBQU1pQyxNQUFOLENBQWFmLE1BQWIsRUFBb0IsQ0FBcEI7QUFDQWhCLG1CQUFXK0IsTUFBWCxDQUFrQmYsTUFBbEIsRUFBeUIsQ0FBekI7QUFDRjtBQUNDLE9BSk0sTUFJQSxJQUFJVixjQUFjLEdBQWxCLEVBQXVCO0FBQzVCUixjQUFNaUMsTUFBTixDQUFhZixNQUFiLEVBQW9CLENBQXBCLEVBQXVCRSxPQUF2QjtBQUNBbEIsbUJBQVcrQixNQUFYLENBQWtCZixNQUFsQixFQUF5QixDQUF6QixFQUE0QmEsU0FBNUI7QUFDQWI7QUFDRCxPQUpNLE1BSUEsSUFBSVYsY0FBYyxJQUFsQixFQUF3QjtBQUM3QixZQUFJMEIsb0JBQW9CakIsTUFBS2pCLEtBQUwsQ0FBV21CLElBQUksQ0FBZixJQUFvQkYsTUFBS2pCLEtBQUwsQ0FBV21CLElBQUksQ0FBZixFQUFrQixDQUFsQixDQUFwQixHQUEyQyxJQUFuRTtBQUNBLFlBQUllLHNCQUFzQixHQUExQixFQUErQjtBQUM3QnBCLHdCQUFjLElBQWQ7QUFDRCxTQUZELE1BRU8sSUFBSW9CLHNCQUFzQixHQUExQixFQUErQjtBQUNwQ25CLHFCQUFXLElBQVg7QUFDRDtBQUNGO0FBQ0Y7QUFDRjs7QUFFRDtBQUNBLE1BQUlELFdBQUosRUFBaUI7QUFDZixXQUFPLENBQUNkLE1BQU1BLE1BQU1GLE1BQU4sR0FBZSxDQUFyQixDQUFSLEVBQWlDO0FBQy9CRSxZQUFNbUMsR0FBTjtBQUNBakMsaUJBQVdpQyxHQUFYO0FBQ0Q7QUFDRixHQUxELE1BS08sSUFBSXBCLFFBQUosRUFBYztBQUNuQmYsVUFBTW9DLElBQU4sQ0FBVyxFQUFYO0FBQ0FsQyxlQUFXa0MsSUFBWCxDQUFnQixJQUFoQjtBQUNEO0FBQ0QsT0FBSyxJQUFJQyxLQUFLLENBQWQsRUFBaUJBLEtBQUtyQyxNQUFNRixNQUFOLEdBQWUsQ0FBckMsRUFBd0N1QyxJQUF4QyxFQUE4QztBQUM1Q3JDLFVBQU1xQyxFQUFOLElBQVlyQyxNQUFNcUMsRUFBTixJQUFZbkMsV0FBV21DLEVBQVgsQ0FBeEI7QUFDRDtBQUNELFNBQU9yQyxNQUFNc0MsSUFBTixDQUFXLEVBQVgsQ0FBUDtBQUNEOztBQUVEO0FBQ08sU0FBUzlDLFlBQVQsQ0FBc0JFLE9BQXRCLEVBQStCQyxPQUEvQixFQUF3QztBQUM3QyxNQUFJLE9BQU9ELE9BQVAsS0FBbUIsUUFBdkIsRUFBaUM7QUFDL0JBLGNBQVUsd0VBQVdBLE9BQVgsQ0FBVjtBQUNEOztBQUVELE1BQUk2QyxlQUFlLENBQW5CO0FBQ0EsV0FBU0MsWUFBVCxHQUF3QjtBQUN0QixRQUFJQyxRQUFRL0MsUUFBUTZDLGNBQVIsQ0FBWjtBQUNBLFFBQUksQ0FBQ0UsS0FBTCxFQUFZO0FBQ1YsYUFBTzlDLFFBQVErQyxRQUFSLEVBQVA7QUFDRDs7QUFFRC9DLFlBQVFnRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT2pELFFBQVErQyxRQUFSLENBQWlCRSxHQUFqQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUUsaUJBQWlCdkQsV0FBV3NELElBQVgsRUFBaUJKLEtBQWpCLEVBQXdCOUMsT0FBeEIsQ0FBckI7QUFDQUEsY0FBUW9ELE9BQVIsQ0FBZ0JOLEtBQWhCLEVBQXVCSyxjQUF2QixFQUF1QyxVQUFTRixHQUFULEVBQWM7QUFDbkQsWUFBSUEsR0FBSixFQUFTO0FBQ1AsaUJBQU9qRCxRQUFRK0MsUUFBUixDQUFpQkUsR0FBakIsQ0FBUDtBQUNEOztBQUVESjtBQUNELE9BTkQ7QUFPRCxLQWJEO0FBY0Q7QUFDREE7QUFDRCIsImZpbGUiOiJhcHBseS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGlmICh0b1BvcyA8IDApIHsgLy8gQ3JlYXRpbmcgYSBuZXcgZmlsZVxuICAgICAgdG9Qb3MgPSAwO1xuICAgIH1cblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19 + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/parsePatch = parsePatch; + function parsePatch(uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], + list = [], + i = 0; + + function parseIndex() { + var index = {}; + list.push(index); + + // Parse diff metadata + while (i < diffstr.length) { + var line = diffstr[i]; + + // File header found, end parsing diff metadata + if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { + break; + } + + // Diff index + var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); + if (header) { + index.index = header[1]; + } + + i++; + } + + // Parse file headers if they are defined. Unified diff requires them, but + // there's no technical issues to have an isolated hunk without file header + parseFileHeader(index); + parseFileHeader(index); + + // Parse hunks + index.hunks = []; + + while (i < diffstr.length) { + var _line = diffstr[i]; + + if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { + break; + } else if (/^@@/.test(_line)) { + index.hunks.push(parseHunk()); + } else if (_line && options.strict) { + // Ignore unexpected content unless in strict mode + throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); + } else { + i++; + } + } + } + + // Parses the --- and +++ headers, if none are found, no lines + // are consumed. + function parseFileHeader(index) { + var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); + if (fileHeader) { + var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; + var data = fileHeader[2].split('\t', 2); + var fileName = data[0].replace(/\\\\/g, '\\'); + if (/^".*"$/.test(fileName)) { + fileName = fileName.substr(1, fileName.length - 2); + } + index[keyPrefix + 'FileName'] = fileName; + index[keyPrefix + 'Header'] = (data[1] || '').trim(); + + i++; + } + } + + // Parses a hunk + // This assumes that we are at the start of a hunk. + function parseHunk() { + var chunkHeaderIndex = i, + chunkHeaderLine = diffstr[i++], + chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); + + var hunk = { + oldStart: +chunkHeader[1], + oldLines: +chunkHeader[2] || 1, + newStart: +chunkHeader[3], + newLines: +chunkHeader[4] || 1, + lines: [], + linedelimiters: [] + }; + + var addCount = 0, + removeCount = 0; + for (; i < diffstr.length; i++) { + // Lines starting with '---' could be mistaken for the "remove line" operation + // But they could be the header for the next file. Therefore prune such cases out. + if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { + break; + } + var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0]; + + if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { + hunk.lines.push(diffstr[i]); + hunk.linedelimiters.push(delimiters[i] || '\n'); + + if (operation === '+') { + addCount++; + } else if (operation === '-') { + removeCount++; + } else if (operation === ' ') { + addCount++; + removeCount++; + } + } else { + break; + } + } + + // Handle the empty block count case + if (!addCount && hunk.newLines === 1) { + hunk.newLines = 0; + } + if (!removeCount && hunk.oldLines === 1) { + hunk.oldLines = 0; + } + + // Perform optional sanity checking + if (options.strict) { + if (addCount !== hunk.newLines) { + throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + if (removeCount !== hunk.oldLines) { + throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + } + + return hunk; + } + + while (i < diffstr.length) { + parseIndex(); + } + + return list; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6WyJwYXJzZVBhdGNoIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJkaWZmc3RyIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJsaXN0IiwiaSIsInBhcnNlSW5kZXgiLCJpbmRleCIsInB1c2giLCJsZW5ndGgiLCJsaW5lIiwidGVzdCIsImhlYWRlciIsImV4ZWMiLCJwYXJzZUZpbGVIZWFkZXIiLCJodW5rcyIsInBhcnNlSHVuayIsInN0cmljdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbGVIZWFkZXIiLCJrZXlQcmVmaXgiLCJkYXRhIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwic3Vic3RyIiwidHJpbSIsImNodW5rSGVhZGVySW5kZXgiLCJjaHVua0hlYWRlckxpbmUiLCJjaHVua0hlYWRlciIsImh1bmsiLCJvbGRTdGFydCIsIm9sZExpbmVzIiwibmV3U3RhcnQiLCJuZXdMaW5lcyIsImxpbmVzIiwibGluZWRlbGltaXRlcnMiLCJhZGRDb3VudCIsInJlbW92ZUNvdW50IiwiaW5kZXhPZiIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsVSxHQUFBQSxVO0FBQVQsU0FBU0EsVUFBVCxDQUFvQkMsT0FBcEIsRUFBMkM7QUFBQSxzREFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUNoRCxNQUFJQyxVQUFVRixRQUFRRyxLQUFSLENBQWMscUJBQWQsQ0FBZDtBQUFBLE1BQ0lDLGFBQWFKLFFBQVFLLEtBQVIsQ0FBYyxzQkFBZCxLQUF5QyxFQUQxRDtBQUFBLE1BRUlDLE9BQU8sRUFGWDtBQUFBLE1BR0lDLElBQUksQ0FIUjs7QUFLQSxXQUFTQyxVQUFULEdBQXNCO0FBQ3BCLFFBQUlDLFFBQVEsRUFBWjtBQUNBSCxTQUFLSSxJQUFMLENBQVVELEtBQVY7O0FBRUE7QUFDQSxXQUFPRixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6QixVQUFJQyxPQUFPVixRQUFR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QW9CO0FBQ2xCLFVBQUlxQixhQUFhUCxLQUFLSSxRQUF0QixFQUFnQztBQUM5QixjQUFNLElBQUlqQixLQUFKLENBQVUsc0RBQXNEVSxtQkFBbUIsQ0FBekUsQ0FBVixDQUFOO0FBQ0Q7QUFDRCxVQUFJVyxnQkFBZ0JSLEtBQUtFLFFBQXpCLEVBQW1DO0FBQ2pDLGNBQU0sSUFBSWYsS0FBSixDQUFVLHdEQUF3RFUsbUJBQW1CLENBQTNFLENBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0csSUFBUDtBQUNEOztBQUVELFNBQU8xQixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6Qkg7QUFDRDs7QUFFRCxTQUFPRixJQUFQO0FBQ0QiLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KC9cXHJcXG58W1xcblxcdlxcZlxcclxceDg1XS8pLFxuICAgICAgZGVsaW1pdGVycyA9IHVuaURpZmYubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgbGlzdCA9IFtdLFxuICAgICAgaSA9IDA7XG5cbiAgZnVuY3Rpb24gcGFyc2VJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB7fTtcbiAgICBsaXN0LnB1c2goaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgZGlmZiBtZXRhZGF0YVxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgLy8gRmlsZSBoZWFkZXIgZm91bmQsIGVuZCBwYXJzaW5nIGRpZmYgbWV0YWRhdGFcbiAgICAgIGlmICgvXihcXC1cXC1cXC18XFwrXFwrXFwrfEBAKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gRGlmZiBpbmRleFxuICAgICAgbGV0IGhlYWRlciA9ICgvXig/OkluZGV4OnxkaWZmKD86IC1yIFxcdyspKylcXHMrKC4rPylcXHMqJC8pLmV4ZWMobGluZSk7XG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGluZGV4LmluZGV4ID0gaGVhZGVyWzFdO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgZmlsZSBoZWFkZXJzIGlmIHRoZXkgYXJlIGRlZmluZWQuIFVuaWZpZWQgZGlmZiByZXF1aXJlcyB0aGVtLCBidXRcbiAgICAvLyB0aGVyZSdzIG5vIHRlY2huaWNhbCBpc3N1ZXMgdG8gaGF2ZSBhbiBpc29sYXRlZCBodW5rIHdpdGhvdXQgZmlsZSBoZWFkZXJcbiAgICBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpO1xuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBodW5rc1xuICAgIGluZGV4Lmh1bmtzID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIGlmICgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAoL15AQC8udGVzdChsaW5lKSkge1xuICAgICAgICBpbmRleC5odW5rcy5wdXNoKHBhcnNlSHVuaygpKTtcbiAgICAgIH0gZWxzZSBpZiAobGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KGxpbmUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYXJzZXMgdGhlIC0tLSBhbmQgKysrIGhlYWRlcnMsIGlmIG5vbmUgYXJlIGZvdW5kLCBubyBsaW5lc1xuICAvLyBhcmUgY29uc3VtZWQuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZUhlYWRlcihpbmRleCkge1xuICAgIGNvbnN0IGZpbGVIZWFkZXIgPSAoL14oLS0tfFxcK1xcK1xcKylcXHMrKC4qKSQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgY29uc3QgZGF0YSA9IGZpbGVIZWFkZXJbMl0uc3BsaXQoJ1xcdCcsIDIpO1xuICAgICAgbGV0IGZpbGVOYW1lID0gZGF0YVswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpO1xuICAgICAgaWYgKC9eXCIuKlwiJC8udGVzdChmaWxlTmFtZSkpIHtcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMSwgZmlsZU5hbWUubGVuZ3RoIC0gMik7XG4gICAgICB9XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnRmlsZU5hbWUnXSA9IGZpbGVOYW1lO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gKGRhdGFbMV0gfHwgJycpLnRyaW0oKTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdLFxuICAgICAgbGluZWRlbGltaXRlcnM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggJy0tLScgY291bGQgYmUgbWlzdGFrZW4gZm9yIHRoZSBcInJlbW92ZSBsaW5lXCIgb3BlcmF0aW9uXG4gICAgICAvLyBCdXQgdGhleSBjb3VsZCBiZSB0aGUgaGVhZGVyIGZvciB0aGUgbmV4dCBmaWxlLiBUaGVyZWZvcmUgcHJ1bmUgc3VjaCBjYXNlcyBvdXQuXG4gICAgICBpZiAoZGlmZnN0cltpXS5pbmRleE9mKCctLS0gJykgPT09IDBcbiAgICAgICAgICAgICYmIChpICsgMiA8IGRpZmZzdHIubGVuZ3RoKVxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMV0uaW5kZXhPZignKysrICcpID09PSAwXG4gICAgICAgICAgICAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsZXQgb3BlcmF0aW9uID0gKGRpZmZzdHJbaV0ubGVuZ3RoID09IDAgJiYgaSAhPSAoZGlmZnN0ci5sZW5ndGggLSAxKSkgPyAnICcgOiBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuICAgICAgICBodW5rLmxpbmVkZWxpbWl0ZXJzLnB1c2goZGVsaW1pdGVyc1tpXSB8fCAnXFxuJyk7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgYmxvY2sgY291bnQgY2FzZVxuICAgIGlmICghYWRkQ291bnQgJiYgaHVuay5uZXdMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5uZXdMaW5lcyA9IDA7XG4gICAgfVxuICAgIGlmICghcmVtb3ZlQ291bnQgJiYgaHVuay5vbGRMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5vbGRMaW5lcyA9IDA7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBvcHRpb25hbCBzYW5pdHkgY2hlY2tpbmdcbiAgICBpZiAob3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIGlmIChhZGRDb3VudCAhPT0gaHVuay5uZXdMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZGVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZW1vdmVDb3VudCAhPT0gaHVuay5vbGRMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW92ZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodW5rO1xuICB9XG5cbiAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgIHBhcnNlSW5kZXgoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuIl19 + + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + + exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) { + var wantForward = true, + backwardExhausted = false, + forwardExhausted = false, + localOffset = 1; + + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } + + // Check if trying to fit beyond text length, and if not, check it fits + // after offset location (or desired location on first iteration) + if (start + localOffset <= maxLine) { + return localOffset; + } + + forwardExhausted = true; + } + + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } + + // Check if trying to fit before text beginning, and if not, check it fits + // before offset location + if (minLine <= start - localOffset) { + return -localOffset++; + } + + backwardExhausted = true; + return iterator(); + } + + // We tried to fit hunk before text beginning and beyond text length, then + // hunk can't fit on the text. Return undefined + }; + }; + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbInN0YXJ0IiwibWluTGluZSIsIm1heExpbmUiLCJ3YW50Rm9yd2FyZCIsImJhY2t3YXJkRXhoYXVzdGVkIiwiZm9yd2FyZEV4aGF1c3RlZCIsImxvY2FsT2Zmc2V0IiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7NENBR2UsVUFBU0EsS0FBVCxFQUFnQkMsT0FBaEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUlDLGNBQWMsSUFBbEI7QUFBQSxNQUNJQyxvQkFBb0IsS0FEeEI7QUFBQSxNQUVJQyxtQkFBbUIsS0FGdkI7QUFBQSxNQUdJQyxjQUFjLENBSGxCOztBQUtBLFNBQU8sU0FBU0MsUUFBVCxHQUFvQjtBQUN6QixRQUFJSixlQUFlLENBQUNFLGdCQUFwQixFQUFzQztBQUNwQyxVQUFJRCxpQkFBSixFQUF1QjtBQUNyQkU7QUFDRCxPQUZELE1BRU87QUFDTEgsc0JBQWMsS0FBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJSCxRQUFRTSxXQUFSLElBQXVCSixPQUEzQixFQUFvQztBQUNsQyxlQUFPSSxXQUFQO0FBQ0Q7O0FBRURELHlCQUFtQixJQUFuQjtBQUNEOztBQUVELFFBQUksQ0FBQ0QsaUJBQUwsRUFBd0I7QUFDdEIsVUFBSSxDQUFDQyxnQkFBTCxFQUF1QjtBQUNyQkYsc0JBQWMsSUFBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJRixXQUFXRCxRQUFRTSxXQUF2QixFQUFvQztBQUNsQyxlQUFPLENBQUNBLGFBQVI7QUFDRDs7QUFFREYsMEJBQW9CLElBQXBCO0FBQ0EsYUFBT0csVUFBUDtBQUNEOztBQUVEO0FBQ0E7QUFDRCxHQWxDRDtBQW1DRCxDIiwiZmlsZSI6ImRpc3RhbmNlLWl0ZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmd0aCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0= + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/calcLineCount = calcLineCount; + /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge; + + var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_array = __webpack_require__(15) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + + /*istanbul ignore end*/function calcLineCount(hunk) { + /*istanbul ignore start*/var _calcOldNewLineCount = /*istanbul ignore end*/calcOldNewLineCount(hunk.lines), + oldLines = _calcOldNewLineCount.oldLines, + newLines = _calcOldNewLineCount.newLines; + + if (oldLines !== undefined) { + hunk.oldLines = oldLines; + } else { + delete hunk.oldLines; + } + + if (newLines !== undefined) { + hunk.newLines = newLines; + } else { + delete hunk.newLines; + } + } + + function merge(mine, theirs, base) { + mine = loadPatch(mine, base); + theirs = loadPatch(theirs, base); + + var ret = {}; + + // For index we just let it pass through as it doesn't have any necessary meaning. + // Leaving sanity checks on this to the API consumer that may know more about the + // meaning in their own context. + if (mine.index || theirs.index) { + ret.index = mine.index || theirs.index; + } + + if (mine.newFileName || theirs.newFileName) { + if (!fileNameChanged(mine)) { + // No header or no change in ours, use theirs (and ours if theirs does not exist) + ret.oldFileName = theirs.oldFileName || mine.oldFileName; + ret.newFileName = theirs.newFileName || mine.newFileName; + ret.oldHeader = theirs.oldHeader || mine.oldHeader; + ret.newHeader = theirs.newHeader || mine.newHeader; + } else if (!fileNameChanged(theirs)) { + // No header or no change in theirs, use ours + ret.oldFileName = mine.oldFileName; + ret.newFileName = mine.newFileName; + ret.oldHeader = mine.oldHeader; + ret.newHeader = mine.newHeader; + } else { + // Both changed... figure it out + ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); + ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); + ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); + ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); + } + } + + ret.hunks = []; + + var mineIndex = 0, + theirsIndex = 0, + mineOffset = 0, + theirsOffset = 0; + + while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { + var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity }, + theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity }; + + if (hunkBefore(mineCurrent, theirsCurrent)) { + // This patch does not overlap with any of the others, yay. + ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); + mineIndex++; + theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; + } else if (hunkBefore(theirsCurrent, mineCurrent)) { + // This patch does not overlap with any of the others, yay. + ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); + theirsIndex++; + mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; + } else { + // Overlap, merge as best we can + var mergedHunk = { + oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), + oldLines: 0, + newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), + newLines: 0, + lines: [] + }; + mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); + theirsIndex++; + mineIndex++; + + ret.hunks.push(mergedHunk); + } + } + + return ret; + } + + function loadPatch(param, base) { + if (typeof param === 'string') { + if (/^@@/m.test(param) || /^Index:/m.test(param)) { + return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0] + ); + } + + if (!base) { + throw new Error('Must provide a base reference or pass in a patch'); + } + return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param) + ); + } + + return param; + } + + function fileNameChanged(patch) { + return patch.newFileName && patch.newFileName !== patch.oldFileName; + } + + function selectField(index, mine, theirs) { + if (mine === theirs) { + return mine; + } else { + index.conflict = true; + return { mine: mine, theirs: theirs }; + } + } + + function hunkBefore(test, check) { + return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; + } + + function cloneHunk(hunk, offset) { + return { + oldStart: hunk.oldStart, oldLines: hunk.oldLines, + newStart: hunk.newStart + offset, newLines: hunk.newLines, + lines: hunk.lines + }; + } + + function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { + // This will generally result in a conflicted hunk, but there are cases where the context + // is the only overlap where we can successfully merge the content here. + var mine = { offset: mineOffset, lines: mineLines, index: 0 }, + their = { offset: theirOffset, lines: theirLines, index: 0 }; + + // Handle any leading content + insertLeading(hunk, mine, their); + insertLeading(hunk, their, mine); + + // Now in the overlap content. Scan through and select the best changes from each. + while (mine.index < mine.lines.length && their.index < their.lines.length) { + var mineCurrent = mine.lines[mine.index], + theirCurrent = their.lines[their.index]; + + if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) { + // Both modified ... + mutualChange(hunk, mine, their); + } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { + /*istanbul ignore start*/var _hunk$lines; + + /*istanbul ignore end*/ // Mine inserted + /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine))); + } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { + /*istanbul ignore start*/var _hunk$lines2; + + /*istanbul ignore end*/ // Theirs inserted + /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their))); + } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { + // Mine removed or edited + removal(hunk, mine, their); + } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') { + // Their removed or edited + removal(hunk, their, mine, true); + } else if (mineCurrent === theirCurrent) { + // Context identity + hunk.lines.push(mineCurrent); + mine.index++; + their.index++; + } else { + // Context mismatch + conflict(hunk, collectChange(mine), collectChange(their)); + } + } + + // Now push anything that may be remaining + insertTrailing(hunk, mine); + insertTrailing(hunk, their); + + calcLineCount(hunk); + } + + function mutualChange(hunk, mine, their) { + var myChanges = collectChange(mine), + theirChanges = collectChange(their); + + if (allRemoves(myChanges) && allRemoves(theirChanges)) { + // Special case for remove changes that are supersets of one another + if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + /*istanbul ignore start*/var _hunk$lines3; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); + return; + } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + /*istanbul ignore start*/var _hunk$lines4; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges)); + return; + } + } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) { + /*istanbul ignore start*/var _hunk$lines5; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); + return; + } + + conflict(hunk, myChanges, theirChanges); + } + + function removal(hunk, mine, their, swap) { + var myChanges = collectChange(mine), + theirChanges = collectContext(their, myChanges); + if (theirChanges.merged) { + /*istanbul ignore start*/var _hunk$lines6; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged)); + } else { + conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); + } + } + + function conflict(hunk, mine, their) { + hunk.conflict = true; + hunk.lines.push({ + conflict: true, + mine: mine, + theirs: their + }); + } + + function insertLeading(hunk, insert, their) { + while (insert.offset < their.offset && insert.index < insert.lines.length) { + var line = insert.lines[insert.index++]; + hunk.lines.push(line); + insert.offset++; + } + } + function insertTrailing(hunk, insert) { + while (insert.index < insert.lines.length) { + var line = insert.lines[insert.index++]; + hunk.lines.push(line); + } + } + + function collectChange(state) { + var ret = [], + operation = state.lines[state.index][0]; + while (state.index < state.lines.length) { + var line = state.lines[state.index]; + + // Group additions that are immediately after subtractions and treat them as one "atomic" modify change. + if (operation === '-' && line[0] === '+') { + operation = '+'; + } + + if (operation === line[0]) { + ret.push(line); + state.index++; + } else { + break; + } + } + + return ret; + } + function collectContext(state, matchChanges) { + var changes = [], + merged = [], + matchIndex = 0, + contextChanges = false, + conflicted = false; + while (matchIndex < matchChanges.length && state.index < state.lines.length) { + var change = state.lines[state.index], + match = matchChanges[matchIndex]; + + // Once we've hit our add, then we are done + if (match[0] === '+') { + break; + } + + contextChanges = contextChanges || change[0] !== ' '; + + merged.push(match); + matchIndex++; + + // Consume any additions in the other block as a conflict to attempt + // to pull in the remaining context after this + if (change[0] === '+') { + conflicted = true; + + while (change[0] === '+') { + changes.push(change); + change = state.lines[++state.index]; + } + } + + if (match.substr(1) === change.substr(1)) { + changes.push(change); + state.index++; + } else { + conflicted = true; + } + } + + if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) { + conflicted = true; + } + + if (conflicted) { + return changes; + } + + while (matchIndex < matchChanges.length) { + merged.push(matchChanges[matchIndex++]); + } + + return { + merged: merged, + changes: changes + }; + } + + function allRemoves(changes) { + return changes.reduce(function (prev, change) { + return prev && change[0] === '-'; + }, true); + } + function skipRemoveSuperset(state, removeChanges, delta) { + for (var i = 0; i < delta; i++) { + var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); + if (state.lines[state.index + i] !== ' ' + changeContent) { + return false; + } + } + + state.index += delta; + return true; + } + + function calcOldNewLineCount(lines) { + var oldLines = 0; + var newLines = 0; + + lines.forEach(function (line) { + if (typeof line !== 'string') { + var myCount = calcOldNewLineCount(line.mine); + var theirCount = calcOldNewLineCount(line.theirs); + + if (oldLines !== undefined) { + if (myCount.oldLines === theirCount.oldLines) { + oldLines += myCount.oldLines; + } else { + oldLines = undefined; + } + } + + if (newLines !== undefined) { + if (myCount.newLines === theirCount.newLines) { + newLines += myCount.newLines; + } else { + newLines = undefined; + } + } + } else { + if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) { + newLines++; + } + if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) { + oldLines++; + } + } + }); + + return { oldLines: oldLines, newLines: newLines }; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6WyJjYWxjTGluZUNvdW50IiwibWVyZ2UiLCJodW5rIiwiY2FsY09sZE5ld0xpbmVDb3VudCIsImxpbmVzIiwib2xkTGluZXMiLCJuZXdMaW5lcyIsInVuZGVmaW5lZCIsIm1pbmUiLCJ0aGVpcnMiLCJiYXNlIiwibG9hZFBhdGNoIiwicmV0IiwiaW5kZXgiLCJuZXdGaWxlTmFtZSIsImZpbGVOYW1lQ2hhbmdlZCIsIm9sZEZpbGVOYW1lIiwib2xkSGVhZGVyIiwibmV3SGVhZGVyIiwic2VsZWN0RmllbGQiLCJodW5rcyIsIm1pbmVJbmRleCIsInRoZWlyc0luZGV4IiwibWluZU9mZnNldCIsInRoZWlyc09mZnNldCIsImxlbmd0aCIsIm1pbmVDdXJyZW50Iiwib2xkU3RhcnQiLCJJbmZpbml0eSIsInRoZWlyc0N1cnJlbnQiLCJodW5rQmVmb3JlIiwicHVzaCIsImNsb25lSHVuayIsIm1lcmdlZEh1bmsiLCJNYXRoIiwibWluIiwibmV3U3RhcnQiLCJtZXJnZUxpbmVzIiwicGFyYW0iLCJ0ZXN0IiwiRXJyb3IiLCJwYXRjaCIsImNvbmZsaWN0IiwiY2hlY2siLCJvZmZzZXQiLCJtaW5lTGluZXMiLCJ0aGVpck9mZnNldCIsInRoZWlyTGluZXMiLCJ0aGVpciIsImluc2VydExlYWRpbmciLCJ0aGVpckN1cnJlbnQiLCJtdXR1YWxDaGFuZ2UiLCJjb2xsZWN0Q2hhbmdlIiwicmVtb3ZhbCIsImluc2VydFRyYWlsaW5nIiwibXlDaGFuZ2VzIiwidGhlaXJDaGFuZ2VzIiwiYWxsUmVtb3ZlcyIsInNraXBSZW1vdmVTdXBlcnNldCIsInN3YXAiLCJjb2xsZWN0Q29udGV4dCIsIm1lcmdlZCIsImluc2VydCIsImxpbmUiLCJzdGF0ZSIsIm9wZXJhdGlvbiIsIm1hdGNoQ2hhbmdlcyIsImNoYW5nZXMiLCJtYXRjaEluZGV4IiwiY29udGV4dENoYW5nZXMiLCJjb25mbGljdGVkIiwiY2hhbmdlIiwibWF0Y2giLCJzdWJzdHIiLCJyZWR1Y2UiLCJwcmV2IiwicmVtb3ZlQ2hhbmdlcyIsImRlbHRhIiwiaSIsImNoYW5nZUNvbnRlbnQiLCJmb3JFYWNoIiwibXlDb3VudCIsInRoZWlyQ291bnQiXSwibWFwcGluZ3MiOiI7OztnQ0FLZ0JBLGEsR0FBQUEsYTt5REFnQkFDLEssR0FBQUEsSzs7QUFyQmhCOztBQUNBOztBQUVBOzs7O3VCQUVPLFNBQVNELGFBQVQsQ0FBdUJFLElBQXZCLEVBQTZCO0FBQUEsNkVBQ0xDLG9CQUFvQkQsS0FBS0UsS0FBekIsQ0FESztBQUFBLE1BQzNCQyxRQUQyQix3QkFDM0JBLFFBRDJCO0FBQUEsTUFDakJDLFFBRGlCLHdCQUNqQkEsUUFEaUI7O0FBR2xDLE1BQUlELGFBQWFFLFNBQWpCLEVBQTRCO0FBQzFCTCxTQUFLRyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU9ILEtBQUtHLFFBQVo7QUFDRDs7QUFFRCxNQUFJQyxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQkwsU0FBS0ksUUFBTCxHQUFnQkEsUUFBaEI7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPSixLQUFLSSxRQUFaO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTTCxLQUFULENBQWVPLElBQWYsRUFBcUJDLE1BQXJCLEVBQTZCQyxJQUE3QixFQUFtQztBQUN4Q0YsU0FBT0csVUFBVUgsSUFBVixFQUFnQkUsSUFBaEIsQ0FBUDtBQUNBRCxXQUFTRSxVQUFVRixNQUFWLEVBQWtCQyxJQUFsQixDQUFUOztBQUVBLE1BQUlFLE1BQU0sRUFBVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJSixLQUFLSyxLQUFMLElBQWNKLE9BQU9JLEtBQXpCLEVBQWdDO0FBQzlCRCxRQUFJQyxLQUFKLEdBQVlMLEtBQUtLLEtBQUwsSUFBY0osT0FBT0ksS0FBakM7QUFDRDs7QUFFRCxNQUFJTCxLQUFLTSxXQUFMLElBQW9CTCxPQUFPSyxXQUEvQixFQUE0QztBQUMxQyxRQUFJLENBQUNDLGdCQUFnQlAsSUFBaEIsQ0FBTCxF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Q0Q7QUFDRjs7QUFFRCxVQUFJRCxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTNFLFFBQVIsS0FBcUI0RSxXQUFXNUUsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZMkUsUUFBUTNFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXQyxTQUFYO0FBQ0Q7QUFDRjtBQUNGLEtBbkJELE1BbUJPO0FBQ0wsVUFBSUQsYUFBYUMsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEV6RDtBQUNEO0FBQ0QsVUFBSUQsYUFBYUUsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEUxRDtBQUNEO0FBQ0Y7QUFDRixHQTVCRDs7QUE4QkEsU0FBTyxFQUFDQSxrQkFBRCxFQUFXQyxrQkFBWCxFQUFQO0FBQ0QiLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3N0cnVjdHVyZWRQYXRjaH0gZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcblxuaW1wb3J0IHthcnJheUVxdWFsLCBhcnJheVN0YXJ0c1dpdGh9IGZyb20gJy4uL3V0aWwvYXJyYXknO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0xpbmVDb3VudChodW5rKSB7XG4gIGNvbnN0IHtvbGRMaW5lcywgbmV3TGluZXN9ID0gY2FsY09sZE5ld0xpbmVDb3VudChodW5rLmxpbmVzKTtcblxuICBpZiAob2xkTGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGh1bmsub2xkTGluZXMgPSBvbGRMaW5lcztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaHVuay5uZXdMaW5lcyA9IG5ld0xpbmVzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBodW5rLm5ld0xpbmVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShtaW5lLCB0aGVpcnMsIGJhc2UpIHtcbiAgbWluZSA9IGxvYWRQYXRjaChtaW5lLCBiYXNlKTtcbiAgdGhlaXJzID0gbG9hZFBhdGNoKHRoZWlycywgYmFzZSk7XG5cbiAgbGV0IHJldCA9IHt9O1xuXG4gIC8vIEZvciBpbmRleCB3ZSBqdXN0IGxldCBpdCBwYXNzIHRocm91Z2ggYXMgaXQgZG9lc24ndCBoYXZlIGFueSBuZWNlc3NhcnkgbWVhbmluZy5cbiAgLy8gTGVhdmluZyBzYW5pdHkgY2hlY2tzIG9uIHRoaXMgdG8gdGhlIEFQSSBjb25zdW1lciB0aGF0IG1heSBrbm93IG1vcmUgYWJvdXQgdGhlXG4gIC8vIG1lYW5pbmcgaW4gdGhlaXIgb3duIGNvbnRleHQuXG4gIGlmIChtaW5lLmluZGV4IHx8IHRoZWlycy5pbmRleCkge1xuICAgIHJldC5pbmRleCA9IG1pbmUuaW5kZXggfHwgdGhlaXJzLmluZGV4O1xuICB9XG5cbiAgaWYgKG1pbmUubmV3RmlsZU5hbWUgfHwgdGhlaXJzLm5ld0ZpbGVOYW1lKSB7XG4gICAgaWYgKCFmaWxlTmFtZUNoYW5nZWQobWluZSkpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gb3VycywgdXNlIHRoZWlycyAoYW5kIG91cnMgaWYgdGhlaXJzIGRvZXMgbm90IGV4aXN0KVxuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gdGhlaXJzLm9sZEZpbGVOYW1lIHx8IG1pbmUub2xkRmlsZU5hbWU7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSB0aGVpcnMubmV3RmlsZU5hbWUgfHwgbWluZS5uZXdGaWxlTmFtZTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSB0aGVpcnMub2xkSGVhZGVyIHx8IG1pbmUub2xkSGVhZGVyO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IHRoZWlycy5uZXdIZWFkZXIgfHwgbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIGlmICghZmlsZU5hbWVDaGFuZ2VkKHRoZWlycykpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gdGhlaXJzLCB1c2Ugb3Vyc1xuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gbWluZS5vbGRGaWxlTmFtZTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IG1pbmUubmV3RmlsZU5hbWU7XG4gICAgICByZXQub2xkSGVhZGVyID0gbWluZS5vbGRIZWFkZXI7XG4gICAgICByZXQubmV3SGVhZGVyID0gbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEJvdGggY2hhbmdlZC4uLiBmaWd1cmUgaXQgb3V0XG4gICAgICByZXQub2xkRmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUub2xkRmlsZU5hbWUsIHRoZWlycy5vbGRGaWxlTmFtZSk7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUubmV3RmlsZU5hbWUsIHRoZWlycy5uZXdGaWxlTmFtZSk7XG4gICAgICByZXQub2xkSGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm9sZEhlYWRlciwgdGhlaXJzLm9sZEhlYWRlcik7XG4gICAgICByZXQubmV3SGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm5ld0hlYWRlciwgdGhlaXJzLm5ld0hlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0Lmh1bmtzID0gW107XG5cbiAgbGV0IG1pbmVJbmRleCA9IDAsXG4gICAgICB0aGVpcnNJbmRleCA9IDAsXG4gICAgICBtaW5lT2Zmc2V0ID0gMCxcbiAgICAgIHRoZWlyc09mZnNldCA9IDA7XG5cbiAgd2hpbGUgKG1pbmVJbmRleCA8IG1pbmUuaHVua3MubGVuZ3RoIHx8IHRoZWlyc0luZGV4IDwgdGhlaXJzLmh1bmtzLmxlbmd0aCkge1xuICAgIGxldCBtaW5lQ3VycmVudCA9IG1pbmUuaHVua3NbbWluZUluZGV4XSB8fCB7b2xkU3RhcnQ6IEluZmluaXR5fSxcbiAgICAgICAgdGhlaXJzQ3VycmVudCA9IHRoZWlycy5odW5rc1t0aGVpcnNJbmRleF0gfHwge29sZFN0YXJ0OiBJbmZpbml0eX07XG5cbiAgICBpZiAoaHVua0JlZm9yZShtaW5lQ3VycmVudCwgdGhlaXJzQ3VycmVudCkpIHtcbiAgICAgIC8vIFRoaXMgcGF0Y2ggZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgb3RoZXJzLCB5YXkuXG4gICAgICByZXQuaHVua3MucHVzaChjbG9uZUh1bmsobWluZUN1cnJlbnQsIG1pbmVPZmZzZXQpKTtcbiAgICAgIG1pbmVJbmRleCsrO1xuICAgICAgdGhlaXJzT2Zmc2V0ICs9IG1pbmVDdXJyZW50Lm5ld0xpbmVzIC0gbWluZUN1cnJlbnQub2xkTGluZXM7XG4gICAgfSBlbHNlIGlmIChodW5rQmVmb3JlKHRoZWlyc0N1cnJlbnQsIG1pbmVDdXJyZW50KSkge1xuICAgICAgLy8gVGhpcyBwYXRjaCBkb2VzIG5vdCBvdmVybGFwIHdpdGggYW55IG9mIHRoZSBvdGhlcnMsIHlheS5cbiAgICAgIHJldC5odW5rcy5wdXNoKGNsb25lSHVuayh0aGVpcnNDdXJyZW50LCB0aGVpcnNPZmZzZXQpKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lT2Zmc2V0ICs9IHRoZWlyc0N1cnJlbnQubmV3TGluZXMgLSB0aGVpcnNDdXJyZW50Lm9sZExpbmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdmVybGFwLCBtZXJnZSBhcyBiZXN0IHdlIGNhblxuICAgICAgbGV0IG1lcmdlZEh1bmsgPSB7XG4gICAgICAgIG9sZFN0YXJ0OiBNYXRoLm1pbihtaW5lQ3VycmVudC5vbGRTdGFydCwgdGhlaXJzQ3VycmVudC5vbGRTdGFydCksXG4gICAgICAgIG9sZExpbmVzOiAwLFxuICAgICAgICBuZXdTdGFydDogTWF0aC5taW4obWluZUN1cnJlbnQubmV3U3RhcnQgKyBtaW5lT2Zmc2V0LCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0ICsgdGhlaXJzT2Zmc2V0KSxcbiAgICAgICAgbmV3TGluZXM6IDAsXG4gICAgICAgIGxpbmVzOiBbXVxuICAgICAgfTtcbiAgICAgIG1lcmdlTGluZXMobWVyZ2VkSHVuaywgbWluZUN1cnJlbnQub2xkU3RhcnQsIG1pbmVDdXJyZW50LmxpbmVzLCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0LCB0aGVpcnNDdXJyZW50LmxpbmVzKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lSW5kZXgrKztcblxuICAgICAgcmV0Lmh1bmtzLnB1c2gobWVyZ2VkSHVuayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gbG9hZFBhdGNoKHBhcmFtLCBiYXNlKSB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKC9eQEAvbS50ZXN0KHBhcmFtKSB8fCAoL15JbmRleDovbS50ZXN0KHBhcmFtKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZVBhdGNoKHBhcmFtKVswXTtcbiAgICB9XG5cbiAgICBpZiAoIWJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgYmFzZSByZWZlcmVuY2Ugb3IgcGFzcyBpbiBhIHBhdGNoJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHJ1Y3R1cmVkUGF0Y2godW5kZWZpbmVkLCB1bmRlZmluZWQsIGJhc2UsIHBhcmFtKTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbTtcbn1cblxuZnVuY3Rpb24gZmlsZU5hbWVDaGFuZ2VkKHBhdGNoKSB7XG4gIHJldHVybiBwYXRjaC5uZXdGaWxlTmFtZSAmJiBwYXRjaC5uZXdGaWxlTmFtZSAhPT0gcGF0Y2gub2xkRmlsZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdEZpZWxkKGluZGV4LCBtaW5lLCB0aGVpcnMpIHtcbiAgaWYgKG1pbmUgPT09IHRoZWlycykge1xuICAgIHJldHVybiBtaW5lO1xuICB9IGVsc2Uge1xuICAgIGluZGV4LmNvbmZsaWN0ID0gdHJ1ZTtcbiAgICByZXR1cm4ge21pbmUsIHRoZWlyc307XG4gIH1cbn1cblxuZnVuY3Rpb24gaHVua0JlZm9yZSh0ZXN0LCBjaGVjaykge1xuICByZXR1cm4gdGVzdC5vbGRTdGFydCA8IGNoZWNrLm9sZFN0YXJ0XG4gICAgJiYgKHRlc3Qub2xkU3RhcnQgKyB0ZXN0Lm9sZExpbmVzKSA8IGNoZWNrLm9sZFN0YXJ0O1xufVxuXG5mdW5jdGlvbiBjbG9uZUh1bmsoaHVuaywgb2Zmc2V0KSB7XG4gIHJldHVybiB7XG4gICAgb2xkU3RhcnQ6IGh1bmsub2xkU3RhcnQsIG9sZExpbmVzOiBodW5rLm9sZExpbmVzLFxuICAgIG5ld1N0YXJ0OiBodW5rLm5ld1N0YXJ0ICsgb2Zmc2V0LCBuZXdMaW5lczogaHVuay5uZXdMaW5lcyxcbiAgICBsaW5lczogaHVuay5saW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZUxpbmVzKGh1bmssIG1pbmVPZmZzZXQsIG1pbmVMaW5lcywgdGhlaXJPZmZzZXQsIHRoZWlyTGluZXMpIHtcbiAgLy8gVGhpcyB3aWxsIGdlbmVyYWxseSByZXN1bHQgaW4gYSBjb25mbGljdGVkIGh1bmssIGJ1dCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlIGNvbnRleHRcbiAgLy8gaXMgdGhlIG9ubHkgb3ZlcmxhcCB3aGVyZSB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IG1lcmdlIHRoZSBjb250ZW50IGhlcmUuXG4gIGxldCBtaW5lID0ge29mZnNldDogbWluZU9mZnNldCwgbGluZXM6IG1pbmVMaW5lcywgaW5kZXg6IDB9LFxuICAgICAgdGhlaXIgPSB7b2Zmc2V0OiB0aGVpck9mZnNldCwgbGluZXM6IHRoZWlyTGluZXMsIGluZGV4OiAwfTtcblxuICAvLyBIYW5kbGUgYW55IGxlYWRpbmcgY29udGVudFxuICBpbnNlcnRMZWFkaW5nKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgaW5zZXJ0TGVhZGluZyhodW5rLCB0aGVpciwgbWluZSk7XG5cbiAgLy8gTm93IGluIHRoZSBvdmVybGFwIGNvbnRlbnQuIFNjYW4gdGhyb3VnaCBhbmQgc2VsZWN0IHRoZSBiZXN0IGNoYW5nZXMgZnJvbSBlYWNoLlxuICB3aGlsZSAobWluZS5pbmRleCA8IG1pbmUubGluZXMubGVuZ3RoICYmIHRoZWlyLmluZGV4IDwgdGhlaXIubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IG1pbmVDdXJyZW50ID0gbWluZS5saW5lc1ttaW5lLmluZGV4XSxcbiAgICAgICAgdGhlaXJDdXJyZW50ID0gdGhlaXIubGluZXNbdGhlaXIuaW5kZXhdO1xuXG4gICAgaWYgKChtaW5lQ3VycmVudFswXSA9PT0gJy0nIHx8IG1pbmVDdXJyZW50WzBdID09PSAnKycpXG4gICAgICAgICYmICh0aGVpckN1cnJlbnRbMF0gPT09ICctJyB8fCB0aGVpckN1cnJlbnRbMF0gPT09ICcrJykpIHtcbiAgICAgIC8vIEJvdGggbW9kaWZpZWQgLi4uXG4gICAgICBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnRbMF0gPT09ICcrJyAmJiB0aGVpckN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gTWluZSBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKG1pbmUpKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJysnICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlycyBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJy0nICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlyIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIHRoZWlyLCBtaW5lLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50ID09PSB0aGVpckN1cnJlbnQpIHtcbiAgICAgIC8vIENvbnRleHQgaWRlbnRpdHlcbiAgICAgIGh1bmsubGluZXMucHVzaChtaW5lQ3VycmVudCk7XG4gICAgICBtaW5lLmluZGV4Kys7XG4gICAgICB0aGVpci5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250ZXh0IG1pc21hdGNoXG4gICAgICBjb25mbGljdChodW5rLCBjb2xsZWN0Q2hhbmdlKG1pbmUpLCBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTm93IHB1c2ggYW55dGhpbmcgdGhhdCBtYXkgYmUgcmVtYWluaW5nXG4gIGluc2VydFRyYWlsaW5nKGh1bmssIG1pbmUpO1xuICBpbnNlcnRUcmFpbGluZyhodW5rLCB0aGVpcik7XG5cbiAgY2FsY0xpbmVDb3VudChodW5rKTtcbn1cblxuZnVuY3Rpb24gbXV0dWFsQ2hhbmdlKGh1bmssIG1pbmUsIHRoZWlyKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENoYW5nZSh0aGVpcik7XG5cbiAgaWYgKGFsbFJlbW92ZXMobXlDaGFuZ2VzKSAmJiBhbGxSZW1vdmVzKHRoZWlyQ2hhbmdlcykpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHJlbW92ZSBjaGFuZ2VzIHRoYXQgYXJlIHN1cGVyc2V0cyBvZiBvbmUgYW5vdGhlclxuICAgIGlmIChhcnJheVN0YXJ0c1dpdGgobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpXG4gICAgICAgICYmIHNraXBSZW1vdmVTdXBlcnNldCh0aGVpciwgbXlDaGFuZ2VzLCBteUNoYW5nZXMubGVuZ3RoIC0gdGhlaXJDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gbXlDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGFycmF5U3RhcnRzV2l0aCh0aGVpckNoYW5nZXMsIG15Q2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KG1pbmUsIHRoZWlyQ2hhbmdlcywgdGhlaXJDaGFuZ2VzLmxlbmd0aCAtIG15Q2hhbmdlcy5sZW5ndGgpKSB7XG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIHRoZWlyQ2hhbmdlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IGVsc2UgaWYgKGFycmF5RXF1YWwobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbmZsaWN0KGh1bmssIG15Q2hhbmdlcywgdGhlaXJDaGFuZ2VzKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZhbChodW5rLCBtaW5lLCB0aGVpciwgc3dhcCkge1xuICBsZXQgbXlDaGFuZ2VzID0gY29sbGVjdENoYW5nZShtaW5lKSxcbiAgICAgIHRoZWlyQ2hhbmdlcyA9IGNvbGxlY3RDb250ZXh0KHRoZWlyLCBteUNoYW5nZXMpO1xuICBpZiAodGhlaXJDaGFuZ2VzLm1lcmdlZCkge1xuICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzLm1lcmdlZCk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmxpY3QoaHVuaywgc3dhcCA/IHRoZWlyQ2hhbmdlcyA6IG15Q2hhbmdlcywgc3dhcCA/IG15Q2hhbmdlcyA6IHRoZWlyQ2hhbmdlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmxpY3QoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgaHVuay5jb25mbGljdCA9IHRydWU7XG4gIGh1bmsubGluZXMucHVzaCh7XG4gICAgY29uZmxpY3Q6IHRydWUsXG4gICAgbWluZTogbWluZSxcbiAgICB0aGVpcnM6IHRoZWlyXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRMZWFkaW5nKGh1bmssIGluc2VydCwgdGhlaXIpIHtcbiAgd2hpbGUgKGluc2VydC5vZmZzZXQgPCB0aGVpci5vZmZzZXQgJiYgaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gICAgaW5zZXJ0Lm9mZnNldCsrO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRUcmFpbGluZyhodW5rLCBpbnNlcnQpIHtcbiAgd2hpbGUgKGluc2VydC5pbmRleCA8IGluc2VydC5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IGluc2VydC5saW5lc1tpbnNlcnQuaW5kZXgrK107XG4gICAgaHVuay5saW5lcy5wdXNoKGxpbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RDaGFuZ2Uoc3RhdGUpIHtcbiAgbGV0IHJldCA9IFtdLFxuICAgICAgb3BlcmF0aW9uID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdWzBdO1xuICB3aGlsZSAoc3RhdGUuaW5kZXggPCBzdGF0ZS5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XTtcblxuICAgIC8vIEdyb3VwIGFkZGl0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhZnRlciBzdWJ0cmFjdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgb25lIFwiYXRvbWljXCIgbW9kaWZ5IGNoYW5nZS5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnLScgJiYgbGluZVswXSA9PT0gJysnKSB7XG4gICAgICBvcGVyYXRpb24gPSAnKyc7XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gbGluZVswXSkge1xuICAgICAgcmV0LnB1c2gobGluZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gY29sbGVjdENvbnRleHQoc3RhdGUsIG1hdGNoQ2hhbmdlcykge1xuICBsZXQgY2hhbmdlcyA9IFtdLFxuICAgICAgbWVyZ2VkID0gW10sXG4gICAgICBtYXRjaEluZGV4ID0gMCxcbiAgICAgIGNvbnRleHRDaGFuZ2VzID0gZmFsc2UsXG4gICAgICBjb25mbGljdGVkID0gZmFsc2U7XG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aFxuICAgICAgICAmJiBzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBjaGFuZ2UgPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF0sXG4gICAgICAgIG1hdGNoID0gbWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdO1xuXG4gICAgLy8gT25jZSB3ZSd2ZSBoaXQgb3VyIGFkZCwgdGhlbiB3ZSBhcmUgZG9uZVxuICAgIGlmIChtYXRjaFswXSA9PT0gJysnKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb250ZXh0Q2hhbmdlcyA9IGNvbnRleHRDaGFuZ2VzIHx8IGNoYW5nZVswXSAhPT0gJyAnO1xuXG4gICAgbWVyZ2VkLnB1c2gobWF0Y2gpO1xuICAgIG1hdGNoSW5kZXgrKztcblxuICAgIC8vIENvbnN1bWUgYW55IGFkZGl0aW9ucyBpbiB0aGUgb3RoZXIgYmxvY2sgYXMgYSBjb25mbGljdCB0byBhdHRlbXB0XG4gICAgLy8gdG8gcHVsbCBpbiB0aGUgcmVtYWluaW5nIGNvbnRleHQgYWZ0ZXIgdGhpc1xuICAgIGlmIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgY29uZmxpY3RlZCA9IHRydWU7XG5cbiAgICAgIHdoaWxlIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlID0gc3RhdGUubGluZXNbKytzdGF0ZS5pbmRleF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoLnN1YnN0cigxKSA9PT0gY2hhbmdlLnN1YnN0cigxKSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4XSB8fCAnJylbMF0gPT09ICcrJ1xuICAgICAgJiYgY29udGV4dENoYW5nZXMpIHtcbiAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChjb25mbGljdGVkKSB7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICB3aGlsZSAobWF0Y2hJbmRleCA8IG1hdGNoQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICBtZXJnZWQucHVzaChtYXRjaENoYW5nZXNbbWF0Y2hJbmRleCsrXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lcmdlZCxcbiAgICBjaGFuZ2VzXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFsbFJlbW92ZXMoY2hhbmdlcykge1xuICByZXR1cm4gY2hhbmdlcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY2hhbmdlKSB7XG4gICAgcmV0dXJuIHByZXYgJiYgY2hhbmdlWzBdID09PSAnLSc7XG4gIH0sIHRydWUpO1xufVxuZnVuY3Rpb24gc2tpcFJlbW92ZVN1cGVyc2V0KHN0YXRlLCByZW1vdmVDaGFuZ2VzLCBkZWx0YSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlbHRhOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlQ29udGVudCA9IHJlbW92ZUNoYW5nZXNbcmVtb3ZlQ2hhbmdlcy5sZW5ndGggLSBkZWx0YSArIGldLnN1YnN0cigxKTtcbiAgICBpZiAoc3RhdGUubGluZXNbc3RhdGUuaW5kZXggKyBpXSAhPT0gJyAnICsgY2hhbmdlQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLmluZGV4ICs9IGRlbHRhO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lcykge1xuICBsZXQgb2xkTGluZXMgPSAwO1xuICBsZXQgbmV3TGluZXMgPSAwO1xuXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgIGlmICh0eXBlb2YgbGluZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBteUNvdW50ID0gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lLm1pbmUpO1xuICAgICAgbGV0IHRoZWlyQ291bnQgPSBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmUudGhlaXJzKTtcblxuICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG15Q291bnQub2xkTGluZXMgPT09IHRoZWlyQ291bnQub2xkTGluZXMpIHtcbiAgICAgICAgICBvbGRMaW5lcyArPSBteUNvdW50Lm9sZExpbmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9sZExpbmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChteUNvdW50Lm5ld0xpbmVzID09PSB0aGVpckNvdW50Lm5ld0xpbmVzKSB7XG4gICAgICAgICAgbmV3TGluZXMgKz0gbXlDb3VudC5uZXdMaW5lcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMaW5lcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3TGluZXMgIT09IHVuZGVmaW5lZCAmJiAobGluZVswXSA9PT0gJysnIHx8IGxpbmVbMF0gPT09ICcgJykpIHtcbiAgICAgICAgbmV3TGluZXMrKztcbiAgICAgIH1cbiAgICAgIGlmIChvbGRMaW5lcyAhPT0gdW5kZWZpbmVkICYmIChsaW5lWzBdID09PSAnLScgfHwgbGluZVswXSA9PT0gJyAnKSkge1xuICAgICAgICBvbGRMaW5lcysrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtvbGRMaW5lcywgbmV3TGluZXN9O1xufVxuIl19 + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/structuredPatch = structuredPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch; + + var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + + /*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === 'undefined') { + options.context = 4; + } + + var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options); + diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier + + function contextLines(lines) { + return lines.map(function (entry) { + return ' ' + entry; + }); + } + + var hunks = []; + var oldRangeStart = 0, + newRangeStart = 0, + curRange = [], + oldLine = 1, + newLine = 1; + + /*istanbul ignore start*/var _loop = function _loop( /*istanbul ignore end*/i) { + var current = diff[i], + lines = current.lines || current.value.replace(/\n$/, '').split('\n'); + current.lines = lines; + + if (current.added || current.removed) { + /*istanbul ignore start*/var _curRange; + + /*istanbul ignore end*/ // If we have previous context, start with that + if (!oldRangeStart) { + var prev = diff[i - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + + // Output our changes + /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) { + return (current.added ? '+' : '-') + entry; + }))); + + // Track the updated file position + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + // Identical context lines. Track line changes + if (oldRangeStart) { + // Close out any changes that have been output (or join overlapping) + if (lines.length <= options.context * 2 && i < diff.length - 2) { + /*istanbul ignore start*/var _curRange2; + + /*istanbul ignore end*/ // Overlapping + /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines))); + } else { + /*istanbul ignore start*/var _curRange3; + + /*istanbul ignore end*/ // end the range and output + var contextSize = Math.min(lines.length, options.context); + /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize)))); + + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i >= diff.length - 2 && lines.length <= options.context) { + // EOF is inside this hunk + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + if (lines.length == 0 && !oldEOFNewline) { + // special case: old has no eol and no trailing context; no-nl can end up before adds + curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); + } else if (!oldEOFNewline || !newEOFNewline) { + curRange.push('\\ No newline at end of file'); + } + } + hunks.push(hunk); + + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + + for (var i = 0; i < diff.length; i++) { + /*istanbul ignore start*/_loop( /*istanbul ignore end*/i); + } + + return { + oldFileName: oldFileName, newFileName: newFileName, + oldHeader: oldHeader, newHeader: newHeader, + hunks: hunks + }; + } + + function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); + + var ret = []; + if (oldFileName == newFileName) { + ret.push('Index: ' + oldFileName); + } + ret.push('==================================================================='); + ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); + ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); + + for (var i = 0; i < diff.hunks.length; i++) { + var hunk = diff.hunks[i]; + ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); + ret.push.apply(ret, hunk.lines); + } + + return ret.join('\n') + '\n'; + } + + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwic3BsaWNlIiwicmV0IiwiYXBwbHkiLCJqb2luIiwiZmlsZU5hbWUiXSwibWFwcGluZ3MiOiI7OztnQ0FFZ0JBLGUsR0FBQUEsZTt5REFpR0FDLG1CLEdBQUFBLG1CO3lEQXdCQUMsVyxHQUFBQSxXOztBQTNIaEI7Ozs7dUJBRU8sU0FBU0YsZUFBVCxDQUF5QkcsV0FBekIsRUFBc0NDLFdBQXRDLEVBQW1EQyxNQUFuRCxFQUEyREMsTUFBM0QsRUFBbUVDLFNBQW5FLEVBQThFQyxTQUE5RSxFQUF5RkMsT0FBekYsRUFBa0c7QUFDdkcsTUFBSSxDQUFDQSxPQUFMLEVBQWM7QUFDWkEsY0FBVSxFQUFWO0FBQ0Q7QUFDRCxNQUFJLE9BQU9BLFFBQVFDLE9BQWYsS0FBMkIsV0FBL0IsRUFBNEM7QUFDMUNELFlBQVFDLE9BQVIsR0FBa0IsQ0FBbEI7QUFDRDs7QUFFRCxN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QUEvQyxFQUEwREMsU0FBMUQsRUFBcUVDLE9BQXJFLEVBQThFO0FBQ25GLFNBQU9SLG9CQUFvQitDLFFBQXBCLEVBQThCQSxRQUE5QixFQUF3QzNDLE1BQXhDLEVBQWdEQyxNQUFoRCxFQUF3REMsU0FBeEQsRUFBbUVDLFNBQW5FLEVBQThFQyxPQUE5RSxDQUFQO0FBQ0QiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgZGlmZi5wdXNoKHt2YWx1ZTogJycsIGxpbmVzOiBbXX0pOyAgIC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgvXFxuJC8udGVzdChvbGRTdHIpKTtcbiAgICAgICAgICAgIGxldCBuZXdFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG5ld1N0cikpO1xuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PSAwICYmICFvbGRFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogb2xkIGhhcyBubyBlb2wgYW5kIG5vIHRyYWlsaW5nIGNvbnRleHQ7IG5vLW5sIGNhbiBlbmQgdXAgYmVmb3JlIGFkZHNcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9sZEVPRk5ld2xpbmUgfHwgIW5ld0VPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgY3VyUmFuZ2UucHVzaCgnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGh1bmtzLnB1c2goaHVuayk7XG5cbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJSYW5nZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgb2xkRmlsZU5hbWU6IG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZTogbmV3RmlsZU5hbWUsXG4gICAgb2xkSGVhZGVyOiBvbGRIZWFkZXIsIG5ld0hlYWRlcjogbmV3SGVhZGVyLFxuICAgIGh1bmtzOiBodW5rc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID0gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcblxuICBjb25zdCByZXQgPSBbXTtcbiAgaWYgKG9sZEZpbGVOYW1lID09IG5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgb2xkRmlsZU5hbWUpO1xuICB9XG4gIHJldC5wdXNoKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gIHJldC5wdXNoKCctLS0gJyArIGRpZmYub2xkRmlsZU5hbWUgKyAodHlwZW9mIGRpZmYub2xkSGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm9sZEhlYWRlcikpO1xuICByZXQucHVzaCgnKysrICcgKyBkaWZmLm5ld0ZpbGVOYW1lICsgKHR5cGVvZiBkaWZmLm5ld0hlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6ICdcXHQnICsgZGlmZi5uZXdIZWFkZXIpKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYuaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBodW5rID0gZGlmZi5odW5rc1tpXTtcbiAgICByZXQucHVzaChcbiAgICAgICdAQCAtJyArIGh1bmsub2xkU3RhcnQgKyAnLCcgKyBodW5rLm9sZExpbmVzXG4gICAgICArICcgKycgKyBodW5rLm5ld1N0YXJ0ICsgJywnICsgaHVuay5uZXdMaW5lc1xuICAgICAgKyAnIEBAJ1xuICAgICk7XG4gICAgcmV0LnB1c2guYXBwbHkocmV0LCBodW5rLmxpbmVzKTtcbiAgfVxuXG4gIHJldHVybiByZXQuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGNoKGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNyZWF0ZVR3b0ZpbGVzUGF0Y2goZmlsZU5hbWUsIGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xufVxuIl19 + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + exports. /*istanbul ignore end*/arrayEqual = arrayEqual; + /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith; + function arrayEqual(a, b) { + if (a.length !== b.length) { + return false; + } + + return arrayStartsWith(a, b); + } + + function arrayStartsWith(array, start) { + if (start.length > array.length) { + return false; + } + + for (var i = 0; i < start.length; i++) { + if (start[i] !== array[i]) { + return false; + } + } + + return true; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RXF1YWwiLCJhcnJheVN0YXJ0c1dpdGgiLCJhIiwiYiIsImxlbmd0aCIsImFycmF5Iiwic3RhcnQiLCJpIl0sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCQSxVLEdBQUFBLFU7eURBUUFDLGUsR0FBQUEsZTtBQVJULFNBQVNELFVBQVQsQ0FBb0JFLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQjtBQUMvQixNQUFJRCxFQUFFRSxNQUFGLEtBQWFELEVBQUVDLE1BQW5CLEVBQTJCO0FBQ3pCLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU9ILGdCQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQVA7QUFDRDs7QUFFTSxTQUFTRixlQUFULENBQXlCSSxLQUF6QixFQUFnQ0MsS0FBaEMsRUFBdUM7QUFDNUMsTUFBSUEsTUFBTUYsTUFBTixHQUFlQyxNQUFNRCxNQUF6QixFQUFpQztBQUMvQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQUlHLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTUYsTUFBMUIsRUFBa0NHLEdBQWxDLEVBQXVDO0FBQ3JDLFFBQUlELE1BQU1DLENBQU4sTUFBYUYsTUFBTUUsQ0FBTixDQUFqQixFQUEyQjtBQUN6QixhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6ImFycmF5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFycmF5RXF1YWwoYSwgYikge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5U3RhcnRzV2l0aChhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5U3RhcnRzV2l0aChhcnJheSwgc3RhcnQpIHtcbiAgaWYgKHN0YXJ0Lmxlbmd0aCA+IGFycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhcnQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3RhcnRbaV0gIT09IGFycmF5W2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0= + + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP; + // See: http://code.google.com/p/google-diff-match-patch/wiki/API + function convertChangesToDMP(changes) { + var ret = [], + change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (var i = 0; i < changes.length; i++) { + change = changes[i]; + if (change.added) { + operation = 1; + } else if (change.removed) { + operation = -1; + } else { + operation = 0; + } + + ret.push([operation, change.value]); + } + return ret; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvRE1QIiwiY2hhbmdlcyIsInJldCIsImNoYW5nZSIsIm9wZXJhdGlvbiIsImkiLCJsZW5ndGgiLCJhZGRlZCIsInJlbW92ZWQiLCJwdXNoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7OztnQ0FDZ0JBLG1CLEdBQUFBLG1CO0FBRGhCO0FBQ08sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLE1BQU0sRUFBVjtBQUFBLE1BQ0lDLHdDQURKO0FBQUEsTUFFSUMsMkNBRko7QUFHQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosUUFBUUssTUFBNUIsRUFBb0NELEdBQXBDLEVBQXlDO0FBQ3ZDRixhQUFTRixRQUFRSSxDQUFSLENBQVQ7QUFDQSxRQUFJRixPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSCxrQkFBWSxDQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUlELE9BQU9LLE9BQVgsRUFBb0I7QUFDekJKLGtCQUFZLENBQUMsQ0FBYjtBQUNELEtBRk0sTUFFQTtBQUNMQSxrQkFBWSxDQUFaO0FBQ0Q7O0FBRURGLFFBQUlPLElBQUosQ0FBUyxDQUFDTCxTQUFELEVBQVlELE9BQU9PLEtBQW5CLENBQVQ7QUFDRDtBQUNELFNBQU9SLEdBQVA7QUFDRCIsImZpbGUiOiJkbXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWU6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtZGlmZi1tYXRjaC1wYXRjaC93aWtpL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9ETVAoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBjaGFuZ2UsXG4gICAgICBvcGVyYXRpb247XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgb3BlcmF0aW9uID0gMTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uID0gMDtcbiAgICB9XG5cbiAgICByZXQucHVzaChbb3BlcmF0aW9uLCBjaGFuZ2UudmFsdWVdKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19 + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML; + function convertChangesToXML(changes) { + var ret = []; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + + ret.push(escapeHTML(change.value)); + + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + } + return ret.join(''); + } + + function escapeHTML(s) { + var n = s; + n = n.replace(/&/g, '&'); + n = n.replace(//g, '>'); + n = n.replace(/"/g, '"'); + + return n; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2hhbmdlcyIsInJldCIsImkiLCJsZW5ndGgiLCJjaGFuZ2UiLCJhZGRlZCIsInB1c2giLCJyZW1vdmVkIiwiZXNjYXBlSFRNTCIsInZhbHVlIiwiam9pbiIsInMiLCJuIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsbUIsR0FBQUEsbUI7QUFBVCxTQUFTQSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSUMsTUFBTSxFQUFWO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLFFBQVFHLE1BQTVCLEVBQW9DRCxHQUFwQyxFQUF5QztBQUN2QyxRQUFJRSxTQUFTSixRQUFRRSxDQUFSLENBQWI7QUFDQSxRQUFJRSxPQUFPQyxLQUFYLEVBQWtCO0FBQ2hCSixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNELEtBRkQsTUFFTyxJQUFJRixPQUFPRyxPQUFYLEVBQW9CO0FBQ3pCTixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNEOztBQUVETCxRQUFJSyxJQUFKLENBQVNFLFdBQVdKLE9BQU9LLEtBQWxCLENBQVQ7O0FBRUEsUUFBSUwsT0FBT0MsS0FBWCxFQUFrQjtBQUNoQkosVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsT0FBT0csT0FBWCxFQUFvQjtBQUN6Qk4sVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRDtBQUNGO0FBQ0QsU0FBT0wsSUFBSVMsSUFBSixDQUFTLEVBQVQsQ0FBUDtBQUNEOztBQUVELFNBQVNGLFVBQVQsQ0FBb0JHLENBQXBCLEVBQXVCO0FBQ3JCLE1BQUlDLElBQUlELENBQVI7QUFDQUMsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSjtBQUNBRCxNQUFJQSxFQUFFQyxPQUFGLENBQVUsSUFBVixFQUFnQixNQUFoQixDQUFKO0FBQ0FELE1BQUlBLEVBQUVDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSjs7QUFFQSxTQUFPRCxDQUFQO0FBQ0QiLCJmaWxlIjoieG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9YTUwoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8aW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8ZGVsPicpO1xuICAgIH1cblxuICAgIHJldC5wdXNoKGVzY2FwZUhUTUwoY2hhbmdlLnZhbHVlKSk7XG5cbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPC9pbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzwvZGVsPicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIVE1MKHMpIHtcbiAgbGV0IG4gPSBzO1xuICBuID0gbi5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuICBuID0gbi5yZXBsYWNlKC88L2csICcmbHQ7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xuXG4gIHJldHVybiBuO1xufVxuIl19 + + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/report/html_report/diverged.js b/report/html_report/diverged.js new file mode 100644 index 0000000000..b96620eb8e --- /dev/null +++ b/report/html_report/diverged.js @@ -0,0 +1,340 @@ +'use strict'; +const noop = function (){}; +let LCS_DIFF_ARRAY_METHOD = undefined; +// debugger +if (typeof require !== 'undefined') { + LCS_DIFF_ARRAY_METHOD = require('diff').diffArrays; +} else { + try { + LCS_DIFF_ARRAY_METHOD = JsDiff.diffArrays; + } catch(err) { + console.error(err); + } +} + +const rowSpread = 1; + +const spread = 50; // range of adjacent pixels to aggregate when calculating diff +const IS_ADDED_WORD = '0_255_0_255'; +const IS_REMOVED_WORD = '255_0_0_255'; +const IS_ADDED_AND_REMOVED_WORD = '0_255_255_255'; +const IS_SAME_WORD = ''; +const OPACITY = '40'; // 0-255 range + +/** + * Applies Longest-Common-Subsequence-Diff algorithm to imageData formatted arrays + * + * @param {Uint8ClampedArray} [reference] baseline image + * @param {Uint8ClampedArray} [test] test image + * + * @returns {Uint8ClampedArray} diff image + * + */ +if (typeof module !== 'undefined') { + module.exports = diverged; +} + +function diverged(reference, test, h, w) { + console.time("diverged_total_time"); + + const spread = Math.floor(h / 80); //override + + console.log('spread:', spread); + + console.time("imgDataToWords"); + const img1wordArr = imgDataToWords(reference); + const img2wordArr = imgDataToWords(test); + console.timeEnd("imgDataToWords"); + + console.time("imgDataWordArrToColsAndRows"); + let cols_rows_ref = imgDataWordArrToColsAndRows(img1wordArr, h, w); + let cols_rows_test = imgDataWordArrToColsAndRows(img2wordArr, h, w); + console.timeEnd("imgDataWordArrToColsAndRows"); + + console.time("groupAdjacent"); + const columnRef = groupAdjacent(cols_rows_ref.columns, spread, h, w); + const columnTest = groupAdjacent(cols_rows_test.columns, spread, h, w); + console.timeEnd("groupAdjacent"); + + console.time("columnDiffRaw"); + const columnDiffRaw = diffArr(columnRef, columnTest, h, w); + console.timeEnd("columnDiffRaw"); + + console.time("reduceColumnDiffRaw"); + const reducedColumnDiff = reduceColumnDiffRaw(columnDiffRaw, h, w); + console.timeEnd("reduceColumnDiffRaw"); + // console.log("reducedColumnDiff>>>", reducedColumnDiff); + + console.time("unGroupAdjacent"); + const expandedColumns = ungroupAdjacent(reducedColumnDiff, spread, cols_rows_test.columns, h, w); + console.timeEnd("unGroupAdjacent"); + + console.time("columnWordDataToImgDataFormatAsWords"); + const convertedColumnDiffImgData = columnWordDataToImgDataFormatAsWords(expandedColumns, h, w); + console.timeEnd("columnWordDataToImgDataFormatAsWords"); + // console.log("convertedColumnDiffImgData>>>", convertedColumnDiffImgData); + + console.time("imgDataWordsToClampedImgData"); + const imgDataArr = convertImgDataWordsToClampedImgData(convertedColumnDiffImgData); + console.timeEnd("imgDataWordsToClampedImgData"); + // console.log("imgDataArr>>>", imgDataArr); + + console.timeEnd("diverged_total_time"); + return imgDataArr; +} + +/** + * ========= HELPERS ======== + */ + +function columnWordDataToImgDataFormatAsWords(columns, h, w) { + const imgDataWordsLength = w * h; + + let convertedArr = new Array(imgDataWordsLength); + for (var i = 0; i < imgDataWordsLength; i++) { + const {column, depth} = serialToColumnMap(i, h, w); + convertedArr[i] = columns[column][depth]; + } + return convertedArr; +} + +function convertImgDataWordsToClampedImgData(wordsArr) { + let convertedArr = new Uint8ClampedArray(wordsArr.length * 4); + for (var i = 0; i < wordsArr.length; i++) { + const convertedOffset = i * 4; + const segments = wordsArr[i].split('_'); + convertedArr[convertedOffset] = segments[0]; + convertedArr[convertedOffset+1] = segments[1]; + convertedArr[convertedOffset+2] = segments[2]; + convertedArr[convertedOffset+3] = segments[3]; + } + return convertedArr; +} + +function reduceColumnDiffRaw(columnDiffs, h, w) { + let reducedColumns = new Array(columnDiffs.length); + for (let columnIndex = 0; columnIndex < columnDiffs.length; columnIndex++) { + const columnDiff = columnDiffs[columnIndex]; + let resultColumn = new Array(); + let removedCounter = 0; + let resultClass = ''; + let segment = []; + let debug = false; + + for (let depthIndex = 0; depthIndex < columnDiff.length; depthIndex++) { + let segmentLength = 0; + + // Categorize the current segment + if (columnDiff[depthIndex].removed) { + segmentLength = columnDiff[depthIndex].count; + removedCounter += segmentLength; + resultClass = IS_REMOVED_WORD; + } else { + if (columnDiff[depthIndex].added) { + if (removedCounter) { + resultClass = IS_ADDED_AND_REMOVED_WORD; + } else { + resultClass = IS_ADDED_WORD; + } + } else { + resultClass = IS_SAME_WORD; + } + + segmentLength = columnDiff[depthIndex].count; + + if (removedCounter > 0) { + if (segmentLength > removedCounter) { + segmentLength -= removedCounter; + removedCounter = 0; + } else { + removedCounter -= segmentLength; + segmentLength = 0; + } + } + } + + // Limit segmentLength to total length of column + if (!segmentLength) { + continue; + } else { + segmentLength = Math.min(segmentLength, h - resultColumn.length); + } + + const printSampleMap = false; + if (!printSampleMap || resultClass !== IS_SAME_WORD){ + segment = new Array(segmentLength).fill(resultClass); + } else { + // reduced resolution image + segment = columnDiff[depthIndex].value.slice(0,segmentLength).map((value, i) => { + if (/|/.test(value)) { + return value.split('|')[0]; + } + return value; + }); + } + + + resultColumn = resultColumn.concat(segment); + + if (resultColumn.length > h) { + console.log('WARNING -- this value is out of bounds!') + } + } + + reducedColumns[columnIndex] = resultColumn; + } + + return reducedColumns; +} + +function diffArr(refArr, testArr, h, w) { + let rawResultArr = []; + for (let i = 0; i < refArr.length; i++) { + rawResultArr.push(LCS_DIFF_ARRAY_METHOD(refArr[i], testArr[i])); + } + return rawResultArr; +} + +function groupAdjacent(columns, spread, h, w) { + if (!spread) { + return columns; + } + + /** + * [getAdjacentArrayBounds retuns existing adjacent lower and upper column bounds] + * @param {[int]} pointer [current index] + * @param {[int]} spread [distance from index] + * @param {[int]} length [total length] + * @return {[array]} [0] lower bound, [1] upper bound + */ + function getAdjacentArrayBounds(pointer, spread, length) { + return [ + // Math.max(0, pointer - spread), + Math.max(0, pointer), + Math.min(length - 1, pointer + spread) + ] + } + + function getInterpolatedSequence(beginning, end) { + const interpolated = []; + for (let step = beginning; step <= end; step++) { + interpolated.push(step); + } + return interpolated; + } + + function getCompositeColumnDepthValues(columns, sequence, depth) { + return sequence.reduce((acc, column) => { + return acc.concat(columns[column][depth]); + }, []) + } + + function getCompositeRowIndexValues(groupedColumns, sequence, column) { + return sequence.reduce((acc, depth) => { + return acc.concat(groupedColumns[column][depth]); + }, []) + } + + const groupedColumns = new Array(); + let columnPointer = 0; + while (columnPointer < w) { + const adjacentColumnBounds = getAdjacentArrayBounds(columnPointer, spread, w); + const interpolatedColumns = getInterpolatedSequence(...adjacentColumnBounds); + + const columnComposite = new Array(); + for (var depth = 0; depth < h; depth++) { + columnComposite[depth] = getCompositeColumnDepthValues(columns, interpolatedColumns, depth).join('|'); + } + groupedColumns.push(columnComposite); + columnPointer += spread; + } + + const groupedRows = new Array(); + if (rowSpread > 1) { + for (var index = 0; index < groupedColumns.length; index++) { + const rowComposite = new Array(); + let depthPointer = 0; + while (depthPointer < h) { + const adjacentRowBounds = getAdjacentArrayBounds(depthPointer, rowSpread, h); + const interpolatedRows = getInterpolatedSequence(...adjacentRowBounds); + rowComposite.push(getCompositeRowIndexValues(groupedColumns, interpolatedRows, index).join(',')); + depthPointer += rowSpread; + } + groupedRows[index] = rowComposite; + } + } + return groupedRows.length ? groupedRows : groupedColumns ; +} + +function ungroupAdjacent(grouped, spread, columnUnderlay, h, w) { + if (!spread) { + return grouped; + } + + function mapUngroupedColumnIndexToGroupedIndex(index, spread) { + return Math.floor(index / spread); + } + + // expand columns + const ungrouped = new Array(w); + for (let index = 0; index < w; index++) { + if (!ungrouped[index]) { + ungrouped[index] = new Array(h); + } + + const groupedIndexMap = mapUngroupedColumnIndexToGroupedIndex(index, spread); + for (let depth = 0; depth < h; depth++) { + const groupedDepthMap = rowSpread > 1 ? mapUngroupedColumnIndexToGroupedIndex(depth, rowSpread) : depth; + const value = grouped[groupedIndexMap][groupedDepthMap].split('|')[0]; + ungrouped[index][depth] = value ? value : columnUnderlay[index][depth].replace(/\d+$/, OPACITY); + } + } + + return ungrouped +} + + + +function imgDataWordArrToColsAndRows(arr, h, w) { + let columns = new Array(w); + let rows = new Array(h); + + for (var i = 0; i < arr.length; i++) { + const word = arr[i]; + + var {column, depth} = serialToColumnMap(i, h, w); + if (!columns[column]) { + columns[column] = new Array(h); + } + columns[column][depth] = word; + + var {row, index} = serialToRowMap(i, h, w); + if (!rows[row]) { + rows[row] = new Array(w); + } + rows[row][index] = word; + } + return {columns, rows} +} + +function serialToColumnMap(index, h, w) { + return { + column: index % w, + depth: Math.floor(index / w) + } +} + +function serialToRowMap(index, h, w) { + return { + row: Math.floor(index / w), + index: index % w + } +} + +function imgDataToWords(arr) { + let result = []; + for (let i = 0; i < arr.length-1; i += 4) { + result.push(`${arr[i]}_${arr[i+1]}_${arr[i+2]}_${arr[i+3]}`) + } + return result; +} diff --git a/report/html_report/divergedWorker.js b/report/html_report/divergedWorker.js new file mode 100644 index 0000000000..c41d85e54b --- /dev/null +++ b/report/html_report/divergedWorker.js @@ -0,0 +1,6 @@ +importScripts('diff.js'); +importScripts('diverged.js'); +self.addEventListener('message', function(e) { + self.postMessage(diverged(...e.data.divergedInput)); + self.close(); +}, false); diff --git a/report/html_report/index.html b/report/html_report/index.html new file mode 100644 index 0000000000..89badbd4d8 --- /dev/null +++ b/report/html_report/index.html @@ -0,0 +1,49 @@ + + + + + + + + + + BackstopJS Report + + + + +

+ +
+ + + + + diff --git a/report/html_report/index_bundle.js b/report/html_report/index_bundle.js new file mode 100644 index 0000000000..696e1c8f1f --- /dev/null +++ b/report/html_report/index_bundle.js @@ -0,0 +1,2 @@ +/*! For license information please see index_bundle.js.LICENSE.txt */ +(()=>{var e,t,n={184:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.Z=void 0;var o=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=r(e)&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var u=a?Object.getOwnPropertyDescriptor(e,l):null;u&&(u.get||u.set)?Object.defineProperty(o,l,u):o[l]=e[l]}return o.default=e,n&&n.set(e,o),o}(n(294));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function a(e,t){for(var n=0;n=u)&&Math.abs(d)>l)return void this.endDrag();if(!t)return}var y=this.twentyTwentyComponent.current.getBoundingClientRect(),h=100*(o-y.left)/y.width;h=Math.max(Math.min(h,100),0),this.setState({position:h,isDragging:t})}}},{key:"beginDrag",value:function(e){if(e&&e.preventDefault(),this.props.isDraggingEnabled){var t="touches"in e?e.touches[0]:e,n=t.pageX,r=t.pageY;this.setState({startX:n,startY:r}),document.addEventListener("mousemove",this.onDragMove),document.addEventListener("mouseup",this.endDrag),document.addEventListener("touchmove",this.onDragMove),document.addEventListener("touchend",this.endDrag)}}},{key:"endDrag",value:function(){document.removeEventListener("mousemove",this.onDragMove),document.removeEventListener("mouseup",this.endDrag),document.removeEventListener("touchmove",this.onDragMove),document.removeEventListener("touchend",this.endDrag),this.setState({isDragging:!1,startY:NaN,endY:NaN})}},{key:"render",value:function(){var e=this.state.position,t=this.props,n=t.children,r=t.verticalAlign,i=t.leftHorizontalAlign,a=t.rightHorizontalAlign;return 2!==n.length&&3!==n.length?(console.warn("Expected exactly two or three children"),null):o.default.createElement("div",{ref:this.twentyTwentyComponent,style:{position:"relative",overflow:"hidden",whiteSpace:"nowrap"},onMouseDown:this.beginDrag,onTouchStart:this.beginDrag},o.default.createElement("div",{style:{position:"absolute",left:"".concat(e,"%"),height:"100%",width:0,zIndex:1}},n[2]),o.default.createElement("div",{style:{display:"inline-block",width:"100%",position:"relative",verticalAlign:r,left:"".concat(e-100,"%"),overflow:"hidden"}},o.default.createElement("div",{style:{position:"relative",right:"".concat(e-100,"%"),textAlign:i}},n[0])),o.default.createElement("div",{style:{display:"inline-block",width:"100%",position:"relative",verticalAlign:r,left:"".concat(e-100,"%"),overflow:"hidden"}},o.default.createElement("div",{style:{position:"relative",right:"".concat(e,"%"),textAlign:a}},n[1])))}}])&&a(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),d}(o.Component)).defaultProps={verticalAlign:"middle",leftHorizontalAlign:"center",rightHorizontalAlign:"center",minDistanceToBeginInteraction:15,maxAngleToBeginInteraction:30,initialPosition:50,isDraggingEnabled:!0}},875:(e,t,n)=>{var r;!function(){"use strict";var o=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen};void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},75:function(e){(function(){var t,n,r,o,i,a;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(e.exports=function(){return(t()-i)/1e6},n=process.hrtime,o=(t=function(){var e;return 1e9*(e=n())[0]+e[1]})(),a=1e9*process.uptime(),i=o-a):Date.now?(e.exports=function(){return Date.now()-r},r=Date.now()):(e.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)},703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},697:(e,t,n)=>{e.exports=n(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},87:(e,t,n)=>{for(var r=n(75),o="undefined"==typeof window?n.g:window,i=["moz","webkit"],a="AnimationFrame",l=o["request"+a],u=o["cancel"+a]||o["cancelRequest"+a],c=0;!l&&c{"use strict";var r=n(294),o=n(840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n