From ff67d44204ca6d941b3a8b07ee5d9d10372523cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 09:36:14 +0000 Subject: [PATCH 01/25] Bump gatsby from 2.24.54 to 2.24.57 in /packages/webapp Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.54 to 2.24.57. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.24.54...gatsby@2.24.57) Signed-off-by: dependabot[bot] --- packages/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index a0146e37..43bcb32d 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -7,7 +7,7 @@ "axios": "0.20.0", "bytes": "3.1.0", "classnames": "2.2.6", - "gatsby": "2.24.54", + "gatsby": "2.24.57", "gatsby-image": "2.4.17", "gatsby-plugin-manifest": "2.4.28", "gatsby-plugin-matomo": "0.8.3", From cd31849cfb75b70569e95d83b11795d12924b62d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 09:40:07 +0000 Subject: [PATCH 02/25] Bump gatsby-plugin-sharp from 2.6.33 to 2.6.35 in /packages/webapp Bumps [gatsby-plugin-sharp](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-sharp) from 2.6.33 to 2.6.35. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-sharp/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-sharp@2.6.35/packages/gatsby-plugin-sharp) Signed-off-by: dependabot[bot] --- packages/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index a0146e37..f78f18ae 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -15,7 +15,7 @@ "gatsby-plugin-remove-serviceworker": "1.0.0", "gatsby-plugin-robots-txt": "1.5.1", "gatsby-plugin-sass": "2.3.12", - "gatsby-plugin-sharp": "2.6.33", + "gatsby-plugin-sharp": "2.6.35", "gatsby-source-filesystem": "2.3.28", "gatsby-transformer-sharp": "2.5.14", "http-status-codes": "2.1.2", From 316c0fe653f1a098b05960b344ce5e11b46e6544 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 09:48:09 +0000 Subject: [PATCH 03/25] Bump react-dropzone from 11.0.3 to 11.1.0 in /packages/webapp Bumps [react-dropzone](https://github.com/react-dropzone/react-dropzone) from 11.0.3 to 11.1.0. - [Release notes](https://github.com/react-dropzone/react-dropzone/releases) - [Commits](https://github.com/react-dropzone/react-dropzone/compare/v11.0.3...v11.1.0) Signed-off-by: dependabot[bot] --- packages/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index a0146e37..2e610afe 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -26,7 +26,7 @@ "react": "16.13.1", "react-countup": "4.3.3", "react-dom": "16.13.1", - "react-dropzone": "11.0.3", + "react-dropzone": "11.1.0", "react-helmet": "6.1.0", "react-mailchimp-form": "1.0.2", "react-mailchimp-subscribe": "2.1.0", From 5ae36419feb69f3c40c040b2614ea80606027a6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Sep 2020 08:14:46 +0000 Subject: [PATCH 04/25] Bump yargs-parser from 5.0.0-security.0 to 13.1.2 Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 5.0.0-security.0 to 13.1.2. - [Release notes](https://github.com/yargs/yargs-parser/releases) - [Changelog](https://github.com/yargs/yargs-parser/blob/master/docs/CHANGELOG-full.md) - [Commits](https://github.com/yargs/yargs-parser/commits) Signed-off-by: dependabot[bot] --- yarn.lock | 324 ++++++++++++++++++++++-------------------------------- 1 file changed, 132 insertions(+), 192 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8454e7a3..2c87e9b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1801,6 +1801,22 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +"@sindresorhus/slugify@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-1.1.0.tgz#2f195365d9b953384305b62664b44b4036c49430" + integrity sha512-ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw== + dependencies: + "@sindresorhus/transliterate" "^0.1.1" + escape-string-regexp "^4.0.0" + +"@sindresorhus/transliterate@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz#779b31244781d3c898f185b61d58c89e7c782674" + integrity sha512-QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ== + dependencies: + escape-string-regexp "^2.0.0" + lodash.deburr "^4.1.0" + "@styled-system/css@^5.0.16": version "5.1.5" resolved "https://registry.yarnpkg.com/@styled-system/css/-/css-5.1.5.tgz#0460d5f3ff962fa649ea128ef58d9584f403bbbc" @@ -2954,10 +2970,10 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24: resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-preset-gatsby@^0.5.8: - version "0.5.8" - resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.5.8.tgz#b3c0d6524e12e92bf93cb5ef78edc9ac8e093b61" - integrity sha512-24KnbRLTNF3uE1NtKCwAhRJ32hLucUuMsNFq+6n/idzZNo68POLYMN0/8wQ4dHgG2AEvlQf3CTk62vkJvz01Qw== +babel-preset-gatsby@^0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.5.9.tgz#6a7a5007efbc621acc55cb1583d87e2a5f5044ac" + integrity sha512-GtvQirJ9PGzrxe6tyDOvhP808fluFv09hytJCI994LuPTd79hIR4TlBzWf1Ha7t/gVrsamrflmUw/u9079U7Dg== dependencies: "@babel/plugin-proposal-class-properties" "^7.10.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" @@ -2971,7 +2987,7 @@ babel-preset-gatsby@^0.5.8: babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-macros "^2.8.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" gatsby-legacy-polyfills "^0.0.4" babel-runtime@^6.26.0: @@ -3653,11 +3669,6 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -3973,15 +3984,6 @@ clipboardy@^2.3.0: execa "^1.0.0" is-wsl "^2.1.1" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -4856,7 +4858,7 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -5591,6 +5593,16 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + eslint-config-prettier@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" @@ -6677,10 +6689,10 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gatsby-cli@^2.12.91: - version "2.12.91" - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.12.91.tgz#897e7fe7ed8e26119f95e6198a037fcfb6f41542" - integrity sha512-HmKkjY6HAvb65JRpgRM1LyVYtHim6A286BvYcbMM+gwE5Bgc27e9FTmNUHjZwYiPcQqx4AMQTb4G9uL5/UuBZA== +gatsby-cli@^2.12.92: + version "2.12.95" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.12.95.tgz#747db9df11701fd9990676b2c47056467f26f015" + integrity sha512-gSJ6J1i8bJq0dPRmAcfAv9U99knaccyBDopf8ft6+/SrUU9cNahQy0rZN1ksKCILjTpLRGKTH1pYN2PE3efjuw== dependencies: "@babel/code-frame" "^7.10.3" "@hapi/joi" "^15.1.1" @@ -6695,14 +6707,14 @@ gatsby-cli@^2.12.91: execa "^3.4.0" fs-exists-cached "^1.0.0" fs-extra "^8.1.0" - gatsby-core-utils "^1.3.18" - gatsby-recipes "^0.2.20" - gatsby-telemetry "^1.3.30" + gatsby-core-utils "^1.3.19" + gatsby-recipes "^0.2.24" + gatsby-telemetry "^1.3.32" hosted-git-info "^3.0.4" ink "^2.7.1" ink-spinner "^3.1.0" is-valid-path "^0.1.1" - lodash "^4.17.15" + lodash "^4.17.20" meant "^1.0.1" node-fetch "^2.6.0" opentracing "^0.14.4" @@ -6718,14 +6730,14 @@ gatsby-cli@^2.12.91: stack-trace "^0.0.10" strip-ansi "^5.2.0" update-notifier "^4.1.0" - uuid "^8.3.0" + uuid "3.4.0" yargs "^15.3.1" yurnalist "^1.1.2" -gatsby-core-utils@^1.3.18: - version "1.3.18" - resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.3.18.tgz#8eecb424f8709bbb3dac9653973068643b3fd66f" - integrity sha512-B7ixQb4H0e2yB0nNfM2zshOAUw3nW9MvcNsRskVFwIPJY+ngh8Srla4XWXVMJ60Fyt103+jPVZTxGq72/u5HuQ== +gatsby-core-utils@^1.3.19: + version "1.3.19" + resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.3.19.tgz#d7f9981fbc85affbbc09c96ac84c76c37615fc89" + integrity sha512-nwiU17m2lihvN7IOkBTj4n2WKc7Eb569Vv7G8dmuwthmjIB6ml98Quno5fRBCz+2DBF6R60boDfc84Qdct1LPw== dependencies: ci-info "2.0.0" configstore "^5.0.1" @@ -6749,10 +6761,10 @@ gatsby-graphiql-explorer@^0.4.13: dependencies: "@babel/runtime" "^7.10.3" -gatsby-image@2.4.16: - version "2.4.16" - resolved "https://registry.yarnpkg.com/gatsby-image/-/gatsby-image-2.4.16.tgz#65ce1642bb6a0c8d87c74b204ed79995cd43da16" - integrity sha512-N5kJ3LE8re57DgR1lAZFWP2or0nCSuNXSUKvSBvVgxwcebdcFGCxN/xTJbU4ojFfFBJ/D4gKuxJrvLvDf3jcyg== +gatsby-image@2.4.17: + version "2.4.17" + resolved "https://registry.yarnpkg.com/gatsby-image/-/gatsby-image-2.4.17.tgz#8eeb49f6a0fbc367f88b66f7f9a56c5c9ec4c430" + integrity sha512-DPt5fNzTwBx7k5RQAsbU30O8mGtw9lDDYF0xrD1N/++B4dT5ZfUb10sfxwyBv2GRaSjClFkqED6aDihwkHOOfg== dependencies: "@babel/runtime" "^7.10.3" object-fit-images "^3.2.4" @@ -6794,27 +6806,27 @@ gatsby-link@^2.4.13: "@types/reach__router" "^1.3.3" prop-types "^15.7.2" -gatsby-page-utils@^0.2.23: - version "0.2.23" - resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.2.23.tgz#8216adb75a4f7143f6a945f2efff05c9458bf9a2" - integrity sha512-z0eiGNchTk0sWNubLVBNXOI9VLHCNHFFjNt5RweW211SLR/Bw7paQOaX9gY0Bdj1C2+NZ8JMyTHs1JF7yybaDg== +gatsby-page-utils@^0.2.24: + version "0.2.24" + resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.2.24.tgz#d48f76fcecb47ee72800b34da371107be2ff3c32" + integrity sha512-EShJs772upZcJqAMbA05oxNocna38R1Z7U/eXA13NTT/MmuwSV01y2OLZXvqyKdYz1y0FL37gDlEcJmka8iMUg== dependencies: "@babel/runtime" "^7.10.3" bluebird "^3.7.2" chokidar "^3.4.2" fs-exists-cached "^1.0.0" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" glob "^7.1.6" - lodash "^4.17.15" + lodash "^4.17.20" micromatch "^3.1.10" -gatsby-plugin-manifest@2.4.27: - version "2.4.27" - resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.4.27.tgz#e87102137efcb1fe66ab27f913241f9c1b2f4fa7" - integrity sha512-QyU6cAXLPaGsOhmuMywLyoo4EdraoLmGOPDht64+jpJu0sJ4P7XF4Ykai8D18JWhxoxEPw76hCYs4rxNUJpNfg== +gatsby-plugin-manifest@2.4.28: + version "2.4.28" + resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.4.28.tgz#f65a0f60e15112829981607df54b46faa09a3257" + integrity sha512-/8huYUzf0L8N5g3FlVlpCkV+nycBajU8nrbEfJTH/VecxGPlDJrHJ/WRM8lG+/XwpPnEwddFiZ6BBgHdIQEn3Q== dependencies: "@babel/runtime" "^7.10.3" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" semver "^7.3.2" sharp "^0.25.4" @@ -6823,18 +6835,19 @@ gatsby-plugin-matomo@0.8.3: resolved "https://registry.yarnpkg.com/gatsby-plugin-matomo/-/gatsby-plugin-matomo-0.8.3.tgz#e0e9cc9e60f7e4b157c9964dfc9d444d73bc46ee" integrity sha512-fv6TgD+WsxziZrtmz6sNF4m9FgSyV+8y3R1sobA5hB5OxJyhs/Y4HVo9jCPRHu5VLKQsg4i7LJhWL0ocJiqEWQ== -gatsby-plugin-page-creator@^2.3.25: - version "2.3.25" - resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.3.25.tgz#74087a71e1c8ff5e072fbc5355e3cdb6ba669cd5" - integrity sha512-zpVFNKDNMpvTwe/hj6C27sc/POVxxGp0ZidoTDFd6so/f+Mc0OJQQDEIzs122oYBnuspPya+0+wWaph4QcadSQ== +gatsby-plugin-page-creator@^2.3.26: + version "2.3.27" + resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.3.27.tgz#b3211eb8975c7e943dcd560f500a88462af013e8" + integrity sha512-Yo/2uneVngKQ/tpzloMkbn0TIci8GAbdNjU5+Q8UChzAAXlgrROrB46zPJkLA8sbA9Y2xCfGBWMY+DLt6blxHQ== dependencies: "@babel/traverse" "^7.10.2" + "@sindresorhus/slugify" "^1.1.0" + chokidar "^3.4.2" fs-exists-cached "^1.0.0" - gatsby-page-utils "^0.2.23" + gatsby-page-utils "^0.2.24" globby "^11.0.1" graphql "^14.6.0" - lodash "^4.17.15" - slugify "^1.4.4" + lodash "^4.17.20" gatsby-plugin-react-helmet@3.3.10: version "3.3.10" @@ -6864,16 +6877,16 @@ gatsby-plugin-sass@2.3.12: "@babel/runtime" "^7.10.3" sass-loader "^7.3.1" -gatsby-plugin-sharp@2.6.31: - version "2.6.31" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.6.31.tgz#4e324a694f7fc9cb4053c096552a1276c9996897" - integrity sha512-TUGFlkgGwtxcBP1UQG+QNd8ipeclefMmpEC8k3/3z4r15aV7d83/CrgByFjWLalY8esHF9DiZIyR7/kYoQ8/PQ== +gatsby-plugin-sharp@2.6.33: + version "2.6.33" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.6.33.tgz#4f951874d7666a2c3121e39ac226432184d5c9da" + integrity sha512-B0Fbn2FJhOsNc/0xbSTCsUldhTcOZZfVEOsjSKT63n3x9eXNlRnIi/ofwexbSzp+eRyCPMcMD9ufzVHczpEpvA== dependencies: "@babel/runtime" "^7.10.3" async "^3.2.0" bluebird "^3.7.2" fs-extra "^9.0.1" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" got "^10.7.0" imagemin "^7.0.1" imagemin-mozjpeg "^9.0.0" @@ -6886,7 +6899,7 @@ gatsby-plugin-sharp@2.6.31: semver "^7.3.2" sharp "^0.25.4" svgo "1.3.2" - uuid "^8.3.0" + uuid "3.4.0" gatsby-plugin-typescript@^2.4.18: version "2.4.18" @@ -6908,10 +6921,10 @@ gatsby-react-router-scroll@^3.0.12: dependencies: "@babel/runtime" "^7.10.3" -gatsby-recipes@^0.2.20: - version "0.2.20" - resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.2.20.tgz#66bd9fb0064a973b2122443367ae64419e0d3ac9" - integrity sha512-0CjII9YZU0JpLWovFAJwctBcOI/tcTi5N6AS7HYUwzwYs/Ivb3en99NqOnT61m7i50wgWJmfo+Fo4Df3+vloug== +gatsby-recipes@^0.2.24: + version "0.2.24" + resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.2.24.tgz#1f6c75c319ddc2d89db34bec40f70a20915b6393" + integrity sha512-2Rut4j5jGS+a5ZoHXEfjo8AMAxnbG53MyRMvSrmV24VsVk19nIylalryKmtJfioOWQ94B0h3T56hPA9c2/o1Pg== dependencies: "@babel/core" "^7.9.6" "@babel/generator" "^7.9.6" @@ -6948,9 +6961,9 @@ gatsby-recipes@^0.2.20: flatted "^3.0.0" formik "^2.0.8" fs-extra "^8.1.0" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" gatsby-interface "^0.0.166" - gatsby-telemetry "^1.3.30" + gatsby-telemetry "^1.3.32" glob "^7.1.6" graphql "^14.6.0" graphql-compose "^6.3.8" @@ -6964,7 +6977,7 @@ gatsby-recipes@^0.2.20: isomorphic-fetch "^2.1.0" jest-diff "^25.5.0" lock "^1.0.0" - lodash "^4.17.15" + lodash "^4.17.20" mitt "^1.2.0" mkdirp "^0.5.1" node-fetch "^2.5.0" @@ -6981,6 +6994,7 @@ gatsby-recipes@^0.2.20: remark-parse "^6.0.3" remark-stringify "^8.1.0" resolve-cwd "^3.0.0" + resolve-from "^5.0.0" semver "^7.3.2" single-trailing-newline "^1.0.0" strip-ansi "^6.0.0" @@ -6991,16 +7005,16 @@ gatsby-recipes@^0.2.20: unist-util-remove "^2.0.0" unist-util-visit "^2.0.2" urql "^1.9.7" - uuid "^8.3.0" + uuid "3.4.0" ws "^7.3.0" xstate "^4.9.1" yoga-layout-prebuilt "^1.9.6" yup "^0.27.0" -gatsby-source-filesystem@2.3.27: - version "2.3.27" - resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-2.3.27.tgz#e575b992d877a5ddc1fe6177567ab5c268374ca7" - integrity sha512-lNWRVDkaC2g6mSPTGuE9bsXawS0GkkwV/X8l8ZJnqbcMBl8p+h3zYoKXQ2u00pmQRqjwp4lvlaTarLRxD0tGDQ== +gatsby-source-filesystem@2.3.28: + version "2.3.28" + resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-2.3.28.tgz#cd1857bf450d270a5f6068ef4dcacb27b9e6a611" + integrity sha512-cFsEcEfPkcLP3tx0/sy6F6E52+yj4xfQnYMgEFKcUdEUNNHjyTsdP9eYkzHxoDbYm9Ycwjs92Vd52C+6/Ii56w== dependencies: "@babel/runtime" "^7.10.3" better-queue "^3.8.10" @@ -7008,7 +7022,7 @@ gatsby-source-filesystem@2.3.27: chokidar "^3.4.2" file-type "^12.4.2" fs-extra "^8.1.0" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" got "^9.6.0" md5-file "^3.2.3" mime "^2.4.6" @@ -7018,10 +7032,10 @@ gatsby-source-filesystem@2.3.27: valid-url "^1.0.9" xstate "^4.11.0" -gatsby-telemetry@^1.3.30: - version "1.3.30" - resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.3.30.tgz#dd169f8674017597907cad2ce95127af7a4d7465" - integrity sha512-2EJdu8f7CqLfENnShK1gSJdlxC/me6eImrbReYQDuf7Bu7l9UT5Ag07D1vC8qA58wjj+p9mhZqAL5pYCdQ04jA== +gatsby-telemetry@^1.3.31, gatsby-telemetry@^1.3.32: + version "1.3.32" + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.3.32.tgz#aaf8b038cb7d3e93cf6e1df5c1ed1fe037c9e9bd" + integrity sha512-iKX6PJNdcXH7z2epyRTKCkp6fYCN3ePE5tpkbckaw9BLj5S4EZnocALPC4lhFefu3PatY6cXc1WAOMO9AwqrtA== dependencies: "@babel/code-frame" "^7.10.3" "@babel/runtime" "^7.10.3" @@ -7032,12 +7046,12 @@ gatsby-telemetry@^1.3.30: configstore "^5.0.1" envinfo "^7.7.3" fs-extra "^8.1.0" - gatsby-core-utils "^1.3.18" + gatsby-core-utils "^1.3.19" git-up "^4.0.2" is-docker "^2.1.1" - lodash "^4.17.15" + lodash "^4.17.20" node-fetch "^2.6.0" - uuid "^8.3.0" + uuid "3.4.0" gatsby-transformer-sharp@2.5.14: version "2.5.14" @@ -7052,10 +7066,10 @@ gatsby-transformer-sharp@2.5.14: semver "^7.3.2" sharp "^0.25.4" -gatsby@2.24.53: - version "2.24.53" - resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.24.53.tgz#93c5e45bc188881c9adc9e44f693245e0e02ba22" - integrity sha512-RflNxycCFn+VoakexlMYQa5HmdW/iq/um5fQQVr/Ba6jhSDoD4+FSSW9Eh3w3xiG8YKcdjp20iMzREHlUtfN4g== +gatsby@2.24.54: + version "2.24.54" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.24.54.tgz#e0ae227831946b4ca3a457614e57ea38aa80e8d6" + integrity sha512-RDQn2OCjwHNvXhlTJ2F7v3p294/yzpk0yt6vXomhuKq7Dkcf14tZcPkLfrODcbEBg8RcD1IyrFvjQDs8/NI2Cg== dependencies: "@babel/code-frame" "^7.10.3" "@babel/core" "^7.10.3" @@ -7080,7 +7094,7 @@ gatsby@2.24.53: babel-plugin-add-module-exports "^0.3.3" babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-remove-graphql-queries "^2.9.17" - babel-preset-gatsby "^0.5.8" + babel-preset-gatsby "^0.5.9" better-opn "1.0.0" better-queue "^3.8.10" bluebird "^3.7.2" @@ -7120,15 +7134,15 @@ gatsby@2.24.53: find-cache-dir "^3.3.1" fs-exists-cached "1.0.0" fs-extra "^8.1.0" - gatsby-cli "^2.12.91" - gatsby-core-utils "^1.3.18" + gatsby-cli "^2.12.92" + gatsby-core-utils "^1.3.19" gatsby-graphiql-explorer "^0.4.13" gatsby-legacy-polyfills "^0.0.4" gatsby-link "^2.4.13" - gatsby-plugin-page-creator "^2.3.25" + gatsby-plugin-page-creator "^2.3.26" gatsby-plugin-typescript "^2.4.18" gatsby-react-router-scroll "^3.0.12" - gatsby-telemetry "^1.3.30" + gatsby-telemetry "^1.3.31" glob "^7.1.6" got "8.3.2" graphql "^14.6.0" @@ -7144,7 +7158,7 @@ gatsby@2.24.53: json-loader "^0.5.7" json-stringify-safe "^5.0.1" latest-version "5.1.0" - lodash "^4.17.15" + lodash "^4.17.20" md5-file "^3.2.3" meant "^1.0.1" micromatch "^3.1.10" @@ -7240,11 +7254,6 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -8088,12 +8097,7 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http-status-codes@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.1.1.tgz#1e8fc7358055135518c1dced00362fd3c1f4f606" - integrity sha512-MPKYOEXZw8MzXml8XF8UBWzWGuO60ZKXBDCGwxPJmRZJW3eTUsLgB+O+jtlPB8ZOVSUs1vjcrxtitJghYzxtHQ== - -http-status-codes@^2.1.2: +http-status-codes@2.1.2, http-status-codes@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.1.2.tgz#dc5b7ccd72fb383d1d7c21adbbddc3b125f6a5b7" integrity sha512-zpZ1nBcoR0j1FLQ7xbXXBy1z/yUfAi+0a5IZBoZnmOseYkaljdzQ17ZeVXFlK23IbLxMJn6aWI0uU92DQQrG0g== @@ -8108,15 +8112,15 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -husky@4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== +husky@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.0.tgz#0b2ec1d66424e9219d359e26a51c58ec5278f0de" + integrity sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA== dependencies: chalk "^4.0.0" ci-info "^2.0.0" compare-versions "^3.6.0" - cosmiconfig "^6.0.0" + cosmiconfig "^7.0.0" find-versions "^3.2.0" opencollective-postinstall "^2.0.2" pkg-dir "^4.2.0" @@ -8442,11 +8446,6 @@ invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -9303,13 +9302,6 @@ lazy-ass@^1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -9524,6 +9516,11 @@ lodash.clonedeep@4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.deburr@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" + integrity sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s= + lodash.every@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7" @@ -10438,10 +10435,10 @@ node-releases@^1.1.58: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== -node-sass@4.14.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.0.tgz#a8e9d7720f8e15b4a1072719dcf04006f5648eeb" - integrity sha512-AxqU+DFpk0lEz95sI6jO0hU0Rwyw7BXVEv6o9OItoXLyeygPeaSpiV4rwQb10JiTghHaa0gZeD21sz+OsQluaw== +node-sass@4.14.1: + version "4.14.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -10457,7 +10454,7 @@ node-sass@4.14.0: node-gyp "^3.8.0" npmlog "^4.0.0" request "^2.88.0" - sass-graph "^2.2.4" + sass-graph "2.2.5" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" @@ -10866,13 +10863,6 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -12417,10 +12407,10 @@ react-style-singleton@^2.1.0: invariant "^2.2.4" tslib "^1.0.0" -react-syntax-highlighter@13.5.1: - version "13.5.1" - resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" - integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== +react-syntax-highlighter@13.5.3: + version "13.5.3" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz#9712850f883a3e19eb858cf93fad7bb357eea9c6" + integrity sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg== dependencies: "@babel/runtime" "^7.3.1" highlight.js "^10.1.1" @@ -12885,11 +12875,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -13106,15 +13091,15 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-graph@^2.2.4: - version "2.2.6" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.6.tgz#09fda0e4287480e3e4967b72a2d133ba09b8d827" - integrity sha512-MKuEYXFSGuRSi8FZ3A7imN1CeVn9Gpw0/SFJKdL1ejXJneI9a5rwlEZrKejhEFAA3O6yr3eIyl/WuvASvlT36g== +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== dependencies: glob "^7.0.0" lodash "^4.0.0" scss-tokenizer "^0.2.3" - yargs "^7.0.0" + yargs "^13.3.2" sass-loader@^7.3.1: version "7.3.1" @@ -13958,7 +13943,7 @@ string-similarity@^1.2.2: lodash.map "^4.6.0" lodash.maxby "^4.6.0" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= @@ -15131,7 +15116,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: +uuid@3.4.0, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -15409,11 +15394,6 @@ whatwg-fetch@>=0.10.0: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -15485,14 +15465,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" @@ -15623,11 +15595,6 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -15661,14 +15628,6 @@ yaml@^1.10.0, yaml@^1.7.2, yaml@^1.8.3: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yargs-parser@5.0.0-security.0: - version "5.0.0-security.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz#4ff7271d25f90ac15643b86076a2ab499ec9ee24" - integrity sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ== - dependencies: - camelcase "^3.0.0" - object.assign "^4.1.0" - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -15718,25 +15677,6 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.1.tgz#67f0ef52e228d4ee0d6311acede8850f53464df6" - integrity sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g== - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "5.0.0-security.0" - yauzl@^2.10.0, yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 1452e7fb800af26b507ebf5547e523ee258f97ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 13 Sep 2020 12:41:48 +0000 Subject: [PATCH 05/25] Bump gatsby-source-filesystem from 2.3.28 to 2.3.29 in /packages/webapp Bumps [gatsby-source-filesystem](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-source-filesystem) from 2.3.28 to 2.3.29. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-filesystem@2.3.29/packages/gatsby-source-filesystem) Signed-off-by: dependabot[bot] --- packages/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index a4a9e415..b04eee8b 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -16,7 +16,7 @@ "gatsby-plugin-robots-txt": "1.5.1", "gatsby-plugin-sass": "2.3.12", "gatsby-plugin-sharp": "2.6.35", - "gatsby-source-filesystem": "2.3.28", + "gatsby-source-filesystem": "2.3.29", "gatsby-transformer-sharp": "2.5.14", "http-status-codes": "2.1.2", "jsonp": "0.2.1", From 0403a5a8da28e4b5d6f7eaefe8cc7906ec5484ef Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Mon, 14 Sep 2020 11:20:51 +0200 Subject: [PATCH 06/25] remove reveal and fade effects --- packages/webapp/package.json | 1 - .../webapp/src/components/Footer/Footer.js | 302 +++++++++--------- .../src/components/HomeBuilt/HomeBuilt.js | 41 +-- .../src/components/HomeNetwork/HomeNetwork.js | 234 ++++++-------- .../src/components/HomeSamples/HomeSamples.js | 76 ++--- .../src/components/HomeStay/HomeStay.js | 89 +++--- .../webapp/src/components/HomeTop/HomeTop.js | 24 +- .../src/components/HomeTop/HomeTop.scss | 13 - .../src/components/HomeUpload/HomeUpload.js | 159 +++++---- .../src/components/HomeUpload/HomeUpload.scss | 4 - packages/webapp/src/global.scss | 63 ---- yarn.lock | 90 +++--- 12 files changed, 461 insertions(+), 635 deletions(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 4f6d000d..d6284b7f 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -30,7 +30,6 @@ "react-helmet": "6.1.0", "react-mailchimp-form": "1.0.2", "react-mailchimp-subscribe": "2.1.0", - "react-reveal": "1.2.2", "react-syntax-highlighter": "13.5.3", "react-visibility-sensor": "5.1.1", "skynet-js": "0.0.8", diff --git a/packages/webapp/src/components/Footer/Footer.js b/packages/webapp/src/components/Footer/Footer.js index 34177c9e..894d04a0 100644 --- a/packages/webapp/src/components/Footer/Footer.js +++ b/packages/webapp/src/components/Footer/Footer.js @@ -1,6 +1,4 @@ import React from "react"; -import Fade from "react-reveal/Fade"; -import Reveal from "react-reveal/Reveal"; import { FooterOrb, FooterCube, Built } from "../../svg"; import "./Footer.scss"; @@ -8,164 +6,150 @@ import { Mailing } from ".."; export default function Footer() { return ( - - ); } diff --git a/packages/webapp/src/components/HomeBuilt/HomeBuilt.js b/packages/webapp/src/components/HomeBuilt/HomeBuilt.js index 4bec746f..4d0cf99f 100644 --- a/packages/webapp/src/components/HomeBuilt/HomeBuilt.js +++ b/packages/webapp/src/components/HomeBuilt/HomeBuilt.js @@ -1,5 +1,4 @@ import React from "react"; -import Fade from "react-reveal/Fade"; import "./HomeBuilt.scss"; import { CircleIcon, CodeExamples } from "../"; @@ -9,31 +8,25 @@ export default function HomeBuilt() { return (
- -
-
-
- - - - - -
-
-
- - -

- Infrastructure built for -
- application developers -

-
+
+
+
+ + + + + +
+
+
+

+ Infrastructure built for +
+ application developers +

- - - +
); } diff --git a/packages/webapp/src/components/HomeNetwork/HomeNetwork.js b/packages/webapp/src/components/HomeNetwork/HomeNetwork.js index ea7a1d74..6369d452 100644 --- a/packages/webapp/src/components/HomeNetwork/HomeNetwork.js +++ b/packages/webapp/src/components/HomeNetwork/HomeNetwork.js @@ -2,7 +2,6 @@ import React, { useState } from "react"; import PropTypes from "prop-types"; import CountUp from "react-countup"; import VisibilitySensor from "react-visibility-sensor"; -import Fade from "react-reveal/Fade"; import useStats, { AVAILABLE_STATS } from "./useStats"; import "./HomeNetwork.scss"; @@ -29,147 +28,126 @@ export default function HomeNetwork() { return (
- -
- - - - -
-
-
-
- -

- Sia -
- Network -

-
+
+ + + + +
+
+
+

+ Sia +
+ Network +

- - - -
- {STATS_MAP.map((stat, i) => ( - -
-
- {visible && } - {stat.name} -
+ + +
+ {STATS_MAP.map((stat, i) => ( + +
+
+ {visible && } + {stat.name}
- {i !== 4 &&
} - - ))} - - - -
-
- stats provided by{" "} - - siastats.info - -
- - - +
+ {i !== 4 &&
} + + ))} + + + +
+
+ stats provided by{" "} + + siastats.info + +
+
+
- -

- Skynet Webportals are low cost servers that sit between Skynet and everyday users, - enabling them to access Skynet content without needing to operate any special software. As Skylinks are - generated, they can be shared with anyone to retrieve data from any Webportal. The original uploader does - not need to stay online in order for the file to remain available. The Sia network serves as the backend - storage layer for Skynet and handles all of the pinning, guaranteeing both high speeds and excellent - uptime. -

-
+

+ Skynet Webportals are low cost servers that sit between Skynet and everyday users, enabling + them to access Skynet content without needing to operate any special software. As Skylinks are generated, + they can be shared with anyone to retrieve data from any Webportal. The original uploader does not need to + stay online in order for the file to remain available. The Sia network serves as the backend storage layer + for Skynet and handles all of the pinning, guaranteeing both high speeds and excellent uptime. +

- -

- Sia is the leading decentralized cloud storage platform. No signups, no servers, no - trusted third parties. Sia leverages blockchain technology to create a data storage marketplace that is - more robust and more affordable than traditional cloud storage providers. -

+

+ Sia is the leading decentralized cloud storage platform. No signups, no servers, no trusted + third parties. Sia leverages blockchain technology to create a data storage marketplace that is more robust + and more affordable than traditional cloud storage providers. +

-

- - Learn more about Sia - -

-
+

+ + Learn more about Sia + +

- - -

- Anyone can access files that have been uploaded to Skynet as long as they possess the corresponding - Skylinks. You can use any Webportal to download files! - - read more - -

-
-
+ +

+ Anyone can access files that have been uploaded to Skynet as long as they possess the corresponding + Skylinks. You can use any Webportal to download files! + + read more + +

+
- - -

- Applications can be deployed in under a minute and be immediately available globally. Skynet includes an - API and SDKs which integrate seamlessly with existing applications. - - read more - -

-
-
+ +

+ Applications can be deployed in under a minute and be immediately available globally. Skynet includes an + API and SDKs which integrate seamlessly with existing applications. + + read more + +

+
- - -

- Skynet's speeds rival centralized providers and surpass all decentralized offerings. A typical - Skynet download starts in under 500 ms and can stream at rates as high as 1 Gbps! - - read more - -

-
-
+ +

+ Skynet's speeds rival centralized providers and surpass all decentralized offerings. A typical Skynet + download starts in under 500 ms and can stream at rates as high as 1 Gbps! + + read more + +

+
- - -

- Storage costs 10x lower than centralized providers and bandwidth costs are 100x lower – without - sacrificing performance or reliability. -

-
-
+ +

+ Storage costs 10x lower than centralized providers and bandwidth costs are 100x lower – without + sacrificing performance or reliability. +

+
- - - View more FAQ - - + + View more FAQ +
diff --git a/packages/webapp/src/components/HomeSamples/HomeSamples.js b/packages/webapp/src/components/HomeSamples/HomeSamples.js index d8661ad1..c057a2e9 100644 --- a/packages/webapp/src/components/HomeSamples/HomeSamples.js +++ b/packages/webapp/src/components/HomeSamples/HomeSamples.js @@ -1,6 +1,4 @@ import React from "react"; -import Fade from "react-reveal/Fade"; -import Reveal from "react-reveal/Reveal"; import "./HomeSamples.scss"; import { Sample } from "../"; @@ -18,51 +16,37 @@ const samples = [ export default function HomeSamples() { return (
- -

Above are some code snippets for uploading and retrieving data.

-

- Skynet includes{" "} - - SDKs - {" "} - for popular programming languages and{" "} - - APIs - {" "} - that integrate seamlessly with your existing apps. You can follow these guides to start using Skynet with{" "} - - the Skynet CLI - {" "} - and{" "} - - integrate Skynet - {" "} - into your application. -

-
+

Above are some code snippets for uploading and retrieving data.

+

+ Skynet includes{" "} + + SDKs + {" "} + for popular programming languages and{" "} + + APIs + {" "} + that integrate seamlessly with your existing apps. You can follow these guides to start using Skynet with{" "} + + the Skynet CLI + {" "} + and{" "} + + integrate Skynet + {" "} + into your application. +

- -
- {samples.map((sample, i) => ( - - ))} -
-
+
+ {samples.map((sample, i) => ( + + ))} +
); } diff --git a/packages/webapp/src/components/HomeStay/HomeStay.js b/packages/webapp/src/components/HomeStay/HomeStay.js index e65a6d5e..04c905ba 100644 --- a/packages/webapp/src/components/HomeStay/HomeStay.js +++ b/packages/webapp/src/components/HomeStay/HomeStay.js @@ -1,5 +1,4 @@ import React, { Component } from "react"; -import Fade from "react-reveal/Fade"; import "./HomeStay.scss"; import { SocialLink, CircleIcon, Mailing } from "../"; @@ -10,65 +9,53 @@ export default class HomeStay extends Component { return (
- -
- - - - -
-
-
- +
+ + + + +
+
+
- -

- Stay up to date with -
- Skynet updates -

-
+

+ Stay up to date with +
+ Skynet updates +

- - - +
    - -
  • - /Skynet-Webportal} - /> -
  • -
    - -
  • - /Sia} - /> -
  • -
    - -
  • - @SiaTechHQ} - /> -
  • -
    +
  • + /Skynet-Webportal} + /> +
  • +
  • + /Sia} + /> +
  • +
  • + @SiaTechHQ} + /> +
diff --git a/packages/webapp/src/components/HomeTop/HomeTop.js b/packages/webapp/src/components/HomeTop/HomeTop.js index f95ead01..42e53788 100644 --- a/packages/webapp/src/components/HomeTop/HomeTop.js +++ b/packages/webapp/src/components/HomeTop/HomeTop.js @@ -1,26 +1,22 @@ import React from "react"; -import Reveal from "react-reveal/Reveal"; import logo from "../../images/logo.svg"; import "./HomeTop.scss"; import { Skynet, Deco1, Deco2 } from "../../svg"; export default function HomeTop() { return ( - -
- Skynet logo - +
+ Skynet logo + -

Build a Free Internet.

+

Build a Free Internet.

-

- The decentralized CDN and file sharing platform for devs. Skynet is the storage foundation for a Free - Internet! -

+

+ The decentralized CDN and file sharing platform for devs. Skynet is the storage foundation for a Free Internet! +

- - -
- + + +
); } diff --git a/packages/webapp/src/components/HomeTop/HomeTop.scss b/packages/webapp/src/components/HomeTop/HomeTop.scss index c37e98e9..572292c3 100644 --- a/packages/webapp/src/components/HomeTop/HomeTop.scss +++ b/packages/webapp/src/components/HomeTop/HomeTop.scss @@ -20,19 +20,6 @@ margin: 0 auto 35px; } - .wordmark, - .logo { - transform: translateY(40px); - opacity: 0; - transition: 1s transform, 1s opacity; - } - - &.active .wordmark, - &.active .logo { - transform: none; - opacity: 1; - } - h1 { font-size: 44px; line-height: 1.14; diff --git a/packages/webapp/src/components/HomeUpload/HomeUpload.js b/packages/webapp/src/components/HomeUpload/HomeUpload.js index 794fae36..6b608dac 100644 --- a/packages/webapp/src/components/HomeUpload/HomeUpload.js +++ b/packages/webapp/src/components/HomeUpload/HomeUpload.js @@ -4,7 +4,6 @@ import classNames from "classnames"; import { getReasonPhrase, StatusCodes } from "http-status-codes"; import path from "path-browserify"; import { useDropzone } from "react-dropzone"; -import Reveal from "react-reveal/Reveal"; import { Button, UploadFile } from "../"; import { Deco3, Deco4, Deco5, Folder, DownArrow } from "../../svg"; import "./HomeUpload.scss"; @@ -159,93 +158,91 @@ export default function HomeUpload() { }; return ( - -
-
-
-
-
- -

Upload your {directoryMode ? "Directory" : "Files"}

- Drop your {directoryMode ? "directory" : "files"} here to pin to Skynet -
- -
- - - {directoryMode && ( -

- Please note that directory upload is not a standard browser feature and the browser support is - limited. To check whether your browser is compatible, visit{" "} - - caniuse.com - - . -

- )} +
+
+
+
+
+ +

Upload your {directoryMode ? "Directory" : "Files"}

+ Drop your {directoryMode ? "directory" : "files"} here to pin to Skynet +
+
- -
-
- -

Paste the link to retrieve your file

- -
+ + {directoryMode && ( +

+ Please note that directory upload is not a standard browser feature and the browser support is limited. + To check whether your browser is compatible, visit{" "} + - setSkylink(event.target.value)} - /> - - -

-
+ caniuse.com + + . +

+ )}
- {files.length > 0 && ( -
- {files.map((file, i) => { - return ; - })} +
+
+ +

Paste the link to retrieve your file

+ +
+ setSkylink(event.target.value)} + /> + +
- )} +
-

- Upon uploading a file, Skynet generates a 46 byte link called a Skylink. This link can then - be shared with anyone to retrieve the file on any Skynet Webportal. -

- - - - + {files.length > 0 && ( +
+ {files.map((file, i) => { + return ; + })} +
+ )}
- + +

+ Upon uploading a file, Skynet generates a 46 byte link called a Skylink. This link can then be + shared with anyone to retrieve the file on any Skynet Webportal. +

+ + + + +
); } diff --git a/packages/webapp/src/components/HomeUpload/HomeUpload.scss b/packages/webapp/src/components/HomeUpload/HomeUpload.scss index 73ae9b51..0e43fcd7 100644 --- a/packages/webapp/src/components/HomeUpload/HomeUpload.scss +++ b/packages/webapp/src/components/HomeUpload/HomeUpload.scss @@ -17,14 +17,10 @@ } .home-upload-white { - transition: 0.2s background-color, 0.2s border, 0.2s color; background: $white; border-radius: 12px; box-shadow: 0 8px 24px 0 rgba(90, 94, 91, 0.15), 0 2px 4px 0 rgba(0, 0, 0, 0.05); padding: 16px; - opacity: 0; - transform: translateY(40px); - transition: 0.7s opacity, 0.7s transform; } .home-upload-split { diff --git a/packages/webapp/src/global.scss b/packages/webapp/src/global.scss index 104c0003..17830fd8 100644 --- a/packages/webapp/src/global.scss +++ b/packages/webapp/src/global.scss @@ -146,66 +146,3 @@ svg { transform: translate(0, 0); } } - -.fadeInUp { - transform: translateY(40px); - opacity: 0; - transition: 0.7s opacity, 0.7s transform; - - .active & { - opacity: 1; - transform: none; - } - - &.delay2 { - transition-delay: 0.2s; - } - - &.delay3 { - transition-delay: 0.3s; - } - - &.delay4 { - transition-delay: 0.4s; - } - - &.delay5 { - transition-delay: 0.5s; - } - - &.delay6 { - transition-delay: 0.6s; - } - - &.delay7 { - transition-delay: 0.7s; - } - - &.delay8 { - transition-delay: 0.8s; - } - - &.delay9 { - transition-delay: 0.9s; - } - - &.delay10 { - transition-delay: 1s; - } - - &.delay11 { - transition-delay: 1.1s; - } - - &.delay12 { - transition-delay: 1.2s; - } - - &.delay13 { - transition-delay: 1.3s; - } - - &.delay14 { - transition-delay: 1.4s; - } -} diff --git a/yarn.lock b/yarn.lock index 2c87e9b0..c0c8570c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2955,10 +2955,10 @@ babel-plugin-remove-export-keywords@^1.6.5: resolved "https://registry.yarnpkg.com/babel-plugin-remove-export-keywords/-/babel-plugin-remove-export-keywords-1.6.16.tgz#e764b42e3c8e4a5ce3e2c996dc43b6348d5d94cf" integrity sha512-JrB9ZASlMAfkRF+5NdgoQxgenhJxzXFEO1vrqsSDJdzLrC38L2wrvXF9mm1YLbrehkZxcrNz9UYDyARP4jaY9g== -babel-plugin-remove-graphql-queries@^2.9.17: - version "2.9.17" - resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.9.17.tgz#f66c421a58392ddca8b2f06473ca0eb2c4ec632d" - integrity sha512-ThFGZlxD+U4H+aSX4DRpz7pdJq6Y7wob0rDDx7Q2rZPp9lbNfnGACUjPyTiCIy8EsBMpPYvT4WZjb4Gd0Xq6zQ== +babel-plugin-remove-graphql-queries@^2.9.18: + version "2.9.18" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.9.18.tgz#0c62490f44ec61bc6cf1b2d4aca0315007e9180b" + integrity sha512-7lr9taus0LfqQuHQFytwrxdd2aMw/GBllyNzl+DWJ9Zg2LwCxlzELtqiy7h7xjTj16fX9+oNXgiJy7Xeo1UN/A== babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" @@ -6689,7 +6689,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gatsby-cli@^2.12.92: +gatsby-cli@^2.12.95: version "2.12.95" resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.12.95.tgz#747db9df11701fd9990676b2c47056467f26f015" integrity sha512-gSJ6J1i8bJq0dPRmAcfAv9U99knaccyBDopf8ft6+/SrUU9cNahQy0rZN1ksKCILjTpLRGKTH1pYN2PE3efjuw== @@ -6835,7 +6835,7 @@ gatsby-plugin-matomo@0.8.3: resolved "https://registry.yarnpkg.com/gatsby-plugin-matomo/-/gatsby-plugin-matomo-0.8.3.tgz#e0e9cc9e60f7e4b157c9964dfc9d444d73bc46ee" integrity sha512-fv6TgD+WsxziZrtmz6sNF4m9FgSyV+8y3R1sobA5hB5OxJyhs/Y4HVo9jCPRHu5VLKQsg4i7LJhWL0ocJiqEWQ== -gatsby-plugin-page-creator@^2.3.26: +gatsby-plugin-page-creator@^2.3.27: version "2.3.27" resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.3.27.tgz#b3211eb8975c7e943dcd560f500a88462af013e8" integrity sha512-Yo/2uneVngKQ/tpzloMkbn0TIci8GAbdNjU5+Q8UChzAAXlgrROrB46zPJkLA8sbA9Y2xCfGBWMY+DLt6blxHQ== @@ -6877,10 +6877,10 @@ gatsby-plugin-sass@2.3.12: "@babel/runtime" "^7.10.3" sass-loader "^7.3.1" -gatsby-plugin-sharp@2.6.33: - version "2.6.33" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.6.33.tgz#4f951874d7666a2c3121e39ac226432184d5c9da" - integrity sha512-B0Fbn2FJhOsNc/0xbSTCsUldhTcOZZfVEOsjSKT63n3x9eXNlRnIi/ofwexbSzp+eRyCPMcMD9ufzVHczpEpvA== +gatsby-plugin-sharp@2.6.35: + version "2.6.35" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.6.35.tgz#d37e08f453784e39d7b1c2a759b801fdd4e633c4" + integrity sha512-5y2ut8TGg5iIfDMnVm/WRy37vjSlHzMdJVugvB4lp4NH69FIq75JpaivshtjQYEi3cc5UonXOQWZJ6aSsM54pQ== dependencies: "@babel/runtime" "^7.10.3" async "^3.2.0" @@ -6890,7 +6890,7 @@ gatsby-plugin-sharp@2.6.33: got "^10.7.0" imagemin "^7.0.1" imagemin-mozjpeg "^9.0.0" - imagemin-pngquant "^9.0.0" + imagemin-pngquant "^9.0.1" lodash "^4.17.19" mini-svg-data-uri "^1.2.3" potrace "^2.1.8" @@ -6901,10 +6901,10 @@ gatsby-plugin-sharp@2.6.33: svgo "1.3.2" uuid "3.4.0" -gatsby-plugin-typescript@^2.4.18: - version "2.4.18" - resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.4.18.tgz#9361ef69f149f68e55ebf2d3f773b9aafce75df8" - integrity sha512-irFd9xu+LjEmL7olcuUziVSb2yRf0nVWFwgaDb+l5rfU6HeKr3zyHuxLqBMwvXWTxu6gVs8sAJVXCcxxM4DbeA== +gatsby-plugin-typescript@^2.4.19: + version "2.4.19" + resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.4.19.tgz#ae644cf973e07b6266da17bb47dae0e0bfaeeb23" + integrity sha512-DMKmTxJZz8qsDvesAt1PJm43pgEe83Kv90TDL5tZ5tqQ0XwwgADHG9p0yPJSqmc1xRtsChaDGnSpnRdUC2Oi3Q== dependencies: "@babel/core" "^7.10.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" @@ -6912,7 +6912,7 @@ gatsby-plugin-typescript@^2.4.18: "@babel/plugin-proposal-optional-chaining" "^7.10.3" "@babel/preset-typescript" "^7.10.1" "@babel/runtime" "^7.10.3" - babel-plugin-remove-graphql-queries "^2.9.17" + babel-plugin-remove-graphql-queries "^2.9.18" gatsby-react-router-scroll@^3.0.12: version "3.0.12" @@ -7011,10 +7011,10 @@ gatsby-recipes@^0.2.24: yoga-layout-prebuilt "^1.9.6" yup "^0.27.0" -gatsby-source-filesystem@2.3.28: - version "2.3.28" - resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-2.3.28.tgz#cd1857bf450d270a5f6068ef4dcacb27b9e6a611" - integrity sha512-cFsEcEfPkcLP3tx0/sy6F6E52+yj4xfQnYMgEFKcUdEUNNHjyTsdP9eYkzHxoDbYm9Ycwjs92Vd52C+6/Ii56w== +gatsby-source-filesystem@2.3.29: + version "2.3.29" + resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-2.3.29.tgz#5eaf1434593f38523655145323e426f21c30687a" + integrity sha512-PWHtkj+inhfPm8aMVhtxS1PAW+r4Kk5M1LDP5l0OO2HBaHiiSi0DulgmYJ3usYpctFqOQ92im/EQLRJbOaaQsA== dependencies: "@babel/runtime" "^7.10.3" better-queue "^3.8.10" @@ -7032,7 +7032,7 @@ gatsby-source-filesystem@2.3.28: valid-url "^1.0.9" xstate "^4.11.0" -gatsby-telemetry@^1.3.31, gatsby-telemetry@^1.3.32: +gatsby-telemetry@^1.3.32: version "1.3.32" resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.3.32.tgz#aaf8b038cb7d3e93cf6e1df5c1ed1fe037c9e9bd" integrity sha512-iKX6PJNdcXH7z2epyRTKCkp6fYCN3ePE5tpkbckaw9BLj5S4EZnocALPC4lhFefu3PatY6cXc1WAOMO9AwqrtA== @@ -7066,10 +7066,10 @@ gatsby-transformer-sharp@2.5.14: semver "^7.3.2" sharp "^0.25.4" -gatsby@2.24.54: - version "2.24.54" - resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.24.54.tgz#e0ae227831946b4ca3a457614e57ea38aa80e8d6" - integrity sha512-RDQn2OCjwHNvXhlTJ2F7v3p294/yzpk0yt6vXomhuKq7Dkcf14tZcPkLfrODcbEBg8RcD1IyrFvjQDs8/NI2Cg== +gatsby@2.24.57: + version "2.24.57" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.24.57.tgz#4db5fa313291c92f68f28d005c13e5e37381b9ee" + integrity sha512-5xTifqE39T3HCTa5eeexHUXq4lhfEq+wKnJoFnjuM52o+fIfz09QRcFJE5QVGJpdxcRAHuQLrkb5cR8DafFEpg== dependencies: "@babel/code-frame" "^7.10.3" "@babel/core" "^7.10.3" @@ -7093,7 +7093,7 @@ gatsby@2.24.54: babel-loader "^8.1.0" babel-plugin-add-module-exports "^0.3.3" babel-plugin-dynamic-import-node "^2.3.3" - babel-plugin-remove-graphql-queries "^2.9.17" + babel-plugin-remove-graphql-queries "^2.9.18" babel-preset-gatsby "^0.5.9" better-opn "1.0.0" better-queue "^3.8.10" @@ -7134,15 +7134,15 @@ gatsby@2.24.54: find-cache-dir "^3.3.1" fs-exists-cached "1.0.0" fs-extra "^8.1.0" - gatsby-cli "^2.12.92" + gatsby-cli "^2.12.95" gatsby-core-utils "^1.3.19" gatsby-graphiql-explorer "^0.4.13" gatsby-legacy-polyfills "^0.0.4" gatsby-link "^2.4.13" - gatsby-plugin-page-creator "^2.3.26" - gatsby-plugin-typescript "^2.4.18" + gatsby-plugin-page-creator "^2.3.27" + gatsby-plugin-typescript "^2.4.19" gatsby-react-router-scroll "^3.0.12" - gatsby-telemetry "^1.3.31" + gatsby-telemetry "^1.3.32" glob "^7.1.6" got "8.3.2" graphql "^14.6.0" @@ -7204,7 +7204,7 @@ gatsby@2.24.54: type-of "^2.0.1" url-loader "^1.1.2" util.promisify "^1.0.1" - uuid "^8.3.0" + uuid "3.4.0" v8-compile-cache "^1.1.2" webpack "^4.44.1" webpack-dev-middleware "^3.7.2" @@ -8188,10 +8188,10 @@ imagemin-mozjpeg@^9.0.0: is-jpg "^2.0.0" mozjpeg "^7.0.0" -imagemin-pngquant@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-9.0.0.tgz#f22ba4276cde1799fb15dd475e33984f8607e871" - integrity sha512-9cqnTEaJwAHWUi+8EMTB3NUouWToCWxtL+QnoYr8bfVwuKilHvRVWKsa9lt+0c3aWaGxCAkHs++j8qINvSqomA== +imagemin-pngquant@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-9.0.1.tgz#ecf22f522bdb734a503ecc21bdd7bc3d0230edcc" + integrity sha512-PYyo9G/xwddf+Qqlqe3onz5ZH7p6vHYVVkiuuczUjxZmfekyY77RXaOA/AR6FnVoeQxGa/pDtEK5xUKOcVo+sA== dependencies: execa "^4.0.0" is-png "^2.0.0" @@ -12249,10 +12249,10 @@ react-dom@16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-dropzone@11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-11.0.3.tgz#59c396a1482454fa78466f8565336f40ce7f7c84" - integrity sha512-+MoMOoKZfkZ9i1+qEFl2ZU29AB/c9K2bFxyACqGynguJunmqO+k2PJ2AcuiH51xVNl9R7q/x5QdBaIWb6RtoSw== +react-dropzone@11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-11.1.0.tgz#c225f3c53450c80fbd80954361dc039090bfc14c" + integrity sha512-gJT6iJadyTbevrigm6KZFaei/yNWfokzs1idumO7fXtRNPiGFDUpsQ+trHWwUO3yWOtJibpbo5tLZggjm+KV5w== dependencies: attr-accept "^2.0.0" file-selector "^0.1.12" @@ -12386,13 +12386,6 @@ react-remove-scroll@^2.3.0: use-callback-ref "^1.2.3" use-sidecar "^1.0.1" -react-reveal@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-reveal/-/react-reveal-1.2.2.tgz#f47fbc44debc4c185ae2163a215a9e822c7adfef" - integrity sha512-JCv3fAoU6Z+Lcd8U48bwzm4pMZ79qsedSXYwpwt6lJNtj/v5nKJYZZbw3yhaQPPgYePo3Y0NOCoYOq/jcsisuw== - dependencies: - prop-types "^15.5.10" - react-side-effect@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" @@ -15121,11 +15114,6 @@ uuid@3.4.0, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - v8-compile-cache@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" From 0cf50720fea647a6bef1d4e20c85624384872c29 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Mon, 14 Sep 2020 11:40:59 +0200 Subject: [PATCH 07/25] improve cypress debugging --- packages/webapp/cypress/integration/intergration.spec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/webapp/cypress/integration/intergration.spec.js b/packages/webapp/cypress/integration/intergration.spec.js index 8013b935..232f4ca7 100644 --- a/packages/webapp/cypress/integration/intergration.spec.js +++ b/packages/webapp/cypress/integration/intergration.spec.js @@ -19,7 +19,8 @@ context("Skynet", () => { cy.get('.home-upload input[type="file"]').attachFile(fileName); - cy.get(".home-uploaded-files").children().should("have.length", 1).scrollIntoView(); + cy.get(".home-upload").scrollIntoView(); + cy.get(".home-uploaded-files").children().should("have.length", 1); // wait max 2 minutes, the portal might be slow at times cy.wait("@upload", { responseTimeout: 2 * 60 * 1000 }); From 662771abe05c01a7236e5b4e38372d7cf3162d3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2020 10:13:40 +0000 Subject: [PATCH 08/25] Bump http-status-codes from 2.1.2 to 2.1.3 in /packages/webapp Bumps [http-status-codes](https://github.com/prettymuchbryce/node-http-status) from 2.1.2 to 2.1.3. - [Release notes](https://github.com/prettymuchbryce/node-http-status/releases) - [Commits](https://github.com/prettymuchbryce/node-http-status/compare/2.1.2...v2.1.3) Signed-off-by: dependabot[bot] --- packages/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 4f6d000d..798f797e 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -18,7 +18,7 @@ "gatsby-plugin-sharp": "2.6.35", "gatsby-source-filesystem": "2.3.29", "gatsby-transformer-sharp": "2.5.14", - "http-status-codes": "2.1.2", + "http-status-codes": "2.1.3", "jsonp": "0.2.1", "node-sass": "4.14.1", "path-browserify": "1.0.1", From 843e5b0dc20869b5dde9de24d7dc0098a3de7c0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2020 10:16:46 +0000 Subject: [PATCH 09/25] Bump eslint from 7.8.1 to 7.9.0 in /packages/webapp Bumps [eslint](https://github.com/eslint/eslint) from 7.8.1 to 7.9.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.8.1...v7.9.0) Signed-off-by: dependabot[bot] --- packages/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 4f6d000d..1d204bc2 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -39,7 +39,7 @@ "devDependencies": { "cypress": "5.1.0", "cypress-file-upload": "4.1.1", - "eslint": "7.8.1", + "eslint": "7.9.0", "eslint-config-prettier": "6.11.0", "eslint-plugin-cypress": "2.11.1", "eslint-plugin-react": "7.20.6", From d90b7187876321a52c078d587e42cc522274e84c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wypch=C5=82o?= Date: Mon, 14 Sep 2020 14:27:49 +0200 Subject: [PATCH 10/25] Create README.md --- packages/health-check/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/health-check/README.md diff --git a/packages/health-check/README.md b/packages/health-check/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/packages/health-check/README.md @@ -0,0 +1 @@ + From 6acd3309f80aa6a5f0d0eac5aa2ebd870eba71ec Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Mon, 14 Sep 2020 14:45:06 +0200 Subject: [PATCH 11/25] fix blacklist command --- setup-scripts/blacklist-skylink.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup-scripts/blacklist-skylink.sh b/setup-scripts/blacklist-skylink.sh index a044a18f..3f92ed21 100755 --- a/setup-scripts/blacklist-skylink.sh +++ b/setup-scripts/blacklist-skylink.sh @@ -9,7 +9,7 @@ fi for server in "germany.siasky.net" "us-east.siasky.net" "us-west.siasky.net" "helsinki.siasky.net" "siasky.dev"; do echo "⌁ Blacklisting on ${server}" - ssh -q -t user@${server} 'docker exec sia siac skynet blacklist '$1'' + ssh -q -t user@${server} 'docker exec sia siac skynet blacklist add '$1'' ssh -q -t user@${server} 'rm -rf /home/user/skynet_webportal/docker/data/nginx/cache' # prune nginx cache done From aa2dff5e5fd668a3beaac41f78a2488af85d1f23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wypch=C5=82o?= Date: Mon, 14 Sep 2020 15:31:25 +0200 Subject: [PATCH 12/25] Create README.md --- packages/handshake-api/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/handshake-api/README.md diff --git a/packages/handshake-api/README.md b/packages/handshake-api/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/packages/handshake-api/README.md @@ -0,0 +1 @@ + From c0c9f6388543cc77202db23d480c3815e1cc3da9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wypch=C5=82o?= Date: Mon, 14 Sep 2020 17:04:30 +0200 Subject: [PATCH 13/25] Create README.md --- packages/webapp/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/webapp/README.md diff --git a/packages/webapp/README.md b/packages/webapp/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/packages/webapp/README.md @@ -0,0 +1 @@ + From bc62bb52742adb2283d44079d9dde09781794669 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 15 Sep 2020 12:38:03 +0200 Subject: [PATCH 14/25] update to 1.5.0.3 docker-sia --- docker-compose.yml | 2 +- docker/sia/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b57462af..ff7365b8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: - 9980 sia-upload: - image: nebulouslabs/sia:1.5.0.2 + image: nebulouslabs/sia:1.5.0.3 container_name: sia-upload restart: unless-stopped environment: diff --git a/docker/sia/Dockerfile b/docker/sia/Dockerfile index 542dd8b9..91b19037 100644 --- a/docker/sia/Dockerfile +++ b/docker/sia/Dockerfile @@ -8,6 +8,6 @@ ARG branch=master RUN git clone https://gitlab.com/NebulousLabs/Sia.git --single-branch --branch ${branch} RUN make release --directory Sia -FROM nebulouslabs/sia:1.5.0.2 +FROM nebulouslabs/sia:1.5.0.3 COPY --from=sia-builder /go/bin/siac /go/bin/siad /usr/bin/ From 3a98b8e47d7dfcf1c99ffd45cc04dc084e3d7278 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 15 Sep 2020 12:39:40 +0200 Subject: [PATCH 15/25] use builder for sia-upload too --- docker-compose.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index ff7365b8..78db2c61 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,11 @@ services: - 9980 sia-upload: - image: nebulouslabs/sia:1.5.0.3 + build: + context: ./docker/sia + dockerfile: Dockerfile + args: + branch: v1.5.0 container_name: sia-upload restart: unless-stopped environment: From c42b85fc14918e38e500541e1dd454200e067a3f Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 15 Sep 2020 17:12:48 +0200 Subject: [PATCH 16/25] run prettier on README files --- packages/handshake-api/README.md | 1 - packages/health-check/README.md | 1 - packages/webapp/README.md | 1 - 3 files changed, 3 deletions(-) diff --git a/packages/handshake-api/README.md b/packages/handshake-api/README.md index 8b137891..e69de29b 100644 --- a/packages/handshake-api/README.md +++ b/packages/handshake-api/README.md @@ -1 +0,0 @@ - diff --git a/packages/health-check/README.md b/packages/health-check/README.md index 8b137891..e69de29b 100644 --- a/packages/health-check/README.md +++ b/packages/health-check/README.md @@ -1 +0,0 @@ - diff --git a/packages/webapp/README.md b/packages/webapp/README.md index 8b137891..e69de29b 100644 --- a/packages/webapp/README.md +++ b/packages/webapp/README.md @@ -1 +0,0 @@ - From c155fcfa5548d4e770304bac6d871822427ea939 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 15 Sep 2020 17:09:22 +0200 Subject: [PATCH 17/25] move handshake proxy to nginx --- docker/nginx/conf.d/client.conf | 29 +++++++++++++++++++++- packages/handshake-api/package.json | 1 - packages/handshake-api/src/index.js | 38 ----------------------------- yarn.lock | 33 +++++++++---------------- 4 files changed, 40 insertions(+), 61 deletions(-) diff --git a/docker/nginx/conf.d/client.conf b/docker/nginx/conf.d/client.conf index c1a78ee8..9485c13b 100644 --- a/docker/nginx/conf.d/client.conf +++ b/docker/nginx/conf.d/client.conf @@ -130,7 +130,34 @@ server { include /etc/nginx/conf.d/include/cors; include /etc/nginx/conf.d/include/proxy-buffer; - proxy_pass http://handshake-api:3100; + set $skylink ''; + set $skylink_path ''; + access_by_lua_block { + local json = require('cjson') + local hns_domain_name, request_uri_path = string.match(ngx.var.request_uri, "/hns/([^/]+)(.*)") + local hnsres_res = ngx.location.capture("/hnsres/" .. hns_domain_name) + local hnsres_json = json.decode(hnsres_res.body) + local skylink_prefix, skylink, skylink_path = string.match(hnsres_json.skylink, "(sia://)([^/]+)(.*)") + + ngx.var.skylink = skylink + if request_uri_path == "" or (request_uri_path == "/" and skylink_path ~= "") then + ngx.var.skylink_path = skylink_path + else + ngx.var.skylink_path = request_uri_path + end + } + + proxy_pass http://siad/skynet/skylink/$skylink$skylink_path; + + header_filter_by_lua_block { + if ngx.header.Location then + local json = require('cjson') + local hns_domain_name = string.match(ngx.var.request_uri, "/hns/(.+)/?") + local location = string.gsub(ngx.header.Location, ngx.var.skylink, hns_domain_name) + + ngx.header.Location = location + end + } } location /hnsres { diff --git a/packages/handshake-api/package.json b/packages/handshake-api/package.json index fbbf3a32..d8db7d3f 100644 --- a/packages/handshake-api/package.json +++ b/packages/handshake-api/package.json @@ -5,7 +5,6 @@ "license": "MIT", "dependencies": { "express": "^4.17.1", - "express-http-proxy": "^1.6.2", "hs-client": "^0.0.9", "node-cache": "^5.1.2" }, diff --git a/packages/handshake-api/src/index.js b/packages/handshake-api/src/index.js index fa522387..72aa2234 100644 --- a/packages/handshake-api/src/index.js +++ b/packages/handshake-api/src/index.js @@ -1,6 +1,4 @@ -const url = require("url"); const express = require("express"); -const proxy = require("express-http-proxy"); const NodeCache = require("node-cache"); const { NodeClient } = require("hs-client"); @@ -76,42 +74,6 @@ function isValidSkylink(link) { const server = express(); -server.use( - "/hns/:name", - proxy("nginx", { - // eslint-disable-next-line no-unused-vars - userResHeaderDecorator(headers, userReq, userRes, proxyReq, proxyRes) { - if (headers.location && headers.location.match(startsWithSkylinkRegExp)) { - headers.location = headers.location.replace( - startsWithSkylinkRegExp, - `/hns/${userReq.params.name.replace("sia://", "")}` - ); - } - - return headers; - }, - proxyReqPathResolver: async (req) => { - const records = await getDomainRecords(req.params.name); - if (!records) throw new Error(`No records found for ${req.params.name}`); - - const record = findSkylinkRecord(records); - if (!record) throw new Error(`No skylink found in dns records of ${req.params.name}`); - - const skylink = getSkylinkFromRecord(record).replace("sia://", ""); // get skylink and strip sia:// prefix - const basepath = url.resolve("/", skylink); // make the url absolute - const subpath = req.url.slice(1); // drop the leading slash - - // if the record is just a raw skylink, replace baseUrl with /skylink - if (skylink.length === 46) { - return req.originalUrl.replace(req.baseUrl, basepath); - } - - // if the record contains more than a skylink then it needs to be resolved - return url.resolve(basepath, subpath); - }, - }) -); - server.get("/hnsres/:name", resolveDomainHandler); server.listen(port, host, (error) => { diff --git a/yarn.lock b/yarn.lock index c0c8570c..91a4c8e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4836,7 +4836,7 @@ debug@=3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -5568,11 +5568,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-promise@^4.1.1: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - escalade@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" @@ -5759,10 +5754,10 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint@7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.8.1.tgz#e59de3573fb6a5be8ff526c791571646d124a8fa" - integrity sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w== +eslint@7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.9.0.tgz#522aeccc5c3a19017cf0cb46ebfd660a79acf337" + integrity sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA== dependencies: "@babel/code-frame" "^7.0.0" "@eslint/eslintrc" "^0.1.3" @@ -6058,15 +6053,6 @@ express-graphql@^0.9.0: http-errors "^1.7.3" raw-body "^2.4.1" -express-http-proxy@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/express-http-proxy/-/express-http-proxy-1.6.2.tgz#e87152e45958cee4b91da2fdaa20a1ffd581204a" - integrity sha512-soP7UXySFdLbeeMYL1foBkEoZj6HELq9BDAOCr1sLRpqjPaFruN5o6+bZeC+7U4USWIl4JMKEiIvTeKJ2WQdlQ== - dependencies: - debug "^3.0.1" - es6-promise "^4.1.1" - raw-body "^2.3.0" - express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -8097,7 +8083,12 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http-status-codes@2.1.2, http-status-codes@^2.1.2: +http-status-codes@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.1.3.tgz#d0ab99a7f79afb43dd735bc862ff350171f3cc2f" + integrity sha512-/kDMtEEhAw747LvzDupRRsUOrmw/oEPmwf61guegI1ycj0vyywitq4BhGPknLzqAEBQvsW6rSv0dd2de1MU+yg== + +http-status-codes@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.1.2.tgz#dc5b7ccd72fb383d1d7c21adbbddc3b125f6a5b7" integrity sha512-zpZ1nBcoR0j1FLQ7xbXXBy1z/yUfAi+0a5IZBoZnmOseYkaljdzQ17ZeVXFlK23IbLxMJn6aWI0uU92DQQrG0g== @@ -12169,7 +12160,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@^2.3.0, raw-body@^2.4.1: +raw-body@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== From c050948d23c44dfa8d63659a85e1d55fcc383082 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 15 Sep 2020 17:22:49 +0200 Subject: [PATCH 18/25] improve caching --- docker/nginx/conf.d/client.conf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docker/nginx/conf.d/client.conf b/docker/nginx/conf.d/client.conf index 9485c13b..06ae4ffa 100644 --- a/docker/nginx/conf.d/client.conf +++ b/docker/nginx/conf.d/client.conf @@ -129,6 +129,10 @@ server { location /hns { include /etc/nginx/conf.d/include/cors; include /etc/nginx/conf.d/include/proxy-buffer; + include /etc/nginx/conf.d/include/proxy-cache-downloads; + + limit_conn downloads_by_ip 100; # ddos protection: max 100 downloads at a time + add_header Cache-Control "public, max-age=86400"; # allow consumer to cache response set $skylink ''; set $skylink_path ''; @@ -147,6 +151,9 @@ server { end } + proxy_read_timeout 600; + proxy_set_header User-Agent: Sia-Agent; + proxy_pass http://siad/skynet/skylink/$skylink$skylink_path; header_filter_by_lua_block { From 06d0466a1c7faeb5795c7897fdbe7bab2c9f6f14 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Tue, 15 Sep 2020 17:27:44 +0200 Subject: [PATCH 19/25] decrease cache time --- docker/nginx/conf.d/client.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/nginx/conf.d/client.conf b/docker/nginx/conf.d/client.conf index 06ae4ffa..195abb7d 100644 --- a/docker/nginx/conf.d/client.conf +++ b/docker/nginx/conf.d/client.conf @@ -132,7 +132,7 @@ server { include /etc/nginx/conf.d/include/proxy-cache-downloads; limit_conn downloads_by_ip 100; # ddos protection: max 100 downloads at a time - add_header Cache-Control "public, max-age=86400"; # allow consumer to cache response + add_header Cache-Control "public, max-age=300"; # allow consumer to cache response just for 5 minutes set $skylink ''; set $skylink_path ''; From 7e5cacabca12a32dc7db471954f5b4f3826b94ba Mon Sep 17 00:00:00 2001 From: PJ Date: Wed, 16 Sep 2020 10:23:49 +0200 Subject: [PATCH 20/25] Include subdomain in the cachekey --- docker/nginx/conf.d/include/proxy-cache-downloads | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/nginx/conf.d/include/proxy-cache-downloads b/docker/nginx/conf.d/include/proxy-cache-downloads index 79ae2cfe..9f4fc5a6 100644 --- a/docker/nginx/conf.d/include/proxy-cache-downloads +++ b/docker/nginx/conf.d/include/proxy-cache-downloads @@ -2,7 +2,8 @@ proxy_cache skynet; slice 1m; proxy_http_version 1.1; # upgrade if necessary because 1.0 does not support byte-range requests proxy_set_header Range $slice_range; # pass slice range to proxy -proxy_cache_key $uri$slice_range; # include $slice_range in the cache key +proxy_cache_key $subdomain$uri$slice_range; # include both the $subdomain and +$slice_range in the cache key proxy_cache_min_uses 3; # cache responses after 3 requests of the same file proxy_cache_valid 200 206 24h; # cache 200 and 206 responses for 24 hours proxy_cache_bypass $cookie_nocache $arg_nocache; # add cache bypass option From ff02482ee61168182866f8d895d0d91ac63a576c Mon Sep 17 00:00:00 2001 From: PJ Date: Wed, 16 Sep 2020 10:48:52 +0200 Subject: [PATCH 21/25] Fix newline --- docker/nginx/conf.d/include/proxy-cache-downloads | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/nginx/conf.d/include/proxy-cache-downloads b/docker/nginx/conf.d/include/proxy-cache-downloads index 9f4fc5a6..ae543af1 100644 --- a/docker/nginx/conf.d/include/proxy-cache-downloads +++ b/docker/nginx/conf.d/include/proxy-cache-downloads @@ -2,8 +2,7 @@ proxy_cache skynet; slice 1m; proxy_http_version 1.1; # upgrade if necessary because 1.0 does not support byte-range requests proxy_set_header Range $slice_range; # pass slice range to proxy -proxy_cache_key $subdomain$uri$slice_range; # include both the $subdomain and -$slice_range in the cache key +proxy_cache_key $subdomain$uri$slice_range; # include both the $subdomain and $slice_range in the cache key proxy_cache_min_uses 3; # cache responses after 3 requests of the same file proxy_cache_valid 200 206 24h; # cache 200 and 206 responses for 24 hours proxy_cache_bypass $cookie_nocache $arg_nocache; # add cache bypass option From 54cda20b3210bffd536f8bee72d990d978227ca0 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Wed, 16 Sep 2020 14:21:22 +0200 Subject: [PATCH 22/25] adjust hns endpoint --- docker/nginx/conf.d/client.conf | 35 ++++++++++++++------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/docker/nginx/conf.d/client.conf b/docker/nginx/conf.d/client.conf index 195abb7d..6c9ce836 100644 --- a/docker/nginx/conf.d/client.conf +++ b/docker/nginx/conf.d/client.conf @@ -9,6 +9,7 @@ limit_conn_status 429; # as the request address so we need to use real_ip_header module to use ip address from # X-Forwarded-For header as a real ip address of the request set_real_ip_from 10.0.0.0/8; +set_real_ip_from 127.0.0.1/32; set_real_ip_from 172.16.0.0/12; set_real_ip_from 192.168.0.0/16; real_ip_header X-Forwarded-For; @@ -127,42 +128,36 @@ server { } location /hns { - include /etc/nginx/conf.d/include/cors; include /etc/nginx/conf.d/include/proxy-buffer; - include /etc/nginx/conf.d/include/proxy-cache-downloads; - - limit_conn downloads_by_ip 100; # ddos protection: max 100 downloads at a time - add_header Cache-Control "public, max-age=300"; # allow consumer to cache response just for 5 minutes set $skylink ''; - set $skylink_path ''; + set $rest ''; access_by_lua_block { local json = require('cjson') - local hns_domain_name, request_uri_path = string.match(ngx.var.request_uri, "/hns/([^/]+)(.*)") + local hns_domain_name, request_uri_rest = string.match(ngx.var.request_uri, "/hns/([^/?]+)(.*)") local hnsres_res = ngx.location.capture("/hnsres/" .. hns_domain_name) local hnsres_json = json.decode(hnsres_res.body) - local skylink_prefix, skylink, skylink_path = string.match(hnsres_json.skylink, "(sia://)([^/]+)(.*)") + local skylink_prefix, skylink, skylink_rest = string.match(hnsres_json.skylink, "(sia://)([^/?]+)(.*)") ngx.var.skylink = skylink - if request_uri_path == "" or (request_uri_path == "/" and skylink_path ~= "") then - ngx.var.skylink_path = skylink_path + if request_uri_rest == "" or (request_uri_rest == "/" and skylink_rest ~= "") then + ngx.var.rest = skylink_rest else - ngx.var.skylink_path = request_uri_path + ngx.var.rest = request_uri_rest end } - proxy_read_timeout 600; - proxy_set_header User-Agent: Sia-Agent; - - proxy_pass http://siad/skynet/skylink/$skylink$skylink_path; + # overwrite the Cache-Control header to only cache for 60s in case the domain gets updated + more_set_headers 'Cache-Control: public, max-age=60'; + + proxy_pass http://127.0.0.1/$skylink$rest; header_filter_by_lua_block { - if ngx.header.Location then - local json = require('cjson') - local hns_domain_name = string.match(ngx.var.request_uri, "/hns/(.+)/?") - local location = string.gsub(ngx.header.Location, ngx.var.skylink, hns_domain_name) + if ngx.header.location then + local hns_domain_name = string.match(ngx.var.request_uri, "/hns/([^/?]+)") + local location = string.gsub(ngx.header.location, ngx.var.skylink, hns_domain_name) - ngx.header.Location = location + ngx.header.location = location end } } From 936d4ecd0c5fc110d63032af1a65627a2d9419a6 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Wed, 16 Sep 2020 14:37:14 +0200 Subject: [PATCH 23/25] add more comments --- docker/nginx/conf.d/client.conf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docker/nginx/conf.d/client.conf b/docker/nginx/conf.d/client.conf index 6c9ce836..fa047b70 100644 --- a/docker/nginx/conf.d/client.conf +++ b/docker/nginx/conf.d/client.conf @@ -130,8 +130,10 @@ server { location /hns { include /etc/nginx/conf.d/include/proxy-buffer; - set $skylink ''; - set $rest ''; + set $skylink ''; # placeholder for the raw 46 bit skylink + set $rest ''; # placeholder for the rest of the url that gets appended to skylink (path and args) + + # resolve handshake domain by requesting to /hnsres endpoint and assign correct values to $skylink and $rest access_by_lua_block { local json = require('cjson') local hns_domain_name, request_uri_rest = string.match(ngx.var.request_uri, "/hns/([^/?]+)(.*)") @@ -150,8 +152,10 @@ server { # overwrite the Cache-Control header to only cache for 60s in case the domain gets updated more_set_headers 'Cache-Control: public, max-age=60'; + # we proxy to another nginx location rather than directly to siad because we don't want to deal with caching here proxy_pass http://127.0.0.1/$skylink$rest; + # in case siad returns location header, we need to replace the skylink with the domain name header_filter_by_lua_block { if ngx.header.location then local hns_domain_name = string.match(ngx.var.request_uri, "/hns/([^/?]+)") From 8b883310654061a68bff3bc29632c0c963652b5b Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Wed, 16 Sep 2020 17:06:09 +0200 Subject: [PATCH 24/25] drop 404 not found on hnsres error --- docker/nginx/conf.d/client.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docker/nginx/conf.d/client.conf b/docker/nginx/conf.d/client.conf index fa047b70..34b9dafb 100644 --- a/docker/nginx/conf.d/client.conf +++ b/docker/nginx/conf.d/client.conf @@ -138,6 +138,11 @@ server { local json = require('cjson') local hns_domain_name, request_uri_rest = string.match(ngx.var.request_uri, "/hns/([^/?]+)(.*)") local hnsres_res = ngx.location.capture("/hnsres/" .. hns_domain_name) + + if hnsres_res.status ~= ngx.HTTP_OK then + ngx.exit(ngx.HTTP_NOT_FOUND) + end + local hnsres_json = json.decode(hnsres_res.body) local skylink_prefix, skylink, skylink_rest = string.match(hnsres_json.skylink, "(sia://)([^/?]+)(.*)") From 08782de656a2833266c4036e21212ebe340e69fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wypch=C5=82o?= Date: Thu, 17 Sep 2020 15:50:47 +0200 Subject: [PATCH 25/25] update ssh keys --- setup-scripts/support/authorized_keys | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup-scripts/support/authorized_keys b/setup-scripts/support/authorized_keys index 24e5e097..46c79597 100644 --- a/setup-scripts/support/authorized_keys +++ b/setup-scripts/support/authorized_keys @@ -1,6 +1,6 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpBsw5mPBVIvVd5GX43VXWHWuLeR2h0lfw8vRyDFgmV0TqC9r0POfmWOdSo/QlxHOeI+7S8Ahj/JdDarrx3vJ2vJQkK/tN2bPS30tR0pbCkr0vE/lUWsEuVxOXK132wtFQ/pF3CoVipI8THUS7/Dtap/9fujcEm59dIi3obYGc9F+UetmNtrc+mb6KJ6a1hkaXjD12qP03srSQSDBjch/7nbFFzrRwCZ9DJntMu6Ux6NZ7RcFuXPCg0dK0lggEX/Agzh3KHe69dgiMh8sG0WwCb9vWqd6dtapCt7XKZSnEvyFE1YVZgpsd7bCnGe4vPS3kLsvxeojruDo8Oj3b0exHL9+3Rr4ndVVNHkDxhvlQFbGrd5eiG/brvGjS+ibscTuNukLeiCmBrI5KULObynI2dEQVQKREVywU/qX+xm68noEGBbiRt2L2ImyJvgpNdlyCkDyFhBTo/HtH1WHP1WJijfCHM3jxigeLPRV0GChKK1RbYjZIi6JNsalW7yad/qzHDzht+jBHHAjD4qGlfuNtzP4hs3FErGiQMVZ8g9Tgq8SxPLNOULpcCSwsLLlzfrLYdv52IgkwTIAFR9W+xHGrWypCba9pfskXWXlRNM61qYf3//H0BGHxtuNAASkJrVWwcCuOVN6/EcJOTS9qkg3JiWqs79z0F2I14+AfPFgBKQ== david@nebulouslabs.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCr3nrSQ+ag5gEm9LBoiw68UKALboot+Eemv0TbP6BPnvB6bnSdDstb7Eu1Dkla8uiyw3w2ZYi5Pg4dS5W8vnxwXvey8gBd3GYLpjtnSp9ukeYjHK0J2aX4PBC4GXvRSRjKxYfHauUqm8PaA4uQ4sBkblfwWDEH94um1yyqIamTabH6mfsYiaiiwTNu7ldZOAIlKR/G7cXlLmFz46An7Mn2wwbuv2Khin/f2bLtUF/smOolI7pjOH6ifhHR9LxotcY/xL+E5jRbU1XxldFvVXkL5CU8tEinE6oigwMH9zsPZr+Z70Q/wm20cylxNJu8qdMGQW+WhDg3S70KpCmjYlWJ6bF1HL3z9UkN0lS1EM21n13RIx1iEO7SEC3YPl8VqZiZS7P9Uf5D5z/vTG+fWouCsCBMSbq3HUcNXlm5MLGSdBWPKzZsUaCkHkQks/sxHVy21YAM/3xgST1a05PbIJU1RsqJ0wh0J2gg7/fBUE0ljFyKZ36mvfg6BNlwCUydAiVaQt1geqh+8/VRwjTw/jtHb8G7QhSNwDNo1BcQPU3LkdKePqgldyP5EYGl9bI4E4sYc2DooeJ22fXpWfuClLB+JcHGuCJf/Hg6si9IeeXKm8PwaBdxIVytRPEeJR+q5uOwzI4XWNgERdGU/UVbgfnrAPMuVPa9Jhyl96U9uUl+Cw== peterjan.brone@gmail.com -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7jGVK5wsmzOCHBXYxu1ihaCbOS3m71QZg/djDAQoZ546XV/TZnCuEEHcm3l5jujqQDKPrKBb8tRd3tTXGqygLUsPvwtUjQsfi4HTQFv0NwadydFZW05d8MI2s/mhJxyxOXedKiXOR6kO5lipvKCf2WVweByyrW47tgENWzzyqtHOSfkoLCVcJWTUqn4s56LBoDop3G79lUQY2IK1GcliFc0XLLis1GiH1k6TD7RWXWVgdG/uatyMJp0FvyEsas/53JaKDmVywki8EMOEsyWVqsj6fnioZsz1NGjuWe77CXsiHbC4EL5rfI5gcOtUH8ss7/fY2uCjm3TBD5dwomhWb karol@nebulous.tech +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDMmZFdJsqig/zX7Ly7qJMMDomsdAKLgl7W7ET1w7xH9BBM48OCWmozuLCfCG8MUCEYSUD575hA028hNi6CAK40J3fF74IDDyc9DUb+le8Y8EuzHPKxYLE/gWsjr70XOcZcC4IxLcADQgpeLjrPZQs7A4EYfdxnTTLJVYrowZ9RR5ivcKBjyFOiQyCuFSIvtYMo11Xm2gU48SKYGJThhHUiE2kMOlH3notXJ+T81927IGJdza7J3DAyKtMGB2HEMA89ma3mvEvbPTDMggJFJ3VG7sukRLq6UmT7BT+f3BW+Nr87A1o4upkAuXdkL9cUrris7kQN61AcaCNFU/CuIJa4dUZ0nt+z5X7kWtc0zD75EPj3w6AjB+E1+MSPsqnxd5PnGtSCQqHoa5hg4hQMSweC2tQhSKoWDfx9W2fZiLpg1IL6QB5xCxjg+YKCXEJKxRwXDtbh1DHFdJ5N1kM7IDSeeblc80HNxYrJUPNH1ExWsPl11gmBEEWDAiRSet4bAnOmgDYcJ9Aw2KAndb01cNsw5RL0Dg/W63tb8S5Y9kz6spX6X91yz53JzrozZO7VFfKxa17nubPEeWPTqAQ3uRWPvpdbivVnOAoFCLacRvtTfvetuz/vGZ3JTpr6Ylb9Z76cIqpFe70+bnauZwmxjF+EEq2+u3gd2uewuV2//o+CYQ== kwypchlo@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDgiq1etF0aD94rG/UVmYEt4ij5K8MvHZwb4wIUi6Ihr david@nebulouslabs.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDFO8IxPO3CjfBzm3rAI0sof0BuEBVj6g1UY4hEm9Wn3PXx/iHn96ZP/nSh37X5e5KABCq7ob18T16B4U9JVlARvpozvCCUso28C/Vm44Vt/Q4xoQAYX4eLlRGkPJHhEtA+GhTt4HSE06IZkegAlZ6HVSpSxNiFmSWytIQIa2uTVDel16U+N0PiwQ/9ZS6c/MeC6ZebVEeyEBHNTOL3vkrtFzD/Iupi4QKASK8ejCKEnzCjwoWNyZPUJJLwyUC1ttZOH0cKQid9rcwQDqwM6clnJ5OAAdMkD9GbHs1ItyeC5M1m/KwunmlGSc1eIpIYLvp/0cHrh6/0j8utO3hkqDD3pTWP8TEzw2f5TQVlFHNotcNZimJz8XU8X2k2fHTgyoYKL12HjhokObqBHBUAXol9vCkw0z05U8wVcBemzHrI+6GHnn2pLETshd8Ar8bJ0wQ08+3Agf+KmJuVoHOFdc314AkUX/5QHMrws1/GeS8urLR9FciEiUks8X790LF/sP0= cschinnerl@Christophers-MacBook-Pro.local -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFxLuZzjmFN9CgVOI5vaiVhQgMwG9dLQJ688wrsbpHH/ ivaylo@nebulous.tech \ No newline at end of file +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFxLuZzjmFN9CgVOI5vaiVhQgMwG9dLQJ688wrsbpHH/ ivaylo@nebulous.tech