From cf5136899eac08300ec4f15474a6440129ef7a9a Mon Sep 17 00:00:00 2001 From: Danny Brown Date: Tue, 29 Oct 2019 14:51:40 -0400 Subject: [PATCH] feat: service worker (#1045) * init * use workbox-window * Try to accomodate SW hosted at non root url * v5 updated namespaces * Test w/ no prompt * add icons to manifest * remove scope for now * add icon tile information to entrypoint * See if we can skirt by without a duplicate install * shift client claims to skip waiting message * Remove prepended slash * comment out cache handler for now * Simplify service-worker to skip waiting and install when a new worker is detected * Use generated icons * Update rollbar config --- .vscode/settings.json | 7 +- netlify.toml | 3 +- package.json | 3 +- platform/viewer/.webpack/webpack.pwa.js | 14 +- .../public/assets/android-chrome-144x144.png | Bin 0 -> 1480 bytes .../public/assets/android-chrome-192x192.png | Bin 0 -> 1954 bytes .../public/assets/android-chrome-256x256.png | Bin 0 -> 2459 bytes .../public/assets/android-chrome-36x36.png | Bin 0 -> 423 bytes .../public/assets/android-chrome-384x384.png | Bin 0 -> 4805 bytes .../public/assets/android-chrome-48x48.png | Bin 0 -> 585 bytes .../public/assets/android-chrome-512x512.png | Bin 0 -> 5047 bytes .../public/assets/android-chrome-72x72.png | Bin 0 -> 773 bytes .../public/assets/android-chrome-96x96.png | Bin 0 -> 949 bytes .../assets/apple-touch-icon-1024x1024.png | Bin 0 -> 22463 bytes .../assets/apple-touch-icon-114x114.png | Bin 0 -> 1088 bytes .../assets/apple-touch-icon-120x120.png | Bin 0 -> 1168 bytes .../assets/apple-touch-icon-144x144.png | Bin 0 -> 1480 bytes .../assets/apple-touch-icon-152x152.png | Bin 0 -> 1543 bytes .../assets/apple-touch-icon-167x167.png | Bin 0 -> 1628 bytes .../assets/apple-touch-icon-180x180.png | Bin 0 -> 1946 bytes .../public/assets/apple-touch-icon-57x57.png | Bin 0 -> 607 bytes .../public/assets/apple-touch-icon-60x60.png | Bin 0 -> 510 bytes .../public/assets/apple-touch-icon-72x72.png | Bin 0 -> 773 bytes .../public/assets/apple-touch-icon-76x76.png | Bin 0 -> 802 bytes .../assets/apple-touch-icon-precomposed.png | Bin 0 -> 1946 bytes .../viewer/public/assets/apple-touch-icon.png | Bin 0 -> 1946 bytes .../apple-touch-startup-image-1182x2208.png | Bin 0 -> 34768 bytes .../apple-touch-startup-image-1242x2148.png | Bin 0 -> 36237 bytes .../apple-touch-startup-image-1496x2048.png | Bin 0 -> 45171 bytes .../apple-touch-startup-image-1536x2008.png | Bin 0 -> 42058 bytes .../apple-touch-startup-image-320x460.png | Bin 0 -> 4820 bytes .../apple-touch-startup-image-640x1096.png | Bin 0 -> 12382 bytes .../apple-touch-startup-image-640x920.png | Bin 0 -> 11638 bytes .../apple-touch-startup-image-748x1024.png | Bin 0 -> 14172 bytes .../apple-touch-startup-image-750x1294.png | Bin 0 -> 16492 bytes .../apple-touch-startup-image-768x1004.png | Bin 0 -> 14180 bytes .../viewer/public/assets/browserconfig.xml | 12 + .../viewer/public/assets/coast-228x228.png | Bin 0 -> 2573 bytes .../viewer/public/assets/favicon-16x16.png | Bin 0 -> 214 bytes .../viewer/public/assets/favicon-32x32.png | Bin 0 -> 325 bytes platform/viewer/public/assets/favicon.ico | Bin 0 -> 33310 bytes .../public/assets/firefox_app_128x128.png | Bin 0 -> 1540 bytes .../public/assets/firefox_app_512x512.png | Bin 0 -> 7605 bytes .../public/assets/firefox_app_60x60.png | Bin 0 -> 685 bytes platform/viewer/public/assets/manifest.webapp | 14 + .../viewer/public/assets/mstile-144x144.png | Bin 0 -> 1480 bytes .../viewer/public/assets/mstile-150x150.png | Bin 0 -> 3058 bytes .../viewer/public/assets/mstile-310x150.png | Bin 0 -> 3556 bytes .../viewer/public/assets/mstile-310x310.png | Bin 0 -> 8440 bytes .../viewer/public/assets/mstile-70x70.png | Bin 0 -> 1163 bytes .../public/assets/yandex-browser-50x50.png | Bin 0 -> 546 bytes .../assets/yandex-browser-manifest.json | 9 + .../viewer/public/html-templates/index.html | 81 +- .../viewer/public/html-templates/rollbar.html | 50 +- platform/viewer/public/init-service-worker.js | 52 + platform/viewer/public/manifest.json | 59 +- platform/viewer/src/service-worker.js | 67 + yarn.lock | 1223 ++++++++++++++--- 58 files changed, 1395 insertions(+), 199 deletions(-) create mode 100644 platform/viewer/public/assets/android-chrome-144x144.png create mode 100644 platform/viewer/public/assets/android-chrome-192x192.png create mode 100644 platform/viewer/public/assets/android-chrome-256x256.png create mode 100644 platform/viewer/public/assets/android-chrome-36x36.png create mode 100644 platform/viewer/public/assets/android-chrome-384x384.png create mode 100644 platform/viewer/public/assets/android-chrome-48x48.png create mode 100644 platform/viewer/public/assets/android-chrome-512x512.png create mode 100644 platform/viewer/public/assets/android-chrome-72x72.png create mode 100644 platform/viewer/public/assets/android-chrome-96x96.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-1024x1024.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-114x114.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-120x120.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-144x144.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-152x152.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-167x167.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-180x180.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-57x57.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-60x60.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-72x72.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-76x76.png create mode 100644 platform/viewer/public/assets/apple-touch-icon-precomposed.png create mode 100644 platform/viewer/public/assets/apple-touch-icon.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-1182x2208.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-1242x2148.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-1496x2048.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-1536x2008.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-320x460.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-640x1096.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-640x920.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-748x1024.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-750x1294.png create mode 100644 platform/viewer/public/assets/apple-touch-startup-image-768x1004.png create mode 100644 platform/viewer/public/assets/browserconfig.xml create mode 100644 platform/viewer/public/assets/coast-228x228.png create mode 100644 platform/viewer/public/assets/favicon-16x16.png create mode 100644 platform/viewer/public/assets/favicon-32x32.png create mode 100644 platform/viewer/public/assets/favicon.ico create mode 100644 platform/viewer/public/assets/firefox_app_128x128.png create mode 100644 platform/viewer/public/assets/firefox_app_512x512.png create mode 100644 platform/viewer/public/assets/firefox_app_60x60.png create mode 100644 platform/viewer/public/assets/manifest.webapp create mode 100644 platform/viewer/public/assets/mstile-144x144.png create mode 100644 platform/viewer/public/assets/mstile-150x150.png create mode 100644 platform/viewer/public/assets/mstile-310x150.png create mode 100644 platform/viewer/public/assets/mstile-310x310.png create mode 100644 platform/viewer/public/assets/mstile-70x70.png create mode 100644 platform/viewer/public/assets/yandex-browser-50x50.png create mode 100644 platform/viewer/public/assets/yandex-browser-manifest.json create mode 100644 platform/viewer/public/init-service-worker.js create mode 100644 platform/viewer/src/service-worker.js diff --git a/.vscode/settings.json b/.vscode/settings.json index c19209219..6d87c6be1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,5 @@ { - "editor.rulers": [ - 80, - 120 - ], + "editor.rulers": [80, 120], // === // Spacing // === @@ -29,7 +26,7 @@ "autoFix": true } ], - "prettier.disableLanguages": [], + "prettier.disableLanguages": ["html"], "prettier.endOfLine": "lf", "workbench.colorCustomizations": {} } diff --git a/netlify.toml b/netlify.toml index 18c51b3ef..064ef692e 100644 --- a/netlify.toml +++ b/netlify.toml @@ -38,7 +38,8 @@ [context.deploy-preview] base = "" publish = ".netlify/www/" - command = "yarn config set workspaces-experimental true && chmod +x .netlify/build-deploy-preview.sh && .netlify/build-deploy-preview.sh" + command = "chmod +x .netlify/build-deploy-preview.sh && .netlify/build-deploy-preview.sh" + # command = "yarn config set workspaces-experimental true && chmod +x .netlify/build-deploy-preview.sh && .netlify/build-deploy-preview.sh" [[headers]] # Define which paths this specific [[headers]] block will cover. diff --git a/package.json b/package.json index d879ebcb0..e81a20713 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "eslint-plugin-react": "7.x", "eslint-plugin-react-hooks": "1.5.0", "extract-css-chunks-webpack-plugin": "^4.5.4", + "favicons-webpack-plugin": "^1.0.2", "html-webpack-plugin": "^3.2.0", "husky": "^3.0.0", "jest": "^24.8.0", @@ -102,7 +103,7 @@ "webpack-dev-server": "^3.7.2", "webpack-hot-middleware": "^2.25.0", "webpack-merge": "^4.2.1", - "workbox-webpack-plugin": "^4.3.1", + "workbox-webpack-plugin": "^5.0.0-beta.1", "worker-loader": "^2.0.0" }, "husky": { diff --git a/platform/viewer/.webpack/webpack.pwa.js b/platform/viewer/.webpack/webpack.pwa.js index 667b0ec71..e78446466 100644 --- a/platform/viewer/.webpack/webpack.pwa.js +++ b/platform/viewer/.webpack/webpack.pwa.js @@ -1,3 +1,4 @@ +// https://developers.google.com/web/tools/workbox/guides/codelabs/webpack // ~~ WebPack const path = require('path'); const merge = require('webpack-merge'); @@ -9,8 +10,9 @@ const BundleAnalyzerPlugin = require('webpack-bundle-analyzer') const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const ExtractCssChunksPlugin = require('extract-css-chunks-webpack-plugin'); +// const FaviconsWebpackPlugin = require('favicons-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const WorkboxPlugin = require('workbox-webpack-plugin'); +const { InjectManifest } = require('workbox-webpack-plugin'); const TerserJSPlugin = require('terser-webpack-plugin'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); // ~~ Rules @@ -80,12 +82,14 @@ module.exports = (env, argv) => { templateParameters: { PUBLIC_URL: PUBLIC_URL, }, - // favicon: `${PUBLIC_DIR}/favicon.ico`, }), - new WorkboxPlugin.GenerateSW({ + // No longer maintained; but good for generating icons + manifest + // new FaviconsWebpackPlugin( path.join(PUBLIC_DIR, 'assets', 'icons-512.png')), + new InjectManifest({ swDest: 'sw.js', - clientsClaim: true, - skipWaiting: true, + swSrc: path.join(SRC_DIR, 'service-worker.js'), + // Increase the limit to 4mb: + // maximumFileSizeToCacheInBytes: 4 * 1024 * 1024 }), ], // https://webpack.js.org/configuration/dev-server/ diff --git a/platform/viewer/public/assets/android-chrome-144x144.png b/platform/viewer/public/assets/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..feb771f74125ebecbb22ec1cbd7743a57d02f4c4 GIT binary patch literal 1480 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farfwkY$#WAFU@$JFe{dZDjkAM9B z`S011U9oT8DNQzrHoCiQj?Wf3y#{ILTwbxYAsNCRSKXQ;dfEl_dJKgoJYeMXz1q+c zC32}@+m?oQm%RZ}Cfv8S+-+WJzDsx3n{9Vu{rV=qkC*hn zfBtNHe$%(w_fKzJFjy(U8C!got543>O?~FfokyNL5!q{NyCv)E0fu_(nijuF&n=w~ zACB3b#;YmG*(%Uscqvn9;%T7WC?GWie3ekyC4qQh(bd^|> zfML9nb%_IyAUld06kSWiCNLSg$n;!M3Q~Z_3`iGD1ZwiZz%WgTQVrP%2w;F z{jl@x{D<$4-%rcR>I##sd20G?-v^oW^L|Btj&OEt37wXj6S2Q9`}&%+4`;V~XabXq zhtu{uHNv;;clXYFdOCA^YuaSz_InBMyZ0}+m{DLEwq7dXxcL49UH|Hw7OYL`k*WX9 z;%~osHn+ImgrF7IUI|WgHFA*w`rY}+L7?*yOpS|dX>Q@+;%SX#v*zbt$S{dmBfu0J z8=Eroq8~T6@3UvmGTMbWr=C_VyHlH#43V&|?8>+MV(|E}@D{C> z1L}GAPlWHQv0ob0`RowW+Yr6!Gxt?YbeH?fcf765bES*Z?RPt8f4@_qJliZkF)gjF z?6lG2KL5N&$9I<%onO9v^M(x$+IC+K@_$(R`~Bn3-`^$FBsGB^+%dTD8CFIdi|om;*BuaxoPsJ&fbwQsidZ~DFbyrG?;qk4y6 zA209cUklB5JbgCXz>5pg8IrsK-22H!DSyf$qV?&*+v$FCMkyTr(R3?_k7P4B; zubFdip4_qH>K$9czi&$A;aT(K_5B}W?tOAgLnEhse83!^e0QyUTFx7lvo_1;PMdQ2 zPQl+&o6XhyzrV>VEDczDRhe_9B(rvS(bK85TWiE5*JcBBZc|HUd=4qezPREF|dSY@O1TaS?83{1OS&PqnQ8z literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/android-chrome-192x192.png b/platform/viewer/public/assets/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..946be33aa73f021f24269119d4e53529ecdb62dd GIT binary patch literal 1954 zcmc&#`8OL_6sAXOpNg&29(yRYwu&hcB-RS;pd$8KYDs9-GPIUVG87e>+N(svG1iWC zn5un9C{laXnp)F}rNlBZf580Mp7Y)J&b{Z{d(QXnckjd9va{spxy-}H#>NkWLg1|X z?U`|1V4d)p`cX@YLmJ#9r<{u zrIp*vOFqZu>hXxRxLzQ~`0>UiNdt726%nrLnmb+>vFf!)kIx%wiNWHXK;5aUbBg%> zuujd;(zdol5=>BwcV)=8`(pJU;nLRV^3_MPq>k%3dhu)DJs76pce4^Cx*iv%~=P9w$cbQJb1?q;EjnmeB^%(LO>1 zx1-?psR=0Yxh7(;$UQpwEE|MWso5?IC?+U)(2U{N%P8%L&7#PnQJFOkZ zpZ=ys(Ci+>*2}n^{8~4uUV!MuB1pic4V>%r#H$!c)^4XSm%0v_f^c|o~y zZLY6vT_1gzqDdOtqq%$Zze+Y@4(b=i%$rBYF#qdqWsXkMZsRo+v*J%aK0X1xGo3@b zQpJsP^WqsnE0pGhBti zwu)Ol=@OQ;&Px$<0U#>%K|TzxBpB)4>kb8aM(pnh=;3mUAM69j!RCQIck@!ZZXYl-HnrcaQ)^BOWX>B@l#n4Yo>u8Q(<&yg zaA6unV`|!vt1~0KxS;`q6H>Z`MB3*sF`}lXr&m9304vV&1OTtU{~9~FxZ}Uslal!8 RJnQdegPGews=yuz{{n80Z5{vs literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/android-chrome-256x256.png b/platform/viewer/public/assets/android-chrome-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..7dceb3d66553d986ff4dff916dd05a227ac86ade GIT binary patch literal 2459 zcmd5;X*k>I7LOWDOO-yg+@fep$6Az#r5J;%y0wSef(k(`wKTCrGNrg=EF%`ur5C(v3nCr9SvtH z&o+jC^BY^ahwXQ%y7)O~yr;0#Id$P`OvsdG1->3-P$V9z7gni>uQ1TohM=rAJz>Hs zLf~}Q=>U30)QSm3*_2}VGKVi@d*$*HW~PqTcs+W-AlFG)>AB>Mo9a1vu8OKPKRJ0k zc-DB#CRix<&+jB)uE3+uDHeF6bb57DDGSp(GmI2zpZSe1VulkL<#S|PtuJCj`-ve< zNg5tCQd(VqseKcZdqR}prc3r0L{5<$Ka!Q6l1MGMK@a|-4=sx9wU3OB^&Lz+1(88C z@hF;qv~Qs<|M(*dER;CsIopyf*&h+eI9nX+JDuEqFk~EKbe?R$`BnF}VY~>Mj#UqE zj~Yh1>5ekJVg+R74=!}k+p+`tt>f5R=Ure{QWh4XQrqcfSC%6S zeBw`*+7%>pw*9`^8ND8oQU1QY)lEBp$Yd!rH4XWapCIN4lPoeh7-(qcG3BMM6xy4e zh^KFCoH~t*Ep)B6LRougPO|kaGA~p(`B(Lv{I;X;)5coDy6&}W$yjl2OS#H2>h%rc zBN9m^MCd^AyQR(F$sF%hNiB2zoWnho=C<@IVEY{W|HBd#L_ibwK$V}r$^|zS-mDpm zFesY{y;x|-(L0@)O%+R$-&wWCU3dI^8%51TG_O|3s)j(Ydp>6VYHWH_F{*8FHgo1@ zM+t=f(i@RohS{FQtI)&@tV1;pwdc)!xw+{Ry*E&#anRrOq)Ku>Y8_4@T_mum;1)Ym6-lY=vveUW=_SKX015o`IF z&Iu)g1%nYf*`9I$K7EfYDhjzB%f{Fd<7BKHbKbqRES832(!+)$DyggytqRERmp=TK z=k)iY|FgB26IC;k9y}0O*>diCLQ?annH^!p?CRYjns#@0gU-bmduKIz0J`c@T|V2} ztGoLRrrye2iOUPHxlABfPi)gU^eua|u0AS<@El&(03hT}-i=R{5xoisW&h67l_L?r z`Mhc_{(l+9(@R9O=4P=Q+NI%Xnf9Uc?B-d&sHogiAIXUARdo5&aR-0B$|?5xTuGeIKU*6P;Iw5 z;FStLd^dgJpShMK57qe;c<-M0fvfwYnAhhkoSLbN592$se0_a?Nk3YHYwyOT!DyIyR1xzXAQn$Mo>p_F4k|=#Hi*@lNQf;$0g3 z1K^uvqeNyfJ$k44oUCylb@*Dpi;`D7|pKm`S)Et z>nth~_}HrE`f;EZ6pD>$Sb+OqMPw!XQT1F#(tx)4i2{R3!eC`HQs46s0g&ZT5PI%r VK3T_c8yLDkHdc0)wLkkN{TJutkc|KU literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/android-chrome-36x36.png b/platform/viewer/public/assets/android-chrome-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7392c15a907c5e4e75fdc6c026fa85564699b4 GIT binary patch literal 423 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 agY!8AbX`)SByc>n&(zrJO4Vi0NB;ryt?)$v literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/android-chrome-48x48.png b/platform/viewer/public/assets/android-chrome-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..46910fb031c37df87f92aa46bbd480af365c3dbd GIT binary patch literal 585 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(FbR0NIEGX(UOnjTADk%A@NoJ^ zlP#K0XQ^%B5_9QwSk#fn8^`eXXxua@VbdmQ9jS!mz*|k3f_y)pZCTjnDqJSpr1z}y z*QeH#e0`kfP@$^?4^N6_Pk-{(`VX_yHlM8gSu^k9LPs4dhozgkS6%8(*syDpPk`zQ zp%BhhETK(Wj#C$Sfw`5NzI23WxrT3yNT_?q2Ny=DT6F5wCu1EY9;sfosi*Y9!n<9A zR*I|*>o!(Ce0a*~`zx-#jyQYf&H<+aKQyR!NMZWviD%O`O3BJDyqkBiw4~(Bkt3#k zk0n;;n033h9Bl8OKV$yvqglz1wLLE_dhNc{seae|pF1Ph+}l^(@7m(HHf(v=>SD?0 z=-Yqzn~DY5E(Zrs@tPbFnq7M8sqeYyJ^K$_xS$X=d-naCtHWNZ9(wR??d&}@f7w;Dci^2_Ud`g~nZtkxkH%csQ{v3Y!Qgg41#FpE+z<`@B=%mncV85D$Itu(QE~R;{ VpyTn=FTf`{b0zUu% literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/android-chrome-512x512.png b/platform/viewer/public/assets/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..c45400aa95a69c4226792b1821c8b3298bcb4ebb GIT binary patch literal 5047 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 Oap+*!ftpWGfBi2k=Ro!V literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/android-chrome-72x72.png b/platform/viewer/public/assets/android-chrome-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..3b78d37f27df5e04f8fbe0a5791628aee65db67a GIT binary patch literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U^?UJ;uuoF`1auW?AxU>$3H%Q z?%JXKHu2W6nY&ci-RRvaTgE4HRQ|T7NMiWJi#tz$IR1apii$~wdo-IKITlt(%k3&N zx_-7SdeXY$b*3(NR-JV6p51>v=#u%D&uia&sYjVcRg>8J$iO|Sg0;A~p?yFUlH&)Xm0yZ^nQ zr?}IDo63)CeqO!4grhY{bJBws7nP@Ys~UAqJh?JcOnmx_w2~(R?EG>HtF^<^KrV6B z5b+k=t_rdFsfU2mgWl`$k2`IvPh|bNq<;{}0_aaVUQHw>y1D;pRi9PH{>1_Vr9S|J<_r9rq@ypWmW&bnZMmUp4ow z5T~5J$cm8c6w%}*aqBl{Usuiv)8GkM8FrKN>MfhUfBPpoVT&k40B|Y^Fj*_LFig}_ z;%c0$z-nbU3FwZMFTLm3nL2I_Q|9)Zays>2uG!6;XRl1}&9pdq=c{yzpwoj7Hzefi ze@SYB(uB&3moFb)yt`X*!kWu3FJzcR#J|7bYd1fA!G3wBlSw@$QuQ0RZFB3A>AdyU v>}}cX|Ce9A((3m1wn0lh2uA_a*Gqffg-6!9BrPijCT|8$S3j3^P6V6O3WaSW+oe0%V2_O(=*;~&3& z-C57GZRy=;pE=jOE(UJoU1;Ue`|7}_C6kn_dU`K92D-2Z>B_5JDs*uvi7;BD;N#!z zQ+;5QEk~Hvu`9R4PTn%gzy9~b?qBR>w@-e3?fs#4uTyxr|B;!3=cW`aYcW=xqxsN> zGu_J~_|Qxt970AyoQfCj-#>oK^sdOmQ&aa_e0*DeCChZ(@)*71^LNW9rm6;Y8y5Zg z!XNYNX?V~{k0&!9DrRk!NW7?w)wJ`o!lGMPa3-A75!(TYfnys5N!< z60s%;IjJWX9xD6z_)TKdn> zToE~M|6NCTa_|xbq0UObi&DK-lQNb~nY!X?mdMJm)xlbwA;ftJs;bk)i9t2AKZdA58iCKkFGAZx&g&c5UzV@BN!TKNVbc zRqOQ4Etw7XdZlmL?wW6NUh~km_H7@pO!hY@``{cTz0NOAmedVxk?sX2HyR zywVoGjv9WlS+3#UFPr}NSLqU^pw5Z^T^8&V(1_}pIEBPe-K4WPW9{0tSF%fIMMgy} z+PinI($?+U1J{Omswz)hzu)rUi+9&&?5ki@I$2s$60qJpA|htVOn>{|b84&04KLhx z-x{TAI@OEk%lD7RX6H}zdhzOAr%I6C{S&@(=ZZYcT6*Zto%}zugH|3nn|*yks^rS2 zl__O;)0QsX4>W#ZYpbi6nApZE874alJ_`L8$DOXxJ$1$2=**Y3Hx?Ug17=4CPgg&e IbxsLQ0Of7Qc>n+a literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-1024x1024.png b/platform/viewer/public/assets/apple-touch-icon-1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..9aec17fa571f0ab8f4660468e7e1634fb7f0a60e GIT binary patch literal 22463 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 OQH-bu9`8H-`~L-sNWtj< literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-114x114.png b/platform/viewer/public/assets/apple-touch-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b6d05a94ab78c8f26a53839a2d033628f4b918 GIT binary patch literal 1088 zcmeAS@N?(olHy`uVBq!ia0vp^MIg+<1|<9Mw$?H*u&{f&IEGX(zCCz9`)aAo@sH2H zm+nhXSM)P0zZ6^HHEUU_y}s54(VNfu7adVqxqm@aQhD2qnf4PqoOoJ1HXl(iyx4JN zkH%u_xluDEU$suNpC&$g_B_k}=QWE?=aq5&sX1u={-W#s*|M!K_35Wnow!X??%mrjaq>@Pab|vg`qf#bAzGrF z3eI2A+_O86cYT@uqOjG4o0qzLcp@yDbMKR8{XA>;uyt{JPo0b1UHRss`;EU>ulFoj zoNRS^+WM4)gb8b8Y_1&seBRdk_K%Nqtn25^_I0^%;lhEf*@sis2CbZM`soUF#f4Ri zy{@f`-|siezthn|xW$+(!i8mPRBw!)`?X0biY*SdjSQYn*Hi?Z6xak0K2&zEOuQF! z$wXDV)v593=Cq|N6Nd$m`BHAEt|Y?!?=_}wzGtdxa8D>pnm+$;0{EsLSb(QQEo?tVgZ zd61IV%=%_4L1n2-lO(l}X%+0eaIp6$QM#Sa!zrZJ)Ns^JO0=4i#{IkY97(VQpBlN^*2m#NHyy{}OU?YTHyiHN?7e?tZhZ{#NJBqbX=(`&d)& z+qX?gU!yi{DLI)WSNFn^@2gCj%KH7^xa9NiIh}u~oT57a{N|U7du4t+bU*df$b5E3 zLeTG6V3ast>y!E08I;NN6&UePk96KY8MHL$;gyw_MWUlS9bJT+4*ZQ)aBvbKCqY7z zu#&`{qSk5C(l(hbTiLmAq2jBZfom^SL@P&18!ziDs_c*mQu>j0KJME7|8l@M*|*Pb zlR@4ci+MARXTNLB4>&J=yL`i|x!Z53V|BK{?v2N*Q^1 z%T^b&`7U;!-1_g|={L9c&p&uj`;WM=`aRF%k1uDQc;2bYkbZ8?)7|g+1J;IhDpHim aKA0Qlvz6`4PICs93=E#GelF{r5}E+Xg!Rq< literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-120x120.png b/platform/viewer/public/assets/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..ce083291abc36f3e0ebaa3dd3cf6011e07ae3cd9 GIT binary patch literal 1168 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q}r7u!MWMIEGX(zCHLh`)aDhfsgNN z-qSl(Xw>u3s77%aSd{=ia}w|IqW`-`pKL?BuV{$^9y^m1Xg)gb?ALtfoL; zgH@bvrUzH3Nn9mTP)zW`5>L%(_e<3;FY{IQyn8p@vg{8_p^UL$>DH}lA~w!BcFb+k zqsKFX=f;-&{iv?E^I6Vn^#+Zu8(;60`OSOtWc|G226f54ZK~ZGV%~ec{W3c>(`M(y zSnF-YKTd4tiQnZCupi{i^saW-r*9ToYk53-Q^Q9 zvy`TvFSg~kE3khn`}^mo)yyhyA1qX^`Sj7f=Gr~Sl_5$jiW8PCJITYt6QEfizt3rx zm9OPj-mfuxEPPat6rTA}!6>LGLW;++2N6rr+glR6yu2Y^rB=Qh1D4GBSbuEg%9RU) zf>v_8w_WJM^6B=*$2k?>GW|-+F5bTG9yF&|CvMAx605TwdhV9)`+v{NjoxlxW8Eggp&=lcnc{FSDTDis3(4tptBExeT&rkP0$6Gx2nDl+#1tq4a zZCiSm&x>%kvh7rf-B;7P{oYMK|MQk=kN#a<9kKhF;;L0GODvwhc)$O^?EL+wPk8hN zC^5~n+B(x$`ugU=%b%Zos+?r<`q}IoyMBtw#eY|6b!vPax#dGy*xEh)>1H`eIXOKl zcQ@u}M#t68{3<>FaJ4^&lLEK6&VvgR7lZVcE&Hw0+}xaEBzY<`JKE>>KE7kej(OZV zzyFVy?^#}#Ko<=sg+Q%E26lc+r#zAnbhlJ;+8D7Y=uwc52RW%0De{~Y?p4nzo^eWu z$+CXm^q-%f2XcmnhWgB(m-^+D#?zP=`w!f)+#bYPT3Q+szFc#v7dS}gG0Z96^W_ou znHh$2|NUb;Fq!3fi)C@%!vojvU)cAa`;_O>pgkK)jqg>vxfM02a|VhSzTdX<&5fUS z_J4i|FWdpj0}FDzxo7$aTeu6=ypfcW0w!PMz;l*q=k`qe^{Z-<&~&daU%wk$RZX3s z#3U^vl~ju{rV=qkC*hn zfBtNHe$%(w_fKzJFjy(U8C!got543>O?~FfokyNL5!q{NyCv)E0fu_(nijuF&n=w~ zACB3b#;YmG*(%Uscqvn9;%T7WC?GWie3ekyC4qQh(bd^|> zfML9nb%_IyAUld06kSWiCNLSg$n;!M3Q~Z_3`iGD1ZwiZz%WgTQVrP%2w;F z{jl@x{D<$4-%rcR>I##sd20G?-v^oW^L|Btj&OEt37wXj6S2Q9`}&%+4`;V~XabXq zhtu{uHNv;;clXYFdOCA^YuaSz_InBMyZ0}+m{DLEwq7dXxcL49UH|Hw7OYL`k*WX9 z;%~osHn+ImgrF7IUI|WgHFA*w`rY}+L7?*yOpS|dX>Q@+;%SX#v*zbt$S{dmBfu0J z8=Eroq8~T6@3UvmGTMbWr=C_VyHlH#43V&|?8>+MV(|E}@D{C> z1L}GAPlWHQv0ob0`RowW+Yr6!Gxt?YbeH?fcf765bES*Z?RPt8f4@_qJliZkF)gjF z?6lG2KL5N&$9I<%onO9v^M(x$+IC+K@_$(R`~Bn3-`^$FBsGB^+%dTD8CFIdi|om;*BuaxoPsJ&fbwQsidZ~DFbyrG?;qk4y6 zA209cUklB5JbgCXz>5pg8IrsK-22H!DSyf$qV?&*+v$FCMkyTr(R3?_k7P4B; zubFdip4_qH>K$9czi&$A;aT(K_5B}W?tOAgLnEhse83!^e0QyUTFx7lvo_1;PMdQ2 zPQl+&o6XhyzrV>VEDczDRhe_9B(rvS(bK85TWiE5*JcBBZc|HUd=4qezPREF|dSY@O1TaS?83{1OS&PqnQ8z literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-152x152.png b/platform/viewer/public/assets/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..82b0791474e148a18156bb9de784f020f66632e7 GIT binary patch literal 1543 zcmeAS@N?(olHy`uVBq!ia0vp^GeDSw4M<8HQcz@IU_IyQ;uuoF`1W9I&ed|+;~&4j zzkJ!aYKeHX?h?t&u&4z`k9Vi`F$z2O&aCdZocpnHqgz5l%Ei{)NvfxXjOH6XK73_^ zug|hLOLOD=l3k217h(?ah7u{~JrcxmIVV9nAId_YW4St=((0 z`F-Y;Bhu{rhVe_MiOu`{@Vlg(Wa4M%_|#{wcv>ecDF0bB@8)-tt#d4GzKHdPEjk#+ z|K;+%d*`3A-J`RN?b&Se5=jV+N1iDDizScRy^G`Vr-j?B{{?bfLcJWtNlTrJ{N z4GdWt)S0!_&A5Y2TF&mYyZxs`D=RCFMdxdN1<$eiTb^ZU9It#h{pSUC`vaF$y)_o? zez&JN`FP)Do|T(dTVGCSjyBu;Q#<|C-zI@( ze%lk%_y1s6|NrIrn7vlciYgIXlUSLV|K>>EIdNVde`l10eahm zL>>!I-t+O9Vp>{S#EL0Gr>m9SRPjUVa^H*w~n3*>D$f~K@H~vqS-}wCF z-aWNXG(M|#zOTuae|jzK+x~)vl`A#79E7yP*CqV-uRmk{&F0|5#q|p>0uyBX`=Y9< zyhrn@-zVp-^O`uvrgT>Qzt{KQR8&ak%UhnR`TFI~kyrmh@6^8kd*QR!N>bZILj zF)V`MhCZU{m&VaSW+oe0%VJ{uOrF;~$?t zuMIyfyL5-%^(CDm2U84Ebv^DFNf_J^*u-b(<7S=`v2W)~o|})<&i&1~qPa_Qlg??G z7k`xJSfp|DESw!s(v#81wD@R`;$!cZU#sN*w;h(ZTkjp$?;ezu?QbY7GNY60j0jQ4>-Q@rcZ>f& zyw+n<3;Q(PryEPNcmDk*CbBg1)XU516_3x_{`q`ZI7L@;>(=EdD)Uc&JayW7<}I7n zyVds|?GInKKx6*-%|%Cxrrq1$Vw%1C=ab3aSF&zDliRgh{^|DJaZmsJ><^rx!YM0T zzHw=~vVVU4w14026}&5rO3vGs8&_YGUGpZ&cV~>-&Fc1lZnKu<-25V2_pLiVu>0Aw zv~BtIv)IE+3~g+hHXU~VCArVw%xC+Wws&8pSB9-lQ9W^C?&kE1+y65>Et*+X@L{j> z9m{I7t+UMDa>wj2IP>8H$JYlRCf22$o8xFVU)kHS?bA=2sa~yBhK7Nvo+~0JIg}_f_H*RnJ4;=l{~%yZ5)G zyu7-%=gPIVs?OQ_x3-Db|54_XwL6nOKi2i)b1A8a9S`EZ{oOkKdHJ6f6W^6r@0{a{ ztIriz_y5=ZaH61yE6d#Svkz~5eVudfm&kOxzf*Knmu~wurDyB5X&{|klhqbxEQ(4^ zcwnJ!XLa)b;s~7$6&IDF@_yTNT{201@y3!*{^jzZl@qouxpHk@l9~p-e}wt%`VY2cdw)qiKQ}i$DT&FHmzVd|18hBd*`rz`M1#JdFonP+JKh#qd}Arj%aKg~dYlz*>XB)78&qol`;+04bU2 A;Q#;t literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-180x180.png b/platform/viewer/public/assets/apple-touch-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..c7eb09a5bb853fccdd083a83b5a6655463bd1bce GIT binary patch literal 1946 zcmchYdpOg39LLvHlvX5-R+=cfOeSkG(jk{T%7}P!%WV_MkYAVR*ngd4q=D78=F=;`zR?`uiLbo)=jd~+)dm+ z9IQU%Ro9T+OX1DoX65xl2|!Lr8B6uVr8#Yw(I!~fuQ4ju(%xQCUfohft>=u6OjL9N zrYylGDm!~iRh1rY1$R0ielyy_dIQiNFR!7t(HXxFc}nc(H7#`a0_=<99$dnLBX&)= zcJa4mp15N>Q!m@^-j=@8{xFfBu82B8Yzs$DKYuo%;??f?)ip|W7B#it^klR#}`ADk$zsIU5_mg zg?2^vC)fZG8r0|QRgbPHvESQ#Z6Y@!lVih{}kZ@tv0MF6kN+6mTDQv~+0CVJ!CKR_<(1#NUr_1Nl6nwiYr578@*dkWMYj$_# zzs!L2#gSfgi`rd80}L?AI@Ka_HAlP@aSWZBBG(7i6G*=f;SaXv9-G|$f5wc;J#G=3 zmWa5HFG#_zKzZx?u##{^Sq)w3PHcJ@Wps?stY(M}njeiH1P0q!cRGBsV!~+N6v17! z=CO&Q{Pr+!+RhoE|4QdQhi6qhWMUxmn(g@bvjgWk9Rh*D1cK|cPQ{mx+;=b-48WeO z9ogtY`+fE#xww>;=FUoZPJ+W{A4Iyv2NAuymvXi18h(?l_rQ&-zA(jO0X}R5{nPATeXY$SeEw-yzJtE#g%UCEX6hO+_@m&}!_WnKOB?C= zu^T2OcJ6cW>Dc`f^tmnY+IbmX_Q9=^LC}OM5MegT&;o_HxQ@}0k(-e5@o`dIN0W)s zF1?FE8T`_-bS-_en3RTf(tk{*BLk6mM?XAuX3!?>5E4aPoTvm6L-@z}OJ1agAHk^Y< z@a)>{X-6MiQo>ItzjFe(K>x4bR&-c^evy q=L}|v2(}wmwChXK_Dd{L49ahwGJXfuOqBe&AafHd literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-57x57.png b/platform/viewer/public/assets/apple-touch-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..d868d4d1c24d2661eda4cf0065e1008afa67aed1 GIT binary patch literal 607 zcmeAS@N?(olHy`uVBq!ia0vp^mLSZ*1|)kVnp+tdnAAL7978G?pB_BvFPtcG;Nkr} zFRyHyuBp3K%qMaW=Od;aE@HiG28O@>?^07x=sZ;vaD*Xtl3$>P$cqymT|NCxEhos z7ciXvT=D&(^0sBm)hw)51%IqPXIu57p}Cnk?7G>8hYaiE_bz$#yCt!slcVj@OOe~R ztxab8=7@Hu+MHkf==U6NHQRkPf893UJaX;cd;25FhKCG}v@B@A1`}TV_|cN{O>6Fp zcYc>MOftk->OGeSl_<^p!tuX#MiI~(+|HAQ`(M8DO3JRUpTG2}=&eqU^YiQ!=XE5n z4$<1YZC|6N`sCBwcRXQXWnop4D3WQvIrF*8;=r7_bLW11_O|-g&b*eLHzj3`9}HVt zc4GNaRiFn=OiCuty~`9Gy?;aL_j9>y?7wc_)Gf%X%9`}E)%Dd^t8H;-&Q9=9;b>wI zZd&MKbL`|t&bb!0xdl(Xddk+l7GhzXn_7_m!-6ud2H literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-60x60.png b/platform/viewer/public/assets/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf695424677d1e279f1de820e30adb70fc2c661 GIT binary patch literal 510 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$>^XU_9#S;uuoF`1GJ{agd`#+r#Sl zo7*o)NO`ukwOQ1uEdG|Y_}dx9C*f`$Uhdq+nLN)9yZBsMVVuDF|KXckMj>wwzT2yJ zJ!h+O8%J`B;US5{9s@TC0!&%Z=(-;QoEny@PD^v|!q`NgM) z>s0-Jr`vl>&Cn(2>TBsce?Cy#D!ilMk6jzwJ=O2xFkB&*ayOmfZaPu5KzYUKu=H L{an^LB{Ts5gvI3O literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-72x72.png b/platform/viewer/public/assets/apple-touch-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..3b78d37f27df5e04f8fbe0a5791628aee65db67a GIT binary patch literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U^?UJ;uuoF`1auW?AxU>$3H%Q z?%JXKHu2W6nY&ci-RRvaTgE4HRQ|T7NMiWJi#tz$IR1apii$~wdo-IKITlt(%k3&N zx_-7SdeXY$b*3(NR-JV6p51>v=#u%D&uia&sYjVcRg>8J$iO|Sg0;A~p?yFUlH&)Xm0yZ^nQ zr?}IDo63)CeqO!4grhY{bJBws7nP@Ys~UAqJh?JcOnmx_w2~(R?EG>HtF^<^KrV6B z5b+k=t_rdFsfU2mgWl`$k2`IvPh|bNq<;{}0_aaVUQHw>y1D;pRi9PH{>1_Vr9S|J<_r9rq@ypWmW&bnZMmUp4ow z5T~5J$cm8c6w%}*aqBl{Usuiv)8GkM8FrKN>MfhUfBPpoVT&k40B|Y^Fj*_LFig}_ z;%c0$z-nbU3FwZMFTLm3nL2I_Q|9)Zays>2uG!6;XRl1}&9pdq=c{yzpwoj7Hzefi ze@SYB(uB&3moFb)yt`X*!kWu3FJzcR#J|7bYd1fA!G3wBlSw@$QuQ0RZFB3A>AdyU v>}}cX|Ce9A((3m1wn0lh2uA_a*Gqffg-6!9BrPijCT|8$S3j3^P6GYb7`&M%La+FhL_5# zS3>!+HXchiO|;V^=bpL2 zE(#w$dFy|=e6x577cfjFW&A$C@b_=D#;U7Xg@2E+ye*skH6`-c=JPhaDqXYY&Q4BD zoEWk&YPI{FHqLaVIh_S+szR*-89eWnN39JA*?jfUo1OC`V`EcoZ*Q|bdCzwJ1=T8q`;@64aST-a~E-Qf!t zm1AV2)muG8l>d89Ou`ePU?~-@#^cIP3KujLS(GM*s0!)YMLard9{2p*8y(lFr&E7b z{q8W_bnVb1CF^pV<7;P1ezIA<;^5!kJ4$|Xt#sNN)~`}k_nc2_DwnJ2Y~N$Yj%RND zmuTysbMMT%ySpd21R5Lf|9t%IZE$E3PGSF8O_h(|c27%P22A@5p00i_>zopr04bDr AUH||9 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon-precomposed.png b/platform/viewer/public/assets/apple-touch-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..c7eb09a5bb853fccdd083a83b5a6655463bd1bce GIT binary patch literal 1946 zcmchYdpOg39LLvHlvX5-R+=cfOeSkG(jk{T%7}P!%WV_MkYAVR*ngd4q=D78=F=;`zR?`uiLbo)=jd~+)dm+ z9IQU%Ro9T+OX1DoX65xl2|!Lr8B6uVr8#Yw(I!~fuQ4ju(%xQCUfohft>=u6OjL9N zrYylGDm!~iRh1rY1$R0ielyy_dIQiNFR!7t(HXxFc}nc(H7#`a0_=<99$dnLBX&)= zcJa4mp15N>Q!m@^-j=@8{xFfBu82B8Yzs$DKYuo%;??f?)ip|W7B#it^klR#}`ADk$zsIU5_mg zg?2^vC)fZG8r0|QRgbPHvESQ#Z6Y@!lVih{}kZ@tv0MF6kN+6mTDQv~+0CVJ!CKR_<(1#NUr_1Nl6nwiYr578@*dkWMYj$_# zzs!L2#gSfgi`rd80}L?AI@Ka_HAlP@aSWZBBG(7i6G*=f;SaXv9-G|$f5wc;J#G=3 zmWa5HFG#_zKzZx?u##{^Sq)w3PHcJ@Wps?stY(M}njeiH1P0q!cRGBsV!~+N6v17! z=CO&Q{Pr+!+RhoE|4QdQhi6qhWMUxmn(g@bvjgWk9Rh*D1cK|cPQ{mx+;=b-48WeO z9ogtY`+fE#xww>;=FUoZPJ+W{A4Iyv2NAuymvXi18h(?l_rQ&-zA(jO0X}R5{nPATeXY$SeEw-yzJtE#g%UCEX6hO+_@m&}!_WnKOB?C= zu^T2OcJ6cW>Dc`f^tmnY+IbmX_Q9=^LC}OM5MegT&;o_HxQ@}0k(-e5@o`dIN0W)s zF1?FE8T`_-bS-_en3RTf(tk{*BLk6mM?XAuX3!?>5E4aPoTvm6L-@z}OJ1agAHk^Y< z@a)>{X-6MiQo>ItzjFe(K>x4bR&-c^evy q=L}|v2(}wmwChXK_Dd{L49ahwGJXfuOqBe&AafHd literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-icon.png b/platform/viewer/public/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c7eb09a5bb853fccdd083a83b5a6655463bd1bce GIT binary patch literal 1946 zcmchYdpOg39LLvHlvX5-R+=cfOeSkG(jk{T%7}P!%WV_MkYAVR*ngd4q=D78=F=;`zR?`uiLbo)=jd~+)dm+ z9IQU%Ro9T+OX1DoX65xl2|!Lr8B6uVr8#Yw(I!~fuQ4ju(%xQCUfohft>=u6OjL9N zrYylGDm!~iRh1rY1$R0ielyy_dIQiNFR!7t(HXxFc}nc(H7#`a0_=<99$dnLBX&)= zcJa4mp15N>Q!m@^-j=@8{xFfBu82B8Yzs$DKYuo%;??f?)ip|W7B#it^klR#}`ADk$zsIU5_mg zg?2^vC)fZG8r0|QRgbPHvESQ#Z6Y@!lVih{}kZ@tv0MF6kN+6mTDQv~+0CVJ!CKR_<(1#NUr_1Nl6nwiYr578@*dkWMYj$_# zzs!L2#gSfgi`rd80}L?AI@Ka_HAlP@aSWZBBG(7i6G*=f;SaXv9-G|$f5wc;J#G=3 zmWa5HFG#_zKzZx?u##{^Sq)w3PHcJ@Wps?stY(M}njeiH1P0q!cRGBsV!~+N6v17! z=CO&Q{Pr+!+RhoE|4QdQhi6qhWMUxmn(g@bvjgWk9Rh*D1cK|cPQ{mx+;=b-48WeO z9ogtY`+fE#xww>;=FUoZPJ+W{A4Iyv2NAuymvXi18h(?l_rQ&-zA(jO0X}R5{nPATeXY$SeEw-yzJtE#g%UCEX6hO+_@m&}!_WnKOB?C= zu^T2OcJ6cW>Dc`f^tmnY+IbmX_Q9=^LC}OM5MegT&;o_HxQ@}0k(-e5@o`dIN0W)s zF1?FE8T`_-bS-_en3RTf(tk{*BLk6mM?XAuX3!?>5E4aPoTvm6L-@z}OJ1agAHk^Y< z@a)>{X-6MiQo>ItzjFe(K>x4bR&-c^evy q=L}|v2(}wmwChXK_Dd{L49ahwGJXfuOqBe&AafHd literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-1182x2208.png b/platform/viewer/public/assets/apple-touch-startup-image-1182x2208.png new file mode 100644 index 0000000000000000000000000000000000000000..7c47f554d5f3126cd9f97248db201ac2932dfd43 GIT binary patch literal 34768 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 C5M~zu literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-1242x2148.png b/platform/viewer/public/assets/apple-touch-startup-image-1242x2148.png new file mode 100644 index 0000000000000000000000000000000000000000..a03effe10b982bf2a8c5cd921d63ae23d22b9f72 GIT binary patch literal 36237 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 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-1496x2048.png b/platform/viewer/public/assets/apple-touch-startup-image-1496x2048.png new file mode 100644 index 0000000000000000000000000000000000000000..69f0d12e7bfb84331923d3880a0d95b5ee08806d GIT binary patch literal 45171 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 bISbeCH@S0u{;}fow{MO5N$uag_N#vbMs1+i literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-1536x2008.png b/platform/viewer/public/assets/apple-touch-startup-image-1536x2008.png new file mode 100644 index 0000000000000000000000000000000000000000..dc5769568c1c9bae008ee8b5b3cc110147ef7d18 GIT binary patch literal 42058 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 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-640x1096.png b/platform/viewer/public/assets/apple-touch-startup-image-640x1096.png new file mode 100644 index 0000000000000000000000000000000000000000..cfddf0dcb94aaff40c58d9a2f192e8043c9e45ef GIT binary patch literal 12382 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 RzX8;_zk7V$aQf1J{x2As>ly$6 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-640x920.png b/platform/viewer/public/assets/apple-touch-startup-image-640x920.png new file mode 100644 index 0000000000000000000000000000000000000000..4de040c6a5b16de480ca66ee8d9496b03e85e5ad GIT binary patch literal 11638 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 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-748x1024.png b/platform/viewer/public/assets/apple-touch-startup-image-748x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..c653ff586094d349c93670bd670bd252652810a2 GIT binary patch literal 14172 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 nB_D`vYO=44AM^v)0e&l@p4R2saeKO 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 cV_-T(jq literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/apple-touch-startup-image-768x1004.png b/platform/viewer/public/assets/apple-touch-startup-image-768x1004.png new file mode 100644 index 0000000000000000000000000000000000000000..a83affc9d645de735e4a8da36f1bb068afbaed81 GIT binary patch literal 14180 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 + + + + + + + + #fff + + + diff --git a/platform/viewer/public/assets/coast-228x228.png b/platform/viewer/public/assets/coast-228x228.png new file mode 100644 index 0000000000000000000000000000000000000000..841bc040eb776b14870e616c171b523742ab02ab GIT binary patch literal 2573 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 DWNXV{ literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/firefox_app_128x128.png b/platform/viewer/public/assets/firefox_app_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa92bbf7390c831190caf1e4a9d844f06423e0f GIT binary patch literal 1540 zcmV+f2K)JmP))hsqZC)9@7s@u-<_#f8LO>Kz6QU>~A>OFLs6$|E zlrk|PG8wQyqCp080bwG<8%6%@V(4N*S8gN@PcH z|0iTfaY0jD&=eOmC0T}>Eh9lnvII970vUw8=7R)DY&E`p-`oq)wcK2h%)wyH|w|wtr)?9KiB0}1Z z92sQW_CDS^c#xz?S9iro&^KQa(r7fu!tn4g zKl;fXY~J)`;;2-XGB`NIpI$h?=;$a}_}AgX?0RH3y}g$blK{e5P!gu9jEtNnOCzUG zqpHNwcFs8rH=AUwUa!;MzJR1DE@;Zk7_Ly1_zVzSp(ybQu5gri3|B~sD=H%fB_6@$ zjSzz}H3JNnR|XhUC^0?3<&`iEWom*eG{pr?aY0jDD2z!cE)>Ef6c-9(5{e6j0LI5C zE+oRoC@yHqnG6>UzhfJF_w8eN zxJlZ|HQLVD?kNbJ}p$9qe(qAwmbt^u-oKJOi@ryg}CTY^uT`>|? zE|>Y@7d}s0TN`ORb?Ou^zw%dxhliPoWfxt<>eZ_d5z;m|IKGd1_ibnYbI&uK?(@&5+)?J9dv}nP*Is{vC5soczPFb> zPdrJIl!VQn-$t!gCrc-)RodGZ5XZuWWsV*@M%D)2eV5KpEFo!%3!37BrbG-E93>*S z;3zI=iVK?Jf~L687$2dy&`EeiYq!{ z3W^JwGCji;mNGrT6_(spd%z%=xlPCYn z;zf(dQfFr;&E`qssMYFx^1SoN+JzTf!29nXX9kS3P$FRu{OUn=_TNWe|4!=?Ix|GT{K;-C3o^aIlNnUyQ~%9c%B_0?;c0pTo2S9iro z*k@O-X5)s-X>V^QZOvwrz0W+$n{OQ?E>&gYhRa#Eb}gz(+6D#&*z?4b)M|B-CSBbX zC%BfOxU3l&Qe0MyF+zrv)?kFiXc0cl7j literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/firefox_app_512x512.png b/platform/viewer/public/assets/firefox_app_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..49fdba6684629c25333f9a6af22cf68a690afff9 GIT binary patch literal 7605 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 T`4zI_00000NkvXXu0mjff}lI_ literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/manifest.webapp b/platform/viewer/public/assets/manifest.webapp new file mode 100644 index 000000000..4f4b54017 --- /dev/null +++ b/platform/viewer/public/assets/manifest.webapp @@ -0,0 +1,14 @@ +{ + "version": "2.2.1", + "name": "OHIF Viewer", + "description": "OHIF Viewer", + "icons": { + "60": "/assets/firefox_app_60x60.png", + "128": "/assets/firefox_app_128x128.png", + "512": "/assets/firefox_app_512x512.png" + }, + "developer": { + "name": "OHIF Contributors", + "url": "https://github.com/ohif/viewers" + } +} diff --git a/platform/viewer/public/assets/mstile-144x144.png b/platform/viewer/public/assets/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..feb771f74125ebecbb22ec1cbd7743a57d02f4c4 GIT binary patch literal 1480 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farfwkY$#WAFU@$JFe{dZDjkAM9B z`S011U9oT8DNQzrHoCiQj?Wf3y#{ILTwbxYAsNCRSKXQ;dfEl_dJKgoJYeMXz1q+c zC32}@+m?oQm%RZ}Cfv8S+-+WJzDsx3n{9Vu{rV=qkC*hn zfBtNHe$%(w_fKzJFjy(U8C!got543>O?~FfokyNL5!q{NyCv)E0fu_(nijuF&n=w~ zACB3b#;YmG*(%Uscqvn9;%T7WC?GWie3ekyC4qQh(bd^|> zfML9nb%_IyAUld06kSWiCNLSg$n;!M3Q~Z_3`iGD1ZwiZz%WgTQVrP%2w;F z{jl@x{D<$4-%rcR>I##sd20G?-v^oW^L|Btj&OEt37wXj6S2Q9`}&%+4`;V~XabXq zhtu{uHNv;;clXYFdOCA^YuaSz_InBMyZ0}+m{DLEwq7dXxcL49UH|Hw7OYL`k*WX9 z;%~osHn+ImgrF7IUI|WgHFA*w`rY}+L7?*yOpS|dX>Q@+;%SX#v*zbt$S{dmBfu0J z8=Eroq8~T6@3UvmGTMbWr=C_VyHlH#43V&|?8>+MV(|E}@D{C> z1L}GAPlWHQv0ob0`RowW+Yr6!Gxt?YbeH?fcf765bES*Z?RPt8f4@_qJliZkF)gjF z?6lG2KL5N&$9I<%onO9v^M(x$+IC+K@_$(R`~Bn3-`^$FBsGB^+%dTD8CFIdi|om;*BuaxoPsJ&fbwQsidZ~DFbyrG?;qk4y6 zA209cUklB5JbgCXz>5pg8IrsK-22H!DSyf$qV?&*+v$FCMkyTr(R3?_k7P4B; zubFdip4_qH>K$9czi&$A;aT(K_5B}W?tOAgLnEhse83!^e0QyUTFx7lvo_1;PMdQ2 zPQl+&o6XhyzrV>VEDczDRhe_9B(rvS(bK85TWiE5*JcBBZc|HUd=4qezPREF|dSY@O1TaS?83{1OS&PqnQ8z literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/mstile-150x150.png b/platform/viewer/public/assets/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..1c7d5bb69f22ea038de32dad1c26f7ca7c63e05e GIT binary patch literal 3058 zcmdUxdpr|*AIEhHMf3={o>qihqFOB@mis|gqiBdOLq}#$W(>``BGL-YWu!*LqL7$t zsW|1jQ!APcO}o(Cwz*BrEIxKU6>! zdkYR`9BPqa43h`#b#-+g`bj4O+QY>Ysi#`Q)!1ycxEFfB@aH2J=f6KO&fV9D-3O!4 zZl$E8oRSXcPvJ+M+}+*HyR$0Imz9;gEf8nMoUPk6euw@$`{Sbzaf{F(yo{x3u96p7|Imu>s`2`^9uO;{b%7#TI%N zs-=sIOYr5fCBw@zPO%s|AK?aj?v01&gkl|)txk9NP@>Nw5H~FThRw)mk+MZh)nc*I`YZJ{k(WyZ){HK~% zoz`ghDgYH-80$El(8U<(9R0?mO7Eaz#@^-b2Z7x0Yf0B%H__gz(IO_Srfn%++Nqu( zB;|wAN=23Q$eQIxsY?@IsyS0hQ;(U^b;hkSjPhI!q451!D&WIYc-?N^(J*-JR7G)2 zFUFE8>_gRI7@*2B9zfTs;zWDO)IPa7qi-F2WTm}!3J*0pSv0$pYq)*b}%?mj`V$c zg*>R+@ze}!e(YUNOv-Ql2#qa3GG5Mp%dnXnCHMtPFg-Y`~G5RH^ve*$_YY6@b2&Y8b*TpX(>7gx#$UVGxS$;v)L6P z$(En9Wrm~^ifF=MFqi1L))DXKN~nT)RE$7uxgur&oT*KruL)XWK!}93dq@+w{Oo4^@nz*s2MbhvifIa zAE6v{u5|rJe#|t1n!nmX)7$*=v4Q;^2>o9J?p=EaTx^8fby&Sl=D@(#tjg!?Y=cI`#sU8Dy=h^J2!9_#W zZK9fwKZcGr$gP;^(~mlb#cn`;iLA$pYP$GSto$}b+zHR)8sfwvBb9aQD+3dAK^>Q{$ewOB}Ct9B!!Oc4{ z)T~2#f>v~1-0+xOv~m` zwlh~AKW+LBdKoq3{Ewz$IC|yic{sjz5qrH^Ca{AG2slsK?#oOMh5?z zW^zDZt+MnlbKOlFMdIiDp{t`3@c7+^=fXm8Y^8hM`x1gfU;UTramlL8C9rCny%$W& z@OkVefTM7;IWSXpr)MIrF4%%kAU$3>QAlqr5Aev}u zY92j$bcT@|;{5DERZv51f-oF}V%@H^{8_fqf7WK1YLu^W(aO3H0{Jel;OPc+t#&?h F?LPwbt&0Ev literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/mstile-310x150.png b/platform/viewer/public/assets/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5b912774ef9323b2087e6a58871074cd4191fe GIT binary patch literal 3556 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 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/mstile-70x70.png b/platform/viewer/public/assets/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..973d503f21a3e94f861373d91ae629b9fcd56b02 GIT binary patch literal 1163 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrUmL#~g;mMsd!YelU7arSfyl$kz1JD2!v zP1>o`?1Ecs_DyHLFZZPTZhX+1S+BCD?cF$~Q}~!L3uEB!y1kQmrK5LLycA007TS7} zNwF&PqSGX0_fH33^`A`J?6P*#rb$z^rxpJ^CAzJC-{jw%O$~di%QmfCI(71LzsvXU z`(JtG)}QwG)>WOjPf~MZV_Q61a(-=5yBGV_?q<%kpc7Av_I$plm1b)1Y&hxU#FDbI zkB2*hzkL55%vHa2`{v^7d9!Az37ZKTd4BnNcj=U0@9wz@9o3Mwm=I&gi>?GFC+`F?#-29)0v$<~#GyrPTbup4%%$-1pg^>U(?JqV$(K7ps!_w~2-} zQ#?LgoK@PQ>v2VmyG2K?|MQi}{sCcOZdcyj*?IW<{y$!N(;xqru+0+T<$cW2)Ucuy z7zDT9r)!9CLG)N`ZZY-6;hPhRKqUATVTeM*x;!krye`|fOQw){L#eeOAdWfF?fUk)+F z)%+B_^pa<3(YrsaQPE~aUv3n>TVD2~;L+5=YxSEtgDk7x*<1|`^~ugkdcW^4D9SG^ zFal{Pv7WkU(V{s?JaRJ2cQ0=bdcC8pcNY69Dn;SfZ~wfnURXFK$k&(mXN~?*kLAWT z7C912zkTQsytAjWd&5zVo7eoeU%a+!=Co^OMmKo^rHv{$*6T(3cxOu=-Er@xXSqNB z>H9Tvh1Khy#QnEj^ev;-_WZfLw0FgyIin}6@D<~@nas<3W`^C=t}d=c)6PG){Bk!@ zFJ_O+Mis;4UmZvX%Q literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/yandex-browser-50x50.png b/platform/viewer/public/assets/yandex-browser-50x50.png new file mode 100644 index 0000000000000000000000000000000000000000..b934bc20c3b5128929aab68ab6d5cf4c6eb71e17 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2o;fFuwG3aSW+oynFDx_vJ!~10TOX zznRX?Yotv*o9ZK5=A#peEU|G zZ&hejr$kS@d~)eq)4vf>6)qf%p-&HOb!xop)#`6O|K;&dmzdbEYVG9^^SVF9o+aR4 zQ<9Q}A{rDlis8c`^Hnxi&tn(@9X#9QU0CJb5eq-iNy)e*DT!u8h#qKEdn#N zrgs=7g|5EtIZ1if(_+g{KV`yRzSR8v`~HRwi4|J$W!isMA5NPLME@NNl#(X&PW<`v z_K_I}S8e(}HEONj_M)9fA__%To7kqlKI|ScHBO1GyPJDWe$J)5?Hi*iH=X$`t{)hx z7b7dT%*68KuVZRq&d$v?H3jp{^Y35uKJwttn;sR<7st;(>BwUaXZvw4W5P1cu*_LT z*2c}P4_eS+g5Zm2j>f!IT`dmxnbZWEy;A#+pYG0Z-)QxI&f--uStfM_*?D~zCkn3F rbW`X3_H7$DS|7DMYCt#U!IAuTyQVJoj}W#2#yx|ltDnm{r-UW|t@`t3 literal 0 HcmV?d00001 diff --git a/platform/viewer/public/assets/yandex-browser-manifest.json b/platform/viewer/public/assets/yandex-browser-manifest.json new file mode 100644 index 000000000..ce9b1c12e --- /dev/null +++ b/platform/viewer/public/assets/yandex-browser-manifest.json @@ -0,0 +1,9 @@ +{ + "version": "2.2.1", + "api_version": 1, + "layout": { + "logo": "/assets/yandex-browser-50x50.png", + "color": "#fff", + "show_title": true + } +} \ No newline at end of file diff --git a/platform/viewer/public/html-templates/index.html b/platform/viewer/public/html-templates/index.html index 1fcdaa31c..de7f23d4f 100644 --- a/platform/viewer/public/html-templates/index.html +++ b/platform/viewer/public/html-templates/index.html @@ -1,35 +1,74 @@ + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - OHIF Viewer + OHIF Viewer - - + + - - + - + - - - -
- + + +
+ diff --git a/platform/viewer/public/html-templates/rollbar.html b/platform/viewer/public/html-templates/rollbar.html index a67c29a5a..4d67c46ae 100644 --- a/platform/viewer/public/html-templates/rollbar.html +++ b/platform/viewer/public/html-templates/rollbar.html @@ -1,17 +1,53 @@ - - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OHIF Viewer diff --git a/platform/viewer/public/init-service-worker.js b/platform/viewer/public/init-service-worker.js new file mode 100644 index 000000000..8fecc429a --- /dev/null +++ b/platform/viewer/public/init-service-worker.js @@ -0,0 +1,52 @@ +// https://developers.google.com/web/tools/workbox/modules/workbox-window +// All major browsers that support service worker also support native JavaScript +// modules, so it's perfectly fine to serve this code to any browsers +// (older browsers will just ignore it) +// +import { Workbox } from 'https://storage.googleapis.com/workbox-cdn/releases/5.0.0-beta.1/workbox-window.prod.mjs'; + +var supportsServiceWorker = 'serviceWorker' in navigator; +var isNotLocalDevelopment = + ['localhost', '127'].indexOf(location.hostname) === -1; + +if (supportsServiceWorker && isNotLocalDevelopment) { + const swFileLocation = window.PUBLIC_URL + 'sw.js'; + const wb = new Workbox(swFileLocation); + + // Add an event listener to detect when the registered + // service worker has installed but is waiting to activate. + wb.addEventListener('waiting', event => { + // customize the UI prompt accordingly. + const isFirstTimeUpdatedServiceWorkerIsWaiting = + event.wasWaitingBeforeRegister === false; + console.log( + 'isFirstTimeUpdatedServiceWorkerIsWaiting', + isFirstTimeUpdatedServiceWorkerIsWaiting + ); + + // Assumes your app has some sort of prompt UI element + // that a user can either accept or reject. + // const prompt = createUIPrompt({ + // onAccept: async () => { + // Assuming the user accepted the update, set up a listener + // that will reload the page as soon as the previously waiting + // service worker has taken control. + wb.addEventListener('controlling', event => { + window.location.reload(); + }); + + // Send a message telling the service worker to skip waiting. + // This will trigger the `controlling` event handler above. + // Note: for this to work, you have to add a message + // listener in your service worker. See below. + wb.messageSW({ type: 'SKIP_WAITING' }); + // }, + + // onReject: () => { + // prompt.dismiss(); + // }, + // }); + }); + + wb.register(); +} diff --git a/platform/viewer/public/manifest.json b/platform/viewer/public/manifest.json index f2346d243..c5224ff06 100644 --- a/platform/viewer/public/manifest.json +++ b/platform/viewer/public/manifest.json @@ -1,8 +1,59 @@ { - "short_name": "react-cornerstone-viewport", - "name": "react-cornerstone-viewport", + "name": "OHIF Viewer", + "short_name": "Viewer", + "description": "OHIF Viewer", + "dir": "auto", + "lang": "en-US", + "orientation": "any", + "icons": [ + { + "src": "/assets/android-chrome-36x36.png", + "sizes": "36x36", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-48x48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-256x256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "/assets/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], "start_url": "./index.html", + "background_color": "#000000", "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" + "theme_color": "#20a5d6" } diff --git a/platform/viewer/src/service-worker.js b/platform/viewer/src/service-worker.js new file mode 100644 index 000000000..69391afee --- /dev/null +++ b/platform/viewer/src/service-worker.js @@ -0,0 +1,67 @@ +// https://developers.google.com/web/tools/workbox/guides/troubleshoot-and-debug +importScripts( + 'https://storage.googleapis.com/workbox-cdn/releases/5.0.0-beta.1/workbox-sw.js' +); + +// Install newest +// https://developers.google.com/web/tools/workbox/modules/workbox-core +workbox.core.skipWaiting(); +workbox.core.clientsClaim(); + +// Cache static assets that aren't precached +workbox.routing.registerRoute( + /\.(?:js|css)$/, + new workbox.strategies.StaleWhileRevalidate({ + cacheName: 'static-resources', + }) +); + +// Cache the Google Fonts stylesheets with a stale-while-revalidate strategy. +workbox.routing.registerRoute( + /^https:\/\/fonts\.googleapis\.com/, + new workbox.strategies.StaleWhileRevalidate({ + cacheName: 'google-fonts-stylesheets', + }) +); + +// Cache the underlying font files with a cache-first strategy for 1 year. +workbox.routing.registerRoute( + /^https:\/\/fonts\.gstatic\.com/, + new workbox.strategies.CacheFirst({ + cacheName: 'google-fonts-webfonts', + plugins: [ + new workbox.cacheableResponse.CacheableResponsePlugin({ + statuses: [0, 200], + }), + new workbox.expiration.ExpirationPlugin({ + maxAgeSeconds: 60 * 60 * 24 * 365, // 1 Year + maxEntries: 30, + }), + ], + }) +); + +// MESSAGE HANDLER +self.addEventListener('message', event => { + if (event.data && event.data.type === 'SKIP_WAITING') { + switch (event.data.type) { + case 'SKIP_WAITING': + // TODO: We'll eventually want this to be user prompted + // workbox.core.skipWaiting(); + // workbox.core.clientsClaim(); + // TODO: Global notification to indicate incoming reload + break; + + default: + console.warn(`SW: Invalid message type: ${event.data.type}`); + } + } +}); + +workbox.precaching.precacheAndRoute(self.__WB_MANIFEST); + +// TODO: Cache API +// https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api +// Store DICOMs? +// Clear Service Worker cache? +// navigator.storage.estimate().then(est => console.log(est)); (2GB?) diff --git a/yarn.lock b/yarn.lock index 4bc69dc5a..02eed472c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -106,7 +106,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@>=7.2.2", "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.5.0": +"@babel/core@>=7.2.2", "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.5.0", "@babel/core@^7.5.5": version "7.6.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff" integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ== @@ -876,7 +876,7 @@ core-js "^2.6.5" regenerator-runtime "^0.13.2" -"@babel/polyfill@^7.2.5": +"@babel/polyfill@^7.0.0", "@babel/polyfill@^7.2.5": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.6.0.tgz#6d89203f8b6cd323e8d946e47774ea35dc0619cc" integrity sha512-q5BZJI0n/B10VaQQvln1IlDK3BTBJFbADx7tv+oXDPIDZuTo37H5Adb9jhlXm/fEN4Y7/64qD9mnrJJG7rmaTw== @@ -987,7 +987,7 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-env@^7.4.4", "@babel/preset-env@^7.4.5", "@babel/preset-env@^7.5.0": +"@babel/preset-env@^7.4.4", "@babel/preset-env@^7.4.5", "@babel/preset-env@^7.5.0", "@babel/preset-env@^7.5.5": version "7.6.3" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.3.tgz#9e1bf05a2e2d687036d24c40e4639dc46cef2271" integrity sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ== @@ -1100,7 +1100,7 @@ pirates "^4.0.0" source-map-support "^0.5.9" -"@babel/runtime@7.1.2", "@babel/runtime@7.5.5", "@babel/runtime@7.6.0", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.3": +"@babel/runtime@7.1.2", "@babel/runtime@7.5.5", "@babel/runtime@7.6.0", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.3": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== @@ -1277,7 +1277,7 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.3.2.tgz#91e7188edebc5d876f0b91a860f555ff06f0782b" integrity sha512-NP5SG4bzix+EtSMtcudp8TvI0lB46mXNo8uFpTDw6tqxGx4z5yx+giIunEFA0Z7oUO4DuWrOJV9xqR2tJVEdyA== -"@hapi/joi@^15.0.0", "@hapi/joi@^15.0.3": +"@hapi/joi@^15.0.0", "@hapi/joi@^15.0.3", "@hapi/joi@^15.1.0": version "15.1.1" resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== @@ -1447,6 +1447,258 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@jimp/bmp@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.5.4.tgz#b7b375aa774f26154912569864d5466e71333ef1" + integrity sha512-P/ezH1FuoM3FwS0Dm2ZGkph4x5/rPBzFLEZor7KQkmGUnYEIEG4o0BUcAWFmJOp2HgzbT6O2SfrpJNBOcVACzQ== + dependencies: + "@jimp/utils" "^0.5.0" + bmp-js "^0.1.0" + core-js "^2.5.7" + +"@jimp/core@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.5.4.tgz#69d2d9eef1a6a9d62127171e2688cf21bc0ee77c" + integrity sha512-n3uvHy2ndUKItmbhnRO8xmU8J6KR+v6CQxO9sbeUDpSc3VXc1PkqrA8ZsCVFCjnDFcGBXL+MJeCTyQzq5W9Crw== + dependencies: + "@jimp/utils" "^0.5.0" + any-base "^1.1.0" + buffer "^5.2.0" + core-js "^2.5.7" + exif-parser "^0.1.12" + file-type "^9.0.0" + load-bmfont "^1.3.1" + mkdirp "0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" + +"@jimp/custom@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.5.4.tgz#393338efbf15d158ecf6639cb1b196c70411fddd" + integrity sha512-tLfyJoyouDl2J3RPFGfDzTtE+4S8ljqJUmLzy/cmx1n7+xS5TpLPdPskp7UaeAfNTqdF4CNAm94KYoxTZdj2mg== + dependencies: + "@jimp/core" "^0.5.4" + core-js "^2.5.7" + +"@jimp/gif@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.5.0.tgz#7543870b3d744c9758da76ca43fac4ee48fd6a00" + integrity sha512-HVB4c7b8r/yCpjhCjVNPRFLuujTav5UPmcQcFJjU6aIxmne6e29rAjRJEv3UMamHDGSu/96PzOsPZBO5U+ZGww== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + omggif "^1.0.9" + +"@jimp/jpeg@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.5.4.tgz#ff52669f801e9d82041ba6322ee781c344e75241" + integrity sha512-YaPWm+YSGCThNE/jLMckM3Qs6uaMxd/VsHOnEaqu5tGA4GFbfVaWHjKqkNGAFuiNV+HdgKlNcCOF3of+elvzqQ== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + jpeg-js "^0.3.4" + +"@jimp/plugin-blit@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.5.4.tgz#8c4f46e00c0a4ca9d5c592713de7575528485e59" + integrity sha512-WqDYOugv76hF1wnKy7+xPGf9PUbcm9vPW28/jHWn1hjbb2GnusJ2fVEFad76J/1SPfhrQ2Uebf2QCWJuLmOqZg== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-blur@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.5.0.tgz#c8222bdae8eb4cc86613c0adbcb26a92829739a2" + integrity sha512-5k0PXCA1RTJdITL7yMAyZ5tGQjKLHqFvwdXj/PCoBo5PuMyr0x6qfxmQEySixGk/ZHdDxMi80vYxHdKHjNNgjg== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-color@^0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.5.5.tgz#68f9652d5065d3380a9967911a7e529325d230d6" + integrity sha512-hWeOqNCmLguGYLhSvBrpfCvlijsMEVaLZAOod62s1rzWnujozyKOzm2eZe+W3To6mHbp5RGJNVrIwHBWMab4ug== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + tinycolor2 "^1.4.1" + +"@jimp/plugin-contain@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.5.4.tgz#1dc258db36d50e23400e0644b7f2694fd74fbf60" + integrity sha512-8YJh4FI3S69unri0nJsWeqVLeVGA77N2R0Ws16iSuCCD/5UnWd9FeWRrSbKuidBG6TdMBaG2KUqSYZeHeH9GOQ== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-cover@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.5.4.tgz#a086243b151db9eef09e657fbe8bc3ef8683662e" + integrity sha512-2Rur7b44WiDDgizUI2M2uYWc1RmfhU5KjKS1xXruobjQ0tXkf5xlrPXSushq0hB6Ne0Ss6wv0+/6eQ8WeGHU2w== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-crop@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.5.4.tgz#124cf52aa07e36c7a33f39e2e86e78166c300ca7" + integrity sha512-6t0rqn4VazquGk48tO6hFBrQ+nkvC+A1RnR6UM/m8ZtG2/yjpwF0MXcpgJI1Fb+a4Ug7BY1fu2GPcZOhnAVK/g== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-displace@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.5.0.tgz#cb75d8588bdee45c1bdb1bec2323705d0e53d060" + integrity sha512-Bec7SQvnmKia4hOXEDjeNVx7vo/1bWqjuV6NO8xbNQcAO3gaCl91c9FjMDhsfAVb0Ou6imhbIuFPrLxorXsecQ== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-dither@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.5.0.tgz#0f1f6b7dcd5aba8f908bbd4b60685fc29cc6a3ed" + integrity sha512-We2WJQsD/Lm8oqBFp/vUv9/5r2avyenL+wNNu/s2b1HqA5O4sPGrjHy9K6vIov0NroQGCQ3bNznLkTmjiHKBcg== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-flip@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.5.0.tgz#4a973c9c4bdc6dbcc7da66204a2bb2b12feb9381" + integrity sha512-D/ehBQxLMNR7oNd80KXo4tnSET5zEm5mR70khYOTtTlfti/DlLp3qOdjPOzfLyAdqO7Ly4qCaXrIsnia+pfPrA== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-gaussian@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.5.0.tgz#02c9f07516108e01ba0f2938289b08e6e865c2c9" + integrity sha512-Ln4kgxblv0/YzLBDb/J8DYPLhDzKH87Y8yHh5UKv3H+LPKnLaEG3L4iKTE9ivvdocnjmrtTFMYcWv2ERSPeHcg== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-invert@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.5.0.tgz#4496d2d67ab498c8fa3e89c4b6dd5892e7f14b9b" + integrity sha512-/vyKeIi3T7puf+8ruWovTjzDC585EnTwJ+lGOOUYiNPsdn4JDFe1B3xd+Ayv9aCQbXDIlPElZaM9vd/+wqDiIQ== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-mask@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.5.4.tgz#ac4c2625e328818da1443c92bcb9cabb537c74ba" + integrity sha512-mUJ04pCrUWaJGXPjgoVbzhIQB8cVobj2ZEFlGO3BEAjyylYMrdJlNlsER8dd7UuJ2L/a4ocWtFDdsnuicnBghQ== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-normalize@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.5.4.tgz#d60aeb637bcaecadf654c9621e291d6eed12fa19" + integrity sha512-Q5W0oEz9wxsjuhvHAJynI/OqXZcmqEAuRONQId7Aw5ulCXSOg9C4y2a67EO7aZAt55T+zMVxI9UpVUpzVvO6hw== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-print@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.5.4.tgz#00524a7424a4e12a17764d349485dd1120a43728" + integrity sha512-DOZr5TY9WyMWFBD37oz7KpTEBVioFIHQF/gH5b3O5jjFyj4JPMkw7k3kVBve9lIrzIYrvLqe0wH59vyAwpeEFg== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + load-bmfont "^1.4.0" + +"@jimp/plugin-resize@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.5.4.tgz#c9b2c4949ee080df3fa2ca587539e2ce8588b8af" + integrity sha512-lXNprNAT0QY1D1vG/1x6urUTlWuZe2dfL29P81ApW2Yfcio471+oqo45moX5FLS0q24xU600g7cHGf2/TzqSfA== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-rotate@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.5.4.tgz#6c4c560779bc3ebf291db9a5095158d32a2a4af3" + integrity sha512-SIdUpMc8clObMchy8TnjgHgcXEQM992z5KavgiuOnCuBlsmSHtE3MrXTOyMW0Dn3gqapV9Y5vygrLm/BVtCCsg== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugin-scale@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.5.0.tgz#095f937e5a4887481b3074f5cd6a144d8f4f815e" + integrity sha512-5InIOr3cNtrS5aQ/uaosNf28qLLc0InpNGKFmGFTv8oqZqLch6PtDTjDBZ1GGWsPdA/ljy4Qyy7mJO1QBmgQeQ== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + +"@jimp/plugins@^0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.5.5.tgz#e97fa368d69ad7718d5a2a9b6ffa8e6cc1e4264d" + integrity sha512-9oF6LbSM/K7YkFCcxaPaD8NUkL/ZY8vT8NIGfQ/NpX+tKQtcsLHcRavHpUC+M1xXShv/QGx9OdBV/jgiu82QYg== + dependencies: + "@jimp/plugin-blit" "^0.5.4" + "@jimp/plugin-blur" "^0.5.0" + "@jimp/plugin-color" "^0.5.5" + "@jimp/plugin-contain" "^0.5.4" + "@jimp/plugin-cover" "^0.5.4" + "@jimp/plugin-crop" "^0.5.4" + "@jimp/plugin-displace" "^0.5.0" + "@jimp/plugin-dither" "^0.5.0" + "@jimp/plugin-flip" "^0.5.0" + "@jimp/plugin-gaussian" "^0.5.0" + "@jimp/plugin-invert" "^0.5.0" + "@jimp/plugin-mask" "^0.5.4" + "@jimp/plugin-normalize" "^0.5.4" + "@jimp/plugin-print" "^0.5.4" + "@jimp/plugin-resize" "^0.5.4" + "@jimp/plugin-rotate" "^0.5.4" + "@jimp/plugin-scale" "^0.5.0" + core-js "^2.5.7" + timm "^1.6.1" + +"@jimp/png@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.5.4.tgz#4ed02435ab8ac219b618e9578dfd60626b3b5dd4" + integrity sha512-J2NU7368zihF1HUZdmpXsL/Hhyf+I3ubmK+6Uz3Uoyvtk1VS7dO3L0io6fJQutfWmPZ4bvu6Ry022oHjbi6QCA== + dependencies: + "@jimp/utils" "^0.5.0" + core-js "^2.5.7" + pngjs "^3.3.3" + +"@jimp/tiff@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.5.4.tgz#ce5370283eba390ff32b6fd86b9259d7cf3e2315" + integrity sha512-hr7Zq3eWjAZ+itSwuAObIWMRNv7oHVM3xuEDC2ouP7HfE7woBtyhCyfA7u12KlgtM57gKWeogXqTlewRGVzx6g== + dependencies: + core-js "^2.5.7" + utif "^2.0.1" + +"@jimp/types@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.5.4.tgz#c312e415ec9c4a35770e89b9eee424a96be60ab8" + integrity sha512-nbZXM6TsdpnYHIBd8ZuoxGpvmxc2SqiggY30/bhOP/VJQoDBzm2v/20Ywz5M0snpIK2SdYG52eZPNjfjqUP39w== + dependencies: + "@jimp/bmp" "^0.5.4" + "@jimp/gif" "^0.5.0" + "@jimp/jpeg" "^0.5.4" + "@jimp/png" "^0.5.4" + "@jimp/tiff" "^0.5.4" + core-js "^2.5.7" + timm "^1.6.1" + +"@jimp/utils@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.5.0.tgz#ecb33259c75238053d6c7706a3e91f657dbabf91" + integrity sha512-7H9RFVU+Li2XmEko0GGyzy7m7JjSc7qa+m8l3fUzYg2GtwASApjKF/LSG2AUQCUmDKFLdfIEVjxvKvZUJFEmpw== + dependencies: + core-js "^2.5.7" + "@js.properties/properties@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@js.properties/properties/-/properties-0.4.0.tgz#3f98b784ab6fe9b31fd3c1637fedbfa2ff320185" @@ -2516,6 +2768,14 @@ escape-string-regexp "^1.0.5" lodash.deburr "^4.1.0" +"@surma/rollup-plugin-off-main-thread@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.1.1.tgz#f30bd28de9c5ec614ab9d5143eb1bd809a15520c" + integrity sha512-ZvxbzJ6oQusBnW2CDYpdNZ2yhhHlzfiREcKBgtCfGjkhNnRQcak1qh+3Y61nGq9OI3IVsizh/eBjRJVAlHprwA== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + "@svgr/babel-plugin-add-jsx-attribute@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" @@ -2679,6 +2939,11 @@ dependencies: "@babel/types" "^7.3.0" +"@types/estree@*": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -2759,6 +3024,13 @@ "@types/prop-types" "*" csstype "^2.2.0" +"@types/resolve@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + "@types/shallowequal@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/shallowequal/-/shallowequal-1.1.1.tgz#aad262bb3f2b1257d94c71d545268d592575c9b1" @@ -3117,6 +3389,11 @@ acorn@^6.0.1, acorn@^6.0.7, acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== +acorn@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + address@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" @@ -3294,6 +3571,11 @@ ansicolors@~0.3.2: resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -3630,6 +3912,11 @@ attr-accept@^1.1.3: dependencies: core-js "^2.5.0" +author-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" + integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= + autoprefixer@^9.1.3, autoprefixer@^9.5.1, autoprefixer@^9.6.0, autoprefixer@^9.6.1: version "9.7.0" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.0.tgz#905ec19e50f04545fe9ff131182cc9ab25246901" @@ -4038,6 +4325,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bignumber.js@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8" + integrity sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg= + binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -4048,6 +4340,13 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== +bl@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88" + integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A== + dependencies: + readable-stream "^3.0.1" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -4075,6 +4374,21 @@ blueimp-md5@2.10.0: resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.10.0.tgz#02f0843921f90dca14f5b8920a38593201d6964d" integrity sha512-EkNUOi7tpV68TqjpiUz9D9NcT8um2+qtgntmMbi5UKssVX2m/2PLqotcric0RE63pB3HPN/fjf3cKHN2ufGSUQ== +bmp-js@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.1.tgz#5ad0147099d13a9f38aa7b99af1d6e78666ed37f" + integrity sha1-WtAUcJnROp84qnuZrx1ueGZu038= + +bmp-js@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a" + integrity sha1-ZBE+nHzxICs3btYHvzBibr5XsYo= + +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" + integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -4287,11 +4601,34 @@ buble@0.19.6: regexpu-core "^4.2.0" vlq "^1.0.0" +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -4321,6 +4658,19 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.2.0: + version "5.4.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" + integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" + integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -4468,7 +4818,7 @@ cache-loader@^1.2.2: neo-async "^2.5.0" schema-utils "^0.4.2" -cache-loader@^3.0.0: +cache-loader@^3.0.0, cache-loader@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af" integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw== @@ -4970,6 +5320,11 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + clone-deep@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" @@ -4997,6 +5352,11 @@ clone-regexp@^2.1.0: dependencies: is-regexp "^2.0.0" +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -5007,6 +5367,15 @@ clone@^2.1.1, clone@^2.1.2: resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -5118,7 +5487,7 @@ color@3.0.x: color-convert "^1.9.1" color-string "^1.5.2" -color@^3.0.0: +color@^3.0.0, color@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== @@ -5136,7 +5505,7 @@ colors@1.3.3: resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== -colors@^1.2.1, colors@^1.3.2: +colors@^1.2.1, colors@^1.3.2, colors@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -5568,6 +5937,11 @@ core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.7, core-js@^2.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== +core-js@^3.0.1: + version "3.3.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.3.5.tgz#58d20f48a95a07304b62ff752742b82b56431ed8" + integrity sha512-0J3K+Par/ZydhKg8pEiTcK/9d65/nqJOzY62uMkjeBmt05fDOt/khUVjDdh8TpeIuGQDy1yLDDCjiWN/8pFIuw== + core-js@^3.2.1: version "3.3.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.3.4.tgz#6b0a23392958317bfb46e40b090529a923add669" @@ -6239,6 +6613,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -6424,7 +6805,7 @@ detect-indent@^5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -detect-libc@^1.0.2: +detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -7104,7 +7485,7 @@ encoding@^0.1.11, encoding@^0.1.12: dependencies: iconv-lite "~0.4.13" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -7251,6 +7632,11 @@ es6-promise-pool@^2.5.0: resolved "https://registry.yarnpkg.com/es6-promise-pool/-/es6-promise-pool-2.5.0.tgz#147c612b36b47f105027f9d2bf54a598a99d9ccb" integrity sha1-FHxhKza0fxBQJ/nSv1SlmKmdnMs= +es6-promise@^3.0.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM= + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -7688,6 +8074,11 @@ executable@4.1.1: dependencies: pify "^2.2.0" +exif-parser@^0.1.12, exif-parser@^0.1.9: + version "0.1.12" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" @@ -7716,6 +8107,11 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -7938,6 +8334,40 @@ fault@^1.0.1: dependencies: format "^0.2.2" +favicons-webpack-plugin@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/favicons-webpack-plugin/-/favicons-webpack-plugin-1.0.2.tgz#d9e66cff6f2b83e501c4b78702ad01403afd7cd9" + integrity sha512-iLsbVEhD4gimlI7B8Q8MnouUSebYK5UFFUNk8BUq249gHrJZ5wijoPdAuMOgEenw8dm53hPWqoKAt5UCVsoLrg== + dependencies: + cache-loader "^3.0.1" + camelcase "^5.3.1" + favicons "5.4.1" + find-cache-dir "^2.1.0" + find-root "^1.1.0" + loader-utils "^1.2.3" + parse-author "^2.0.0" + +favicons@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/favicons/-/favicons-5.4.1.tgz#45d1f63d6d0f1bf4e70eb91cdb9c207c535348d6" + integrity sha512-lN8XEGDLtqxBR0erBSeNxD+Jd/ozP0iUCiwR2jTzHnVuVz7C477ncXV/b64O5U4VAtfSXAEOvGsvwTBrfK49dQ== + dependencies: + clone "^2.1.2" + colors "^1.3.3" + core-js "^3.0.1" + image-size "^0.7.4" + jimp "^0.5.6" + jsontoxml "^1.0.1" + lodash.defaultsdeep "^4.6.0" + require-directory "^2.1.1" + sharp "^0.22.1" + through2 "^3.0.1" + tinycolor2 "^1.4.1" + to-ico "^1.1.5" + util.promisify "^1.0.0" + vinyl "^2.2.0" + xml2js "^0.4.19" + faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -8048,6 +8478,16 @@ file-selector@^0.1.11: dependencies: tslib "^1.9.0" +file-type@^3.1.0, file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" + integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + filename-reserved-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" @@ -8145,6 +8585,11 @@ find-cache-dir@^3.0.0: make-dir "^3.0.0" pkg-dir "^4.1.0" +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -8245,6 +8690,13 @@ follow-redirects@^1.0.0, follow-redirects@^1.9.0: dependencies: debug "^3.0.0" +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -8353,6 +8805,16 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-copy-file-sync@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz#11bf32c096c10d126e5f6b36d06eece776062918" + integrity sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ== + fs-extra@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" @@ -8362,15 +8824,6 @@ fs-extra@5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -8574,6 +9027,14 @@ get-stdin@^7.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== +get-stream@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -8698,6 +9159,11 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + github-slugger@^1.0.0, github-slugger@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508" @@ -8811,6 +9277,14 @@ global@^4.3.0: min-document "^2.19.0" process "^0.11.10" +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -9597,6 +10071,16 @@ ignore@^5.0.6, ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== +image-size@^0.5.0, image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +image-size@^0.7.4: + version "0.7.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.7.5.tgz#269f357cf5797cb44683dfa99790e54c705ead04" + integrity sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g== + image-size@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.8.3.tgz#f0b568857e034f29baffd37013587f2c0cad8b46" @@ -9604,11 +10088,6 @@ image-size@^0.8.2: dependencies: queue "6.0.1" -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -9857,6 +10336,11 @@ iota-array@^1.0.0: resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" integrity sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc= +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -9958,7 +10442,7 @@ is-buffer@^2.0.0, is-buffer@^2.0.2, is-buffer@~2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -is-callable@^1.1.4: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -10077,6 +10561,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -10126,6 +10615,11 @@ is-lower-case@^1.1.0: dependencies: lower-case "^1.1.0" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -10827,6 +11321,54 @@ jest@^24.8.0: import-local "^2.0.0" jest-cli "^24.9.0" +jimp@^0.2.21: + version "0.2.28" + resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2" + integrity sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI= + dependencies: + bignumber.js "^2.1.0" + bmp-js "0.0.3" + es6-promise "^3.0.2" + exif-parser "^0.1.9" + file-type "^3.1.0" + jpeg-js "^0.2.0" + load-bmfont "^1.2.3" + mime "^1.3.4" + mkdirp "0.5.1" + pixelmatch "^4.0.0" + pngjs "^3.0.0" + read-chunk "^1.0.1" + request "^2.65.0" + stream-to-buffer "^0.1.0" + tinycolor2 "^1.1.2" + url-regex "^3.0.0" + +jimp@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.5.6.tgz#dd114decd060927ae439f2e0980df619c179f912" + integrity sha512-H0nHTu6KgAgQzDxa38ew2dXbnRzKm1w5uEyhMIxqwCQVjwgarOjjkV/avbNLxfxRHAFaNp4rGIc/qm8P+uhX9A== + dependencies: + "@babel/polyfill" "^7.0.0" + "@jimp/custom" "^0.5.4" + "@jimp/plugins" "^0.5.5" + "@jimp/types" "^0.5.4" + core-js "^2.5.7" + +jpeg-js@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.1.2.tgz#135b992c0575c985cfa0f494a3227ed238583ece" + integrity sha1-E1uZLAV1yYXPoPSUoyJ+0jhYPs4= + +jpeg-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482" + integrity sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII= + +jpeg-js@^0.3.4: + version "0.3.6" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.6.tgz#c40382aac9506e7d1f2d856eb02f6c7b2a98b37c" + integrity sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw== + js-base64@^2.1.8: version "2.5.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" @@ -10935,13 +11477,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - json-stringify-safe@5.0.1, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -10988,6 +11523,11 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= +jsontoxml@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/jsontoxml/-/jsontoxml-1.0.1.tgz#07fff7f6bfbfa1097d779aec7f041b5046075e70" + integrity sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ== + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -11428,6 +11968,20 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" +load-bmfont@^1.2.3, load-bmfont@^1.3.1, load-bmfont@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" + integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + load-cfg@^0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/load-cfg/-/load-cfg-0.11.1.tgz#c317f00cfa573f89caca6956d5c10bf7c45b76d9" @@ -11632,6 +12186,11 @@ lodash.defaults@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= +lodash.defaultsdeep@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + lodash.filter@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" @@ -11899,7 +12458,7 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== -magic-string@^0.25.1: +magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2: version "0.25.4" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw== @@ -12315,7 +12874,7 @@ mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.17, mime-types@~2.1.19, dependencies: mime-db "1.40.0" -mime@1.6.0, mime@^1.4.1: +mime@1.6.0, mime@^1.3.4, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -12335,6 +12894,11 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.0.0.tgz#996a51c60adf12cb8a87d7fb8ef24c2f3d5ebb46" + integrity sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -12664,6 +13228,11 @@ nanotiming@^7.2.0: nanoassert "^1.1.0" nanoscheduler "^1.0.2" +napi-build-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz#1381a0f92c39d66bf19852e7873432fc2123e508" + integrity sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -12718,6 +13287,13 @@ no-case@^2.2.0, no-case@^2.3.2: dependencies: lower-case "^1.1.1" +node-abi@^2.7.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.12.0.tgz#40e9cfabdda1837863fa825e7dfa0b15686adf6f" + integrity sha512-VhPBXCIcvmo/5K8HPmnWJyyhvgKxnHTUMXR/XwGHV68+wrgkzST4UmQrY/XszSWA5dtnXpNp528zkcyJ/pzVcw== + dependencies: + semver "^5.4.1" + node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -12895,6 +13471,11 @@ node-version@^1.1.3: resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" integrity sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ== +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -13022,7 +13603,7 @@ npm-run-path@^3.0.0: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -13179,6 +13760,11 @@ ol@^5.3.0: pixelworks "1.1.0" rbush "2.0.2" +omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + on-finished@^2.3.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -13519,7 +14105,7 @@ pako@1.0.6: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg== -pako@^1.0.10, pako@~1.0.2, pako@~1.0.5: +pako@^1.0.10, pako@^1.0.5, pako@~1.0.2, pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== @@ -13559,6 +14145,31 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-author@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" + integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= + dependencies: + author-regex "^1.0.0" + +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + parse-color@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" @@ -13583,6 +14194,14 @@ parse-github-repo-url@^1.3.0: resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= +parse-headers@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34" + integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg== + dependencies: + for-each "^0.3.3" + string.prototype.trim "^1.1.2" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -13621,6 +14240,13 @@ parse-path@^4.0.0: is-ssh "^1.3.0" protocols "^1.4.0" +parse-png@^1.0.0, parse-png@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-1.1.2.tgz#f5c2ad7c7993490986020a284c19aee459711ff2" + integrity sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I= + dependencies: + pngjs "^3.2.0" + parse-url@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" @@ -13833,6 +14459,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + php-parser@3.0.0-prerelease.7: version "3.0.0-prerelease.7" resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.0.0-prerelease.7.tgz#1a90d55e43af69588042f6d5169d5d335af739e1" @@ -13877,6 +14508,13 @@ pirates@^4.0.0, pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" +pixelmatch@^4.0.0, pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + pixelworks@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pixelworks/-/pixelworks-1.1.0.tgz#1f095ad48dca8bf8a1c8258e0092031a44f22ca5" @@ -13930,6 +14568,11 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +pngjs@^3.0.0, pngjs@^3.2.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + polished@^3.3.0: version "3.4.1" resolved "https://registry.yarnpkg.com/polished/-/polished-3.4.1.tgz#1eb5597ec1792206365635811d465751f5cbf71c" @@ -14710,6 +15353,27 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.1 source-map "^0.6.1" supports-color "^6.1.0" +prebuild-install@^5.3.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.2.tgz#6392e9541ac0b879ef0f22b3d65037417eb2035e" + integrity sha512-INDfXzTPnhT+WYQemqnAXlP7SvfiFMopMozSgXCZ+RDLb279gKfIuLk4o7PgEawLp3WrMgIYGBpkxpraROHsSA== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -14732,7 +15396,7 @@ prettier@^1.14.2, prettier@^1.17.0, prettier@^1.18.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== -pretty-bytes@^5.1.0: +pretty-bytes@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== @@ -14775,16 +15439,16 @@ private@^0.1.6, private@^0.1.8, private@~0.1.5: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - process.argv@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/process.argv/-/process.argv-0.1.0.tgz#22192052587a0a92309f12b1e13717a17885d19e" @@ -14797,6 +15461,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + progress@^2.0.0, progress@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -15623,6 +16292,11 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" +read-chunk@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194" + integrity sha1-X2jKswfmY/GZk1J9m1icrORmEZQ= + read-cmd-shim@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.4.tgz#b4a53d43376211b45243f0072b6e603a8e37640d" @@ -15727,7 +16401,7 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -15740,7 +16414,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.2.0: +"readable-stream@2 || 3", readable-stream@^3.0.1, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.2.0: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== @@ -16325,7 +16999,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@1.0.0: +replace-ext@1.0.0, replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= @@ -16363,7 +17037,7 @@ request-promise@^4.2.2: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@2.88.0, request@^2.83.0, request@^2.87.0, request@^2.88.0: +request@2.88.0, request@^2.65.0, request@^2.83.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -16419,6 +17093,18 @@ reselect@^4.0.0: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== +resize-img@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/resize-img/-/resize-img-1.1.2.tgz#fad650faf3ef2c53ea63112bc272d95e9d92550e" + integrity sha1-+tZQ+vPvLFPqYxErwnLZXp2SVQ4= + dependencies: + bmp-js "0.0.1" + file-type "^3.8.0" + get-stream "^2.0.0" + jimp "^0.2.21" + jpeg-js "^0.1.1" + parse-png "^1.1.1" + resize-observer-polyfill@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" @@ -16484,7 +17170,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.7.1, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.7.1, resolve@^1.8.1: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== @@ -16583,6 +17269,14 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rollup-plugin-babel@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz#7eb5ac16d9b5831c3fd5d97e8df77ba25c72a2aa" + integrity sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + rollup-pluginutils "^2.8.1" + rollup-plugin-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz#a18da0a4b30bf5ca1ee76ddb1422afbb84ae2b9e" @@ -16590,13 +17284,52 @@ rollup-plugin-json@^4.0.0: dependencies: rollup-pluginutils "^2.5.0" -rollup-pluginutils@^2.5.0: +rollup-plugin-node-resolve@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" + integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== + dependencies: + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.11.1" + rollup-pluginutils "^2.8.1" + +rollup-plugin-replace@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz#f41ae5372e11e7a217cde349c8b5d5fd115e70e3" + integrity sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA== + dependencies: + magic-string "^0.25.2" + rollup-pluginutils "^2.6.0" + +rollup-plugin-terser@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.1.2.tgz#3e41256205cb75f196fc70d4634227d1002c255c" + integrity sha512-sWKBCOS+vUkRtHtEiJPAf+WnBqk/C402fBD9AVHxSIXMqjsY7MnYWKYEUqGixtr0c8+1DjzUEPlNgOYQPVrS1g== + dependencies: + "@babel/code-frame" "^7.0.0" + jest-worker "^24.6.0" + rollup-pluginutils "^2.8.1" + serialize-javascript "^1.7.0" + terser "^4.1.0" + +rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.6.0, rollup-pluginutils@^2.8.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== dependencies: estree-walker "^0.6.1" +rollup@^1.17.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.26.0.tgz#cf40fd5e1edc4d7f3d4235a0a43f1c2be1cf294b" + integrity sha512-5HljNYn9icFvXX+Oe97qY5TWvnWhKqgGT0HGeWWqFPx7w7+Anzg7dfHMtUif7YYy6QxAgynDSwK6uxbgcrVUxw== + dependencies: + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -16971,6 +17704,22 @@ shallowequal@^1.0.2, shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +sharp@^0.22.1: + version "0.22.1" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.22.1.tgz#a67c0e75567f03dd5a7861b901fec04072c5b0f4" + integrity sha512-lXzSk/FL5b/MpWrT1pQZneKe25stVjEbl6uhhJcTULm7PhmJgKKRbTDM/vtjyUuC/RLqL2PRyC4rpKwbv3soEw== + dependencies: + color "^3.1.1" + detect-libc "^1.0.3" + fs-copy-file-sync "^1.1.1" + nan "^2.13.2" + npmlog "^4.1.2" + prebuild-install "^5.3.0" + semver "^6.0.0" + simple-get "^3.0.3" + tar "^4.4.8" + tunnel-agent "^0.6.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -17038,6 +17787,20 @@ signale@^1.2.1, signale@^1.4.0: figures "^2.0.0" pkg-conf "^2.1.0" +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -17516,11 +18279,23 @@ stream-slice@^0.1.2: resolved "https://registry.yarnpkg.com/stream-slice/-/stream-slice-0.1.2.tgz#2dc4f4e1b936fb13f3eb39a2def1932798d07a4b" integrity sha1-LcT04bk2+xPz6zmi3vGTJ5jQeks= +stream-to-buffer@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9" + integrity sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk= + dependencies: + stream-to "~0.2.0" + stream-to-observable@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" integrity sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4= +stream-to@~0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d" + integrity sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0= + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -17579,6 +18354,15 @@ string.fromcodepoint@^0.2.1: resolved "https://registry.yarnpkg.com/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz#8d978333c0bc92538f50f383e4888f3e5619d653" integrity sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM= +string.prototype.trim@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" + integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.13.0" + function-bind "^1.1.1" + string.prototype.trimleft@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" @@ -18010,6 +18794,27 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar-fs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" + integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== + dependencies: + chownr "^1.1.1" + mkdirp "^0.5.1" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz#d1aaa3661f05b38b5acc9b7020efdca5179a2cc3" + integrity sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw== + dependencies: + bl "^3.0.0" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" @@ -18049,6 +18854,15 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -18085,7 +18899,7 @@ terser-webpack-plugin@^2.1.0: terser "^4.3.9" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.3.9: +terser@^4.1.0, terser@^4.1.2, terser@^4.3.9: version "4.3.9" resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8" integrity sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA== @@ -18160,7 +18974,7 @@ through2@^2.0.0, through2@^2.0.2: readable-stream "~2.3.6" xtend "~4.0.1" -through2@^3.0.0: +through2@^3.0.0, through2@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== @@ -18194,6 +19008,11 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +timm@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" + integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== + timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -18209,6 +19028,11 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tinycolor2@^1.1.2, tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + tippy.js@^4.3.4: version "4.3.5" resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-4.3.5.tgz#882bff8d92f09bb0546d2826d5668c0560006f54" @@ -18275,6 +19099,17 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +to-ico@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/to-ico/-/to-ico-1.1.5.tgz#1d32da5f2c90922edee6b686d610c54527b5a8d5" + integrity sha512-5kIh7m7bkIlqIESEZkL8gAMMzucXKfPe3hX2FoDY5HEAfD9OJU+Qh9b6Enp74w0qRcxVT5ejss66PHKqc3AVkg== + dependencies: + arrify "^1.0.1" + buffer-alloc "^1.1.0" + image-size "^0.5.0" + parse-png "^1.0.0" + resize-img "^1.1.0" + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -18451,7 +19286,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.3.0: +type-fest@^0.3.0, type-fest@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== @@ -18837,7 +19672,7 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= -upath@^1.1.1: +upath@^1.1.1, upath@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== @@ -18919,6 +19754,13 @@ url-parse@^1.1.8, url-parse@^1.4.3: querystringify "^2.1.1" requires-port "^1.0.0" +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ= + dependencies: + ip-regex "^1.0.1" + url@0.11.0, url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -18932,6 +19774,13 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -19091,6 +19940,18 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +vinyl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" + integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vlq@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" @@ -19419,7 +20280,7 @@ webpack-serve@^2.0.2: v8-compile-cache "^2.0.0" webpack-log "^1.1.2" -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -19572,6 +20433,11 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -19640,140 +20506,158 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -workbox-background-sync@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" - integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== +workbox-background-sync@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-5.0.0-rc.0.tgz#af68dca2998b8a387fd7b1e7fa47928ef0ab1a63" + integrity sha512-X1CH6vHj2T9PW7rfOEH6qUHtCpLJBp9VzYkD7qTOFmB9FL/eWJ1+ltab7VH72hDSugmls09Lg1wlKAazqGvm9A== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-broadcast-update@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz#e2c0280b149e3a504983b757606ad041f332c35b" - integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== +workbox-broadcast-update@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-5.0.0-rc.0.tgz#8bebeeb77246ed7d800574a653c42efedee795fe" + integrity sha512-qg05ks577jx2SXbz38PDrkkzcqJqyuP5lRxVqg4tITH2opEP5NSSuX2/QWFBpzJhd6uvvQ8rQTP6FSca0Qoltg== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-build@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz#414f70fb4d6de47f6538608b80ec52412d233e64" - integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== +workbox-build@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-5.0.0-rc.0.tgz#a058153c79c5632173433823ebdcb82370bb04c5" + integrity sha512-yDkWkJq/KFvy79lFPy4sAmcFUOszR0Ca/jLTPUcGOyR2BmOnC8RX5dFM+4iaKtqNHdVlRvFxsDHrYp9tJ9y6+g== dependencies: - "@babel/runtime" "^7.3.4" - "@hapi/joi" "^15.0.0" + "@babel/core" "^7.5.5" + "@babel/preset-env" "^7.5.5" + "@babel/runtime" "^7.5.5" + "@hapi/joi" "^15.1.0" + "@surma/rollup-plugin-off-main-thread" "^1.1.1" common-tags "^1.8.0" - fs-extra "^4.0.2" - glob "^7.1.3" - lodash.template "^4.4.0" - pretty-bytes "^5.1.0" + fast-json-stable-stringify "^2.0.0" + fs-extra "^8.1.0" + glob "^7.1.4" + lodash.template "^4.5.0" + pretty-bytes "^5.2.0" + rollup "^1.17.0" + rollup-plugin-babel "^4.3.3" + rollup-plugin-node-resolve "^5.2.0" + rollup-plugin-replace "^2.2.0" + rollup-plugin-terser "^5.1.1" + source-map "^0.7.3" + source-map-url "^0.4.0" stringify-object "^3.3.0" strip-comments "^1.0.2" - workbox-background-sync "^4.3.1" - workbox-broadcast-update "^4.3.1" - workbox-cacheable-response "^4.3.1" - workbox-core "^4.3.1" - workbox-expiration "^4.3.1" - workbox-google-analytics "^4.3.1" - workbox-navigation-preload "^4.3.1" - workbox-precaching "^4.3.1" - workbox-range-requests "^4.3.1" - workbox-routing "^4.3.1" - workbox-strategies "^4.3.1" - workbox-streams "^4.3.1" - workbox-sw "^4.3.1" - workbox-window "^4.3.1" + tempy "^0.3.0" + upath "^1.1.2" + workbox-background-sync "^5.0.0-rc.0" + workbox-broadcast-update "^5.0.0-rc.0" + workbox-cacheable-response "^5.0.0-rc.0" + workbox-core "^5.0.0-rc.0" + workbox-expiration "^5.0.0-rc.0" + workbox-google-analytics "^5.0.0-rc.0" + workbox-navigation-preload "^5.0.0-rc.0" + workbox-precaching "^5.0.0-rc.0" + workbox-range-requests "^5.0.0-rc.0" + workbox-routing "^5.0.0-rc.0" + workbox-strategies "^5.0.0-rc.0" + workbox-streams "^5.0.0-rc.0" + workbox-sw "^5.0.0-rc.0" + workbox-window "^5.0.0-rc.0" -workbox-cacheable-response@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz#f53e079179c095a3f19e5313b284975c91428c91" - integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== +workbox-cacheable-response@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-5.0.0-rc.0.tgz#5347a2f8e1b3e54eb5e825769a69eb6b54184e94" + integrity sha512-CMqlieDrMLkCpDU/WB36dWPmwXlvrsuD/Qp33rw/ifyySZHfbV59Qx+AdRnJdt5KJsTNMRXFeEFEVNrV8wg6wQ== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-core@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz#005d2c6a06a171437afd6ca2904a5727ecd73be6" - integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== +workbox-core@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.0.0-rc.0.tgz#22fadff27deab19b68a4e4b6544c5efef16e5c23" + integrity sha512-WyN2MZAdp4mge7Khq9vviYh4RR4XcFkw+NtRAygkmy262GZYALP0g4dHPNQovXRluAb/PamDLgtNjMeaok8jTw== -workbox-expiration@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz#d790433562029e56837f341d7f553c4a78ebe921" - integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== +workbox-expiration@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-5.0.0-rc.0.tgz#c9b517c88037cae3f2fbff7f10a6385242b59737" + integrity sha512-WWtSbwjO12sUGvQ+j3INLPN88nh+CcsNW+OrTQfcXp3p1tnsneBlDK/NwaY0PU1QodaCifJO1MeyxLm1Tv5IKw== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-google-analytics@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz#9eda0183b103890b5c256e6f4ea15a1f1548519a" - integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== +workbox-google-analytics@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-5.0.0-rc.0.tgz#371a7f1ef17cb0e7fd6b94ece65ef6383e41eb04" + integrity sha512-7Gwx9lq1TvhTk2g1uN0rSMUXiPpLzSqG2wJyZ9Z0CFqmfqV7PaRIJXl+Sj+cdV4kpPkb7NoaqlJnDx0Qh17png== dependencies: - workbox-background-sync "^4.3.1" - workbox-core "^4.3.1" - workbox-routing "^4.3.1" - workbox-strategies "^4.3.1" + workbox-background-sync "^5.0.0-rc.0" + workbox-core "^5.0.0-rc.0" + workbox-routing "^5.0.0-rc.0" + workbox-strategies "^5.0.0-rc.0" -workbox-navigation-preload@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz#29c8e4db5843803b34cd96dc155f9ebd9afa453d" - integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== +workbox-navigation-preload@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-5.0.0-rc.0.tgz#8b349b5daf1fb23a2724363339137cdce9c45dd1" + integrity sha512-6XKJ7eUUEmNiG2scuIJaczVNtxvd2cLGe2cegsYMzsZiYotBiAWKfUpN1Rf6BNf0Rm0YVrzxAKfhJqz3BCex0w== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-precaching@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz#9fc45ed122d94bbe1f0ea9584ff5940960771cba" - integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== +workbox-precaching@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-5.0.0-rc.0.tgz#136b1afe9acbcf03d00d5cb2e19c71fa9efed6cf" + integrity sha512-POao+Ksw4bNXeVi4C+DGKssAdAjHMfh+FCpZLSXA8LXj6M9t60EOVvrOU6CKrDqYvz2pHjRrxSaVzFq1f+G/vg== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-range-requests@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz#f8a470188922145cbf0c09a9a2d5e35645244e74" - integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== +workbox-range-requests@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-5.0.0-rc.0.tgz#d2a2cb8632fe3059bacfe4977db392716fdbf7e4" + integrity sha512-hp3ZNReMrxM7mhPGr9sZX09CUF8God0MD9Of8B+vRyhhF+9hukN0VtR/5rLqsoiBkbqFvMX1y2pZJv4ZLPoUqg== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-routing@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz#a675841af623e0bb0c67ce4ed8e724ac0bed0cda" - integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== +workbox-routing@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-5.0.0-rc.0.tgz#3abc573a86975f158238f7b4820b83ea2b99fe8f" + integrity sha512-6jlB0+WR3x3XXT9fyrSZ2GNZxqszIz0ovmHuWtarB5o6DFGevJ7Klq+Omgi9NTW5If1QpSHzcZHgQ4+GBGZYqw== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" -workbox-strategies@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz#d2be03c4ef214c115e1ab29c9c759c9fe3e9e646" - integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== +workbox-strategies@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-5.0.0-rc.0.tgz#063d84343a8bee71429a5575c94a06ee6cc3a193" + integrity sha512-1e0+hQKZr8OGB2bFkydaclAVVt1Lel4iZnSacuLTGUomlMJpjgkjnXTsjo9PbuFfML5yH04fgwO+uAbdJMVJ8w== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" + workbox-routing "^5.0.0-rc.0" -workbox-streams@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz#0b57da70e982572de09c8742dd0cb40a6b7c2cc3" - integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== +workbox-streams@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-5.0.0-rc.0.tgz#db37249a323501ea23022d9c09556d95de211375" + integrity sha512-m5EUvUeBX6WX3yrDg89mVFMykhNIKycQVz0LcdVEk04q7486vz9ObcXrSl87kdQKb4AaIsMva05uhQkFPWI80g== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" + workbox-routing "^5.0.0-rc.0" -workbox-sw@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz#df69e395c479ef4d14499372bcd84c0f5e246164" - integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== +workbox-sw@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-5.0.0-rc.0.tgz#641cbe7e55373cc45d4b539672c881026148e6c2" + integrity sha512-k1SOGCEFEVkAxoUPI97sGwcrd7W7j4bchBl1iq9im88HGm6v1xSJ7XMbqR94uFH5nW6T1x7uW4k0wOwzyZrVSQ== -workbox-webpack-plugin@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz#47ff5ea1cc074b6c40fb5a86108863a24120d4bd" - integrity sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ== +workbox-webpack-plugin@^5.0.0-beta.1: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-5.0.0-rc.0.tgz#dce9ca5460cdca3b4b2e3917798c66a4b3c90889" + integrity sha512-fxyL2HsnzOVpJOL3+9DFUkYQJq0q7aWDYgLLpDbYGFXFptoVePZf0H1etr3+2+4iIIjhj8M8RZ09dFcyPSS5sw== dependencies: - "@babel/runtime" "^7.0.0" - json-stable-stringify "^1.0.1" - workbox-build "^4.3.1" + "@babel/runtime" "^7.5.5" + fast-json-stable-stringify "^2.0.0" + source-map-url "^0.4.0" + upath "^1.1.2" + webpack-sources "^1.3.0" + workbox-build "^5.0.0-rc.0" -workbox-window@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz#ee6051bf10f06afa5483c9b8dfa0531994ede0f3" - integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== +workbox-window@^5.0.0-rc.0: + version "5.0.0-rc.0" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-5.0.0-rc.0.tgz#14ca63038d90be38c2546472d1f05a9401d892fe" + integrity sha512-7guiVqDKKDl4+DyT3fhEcdsKjSYkMSlcLYm5MG12k43g6hglJID1x8E9UOmeGenDW5QWd2B4aq0OrAWahc8y4Q== dependencies: - workbox-core "^4.3.1" + workbox-core "^5.0.0-rc.0" worker-farm@^1.5.2, worker-farm@^1.7.0: version "1.7.0" @@ -19932,6 +20816,16 @@ xdg-basedir@^3.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= +xhr@^2.0.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + xliff@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/xliff/-/xliff-4.3.1.tgz#ae82d1c6283014aa7506c9957bcb3f95ed1ce505" @@ -19964,6 +20858,11 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + xml2js@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" @@ -19972,6 +20871,15 @@ xml2js@0.4.19: sax ">=0.6.0" xmlbuilder "~9.0.1" +xml2js@^0.4.19, xml2js@^0.4.5: + version "0.4.22" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz#4fa2d846ec803237de86f30aa9b5f70b6600de02" + integrity sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw== + dependencies: + sax ">=0.6.0" + util.promisify "~1.0.0" + xmlbuilder "~11.0.0" + xml@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" @@ -19982,6 +20890,11 @@ xmlbuilder@9.0.7, xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"