From ee36a3aefd59393bb63246d44d74b6bf3ca46158 Mon Sep 17 00:00:00 2001 From: David Leuliette Date: Sat, 5 Sep 2020 15:18:48 +0200 Subject: [PATCH 1/4] Add typescript with gatsbt recipe --- gatsby-config.js | 20 ++- package.json | 4 + tsconfig.json | 19 +++ yarn.lock | 393 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 430 insertions(+), 6 deletions(-) create mode 100644 tsconfig.json diff --git a/gatsby-config.js b/gatsby-config.js index d3c393c..d392bdf 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,4 +1,5 @@ const urljoin = require("url-join") + const siteConfig = require("./siteConfig") module.exports = { @@ -52,7 +53,9 @@ module.exports = { options: { postCssPlugins: [ require("postcss-easy-import")(), - require("postcss-custom-properties")({ preserve: false }), + require("postcss-custom-properties")({ + preserve: false, + }), require("postcss-color-function")(), ], }, @@ -93,14 +96,18 @@ module.exports = { { resolve: "gatsby-source-prismic-graphql", options: { - repositoryName: "artaufeminin", // required - defaultLang: "fr-fr", // optional, but recommended + repositoryName: "artaufeminin", + // required + defaultLang: "fr-fr", + // optional, but recommended pages: [ { // optional - type: "Blog_post", // TypeName from prismic - match: "/article/:uid", // pages will be generated under this pattern - component: require.resolve("./src/templates/article.js"), + type: "Blog_post", + // TypeName from prismic + match: "/article/:uid", + // pages will be generated under this pattern + component: require.resolve("./src/templates/article.tsx"), }, ], sharpKeys: [ @@ -109,5 +116,6 @@ module.exports = { ], }, }, + "gatsby-plugin-typescript", ], } diff --git a/package.json b/package.json index d55e2f4..c6d8af9 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "url": "https://github.com/ImedAdel/gatsby-london/issues" }, "dependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.1", + "@typescript-eslint/parser": "^4.0.1", "gatsby": "^2.21.21", "gatsby-image": "^2.0.41", "gatsby-plugin-manifest": "^2.1.1", @@ -18,6 +20,7 @@ "gatsby-plugin-react-helmet": "^3.0.12", "gatsby-plugin-sharp": "^2.0.36", "gatsby-plugin-sitemap": "^2.4.2", + "gatsby-plugin-typescript": "^2.4.18", "gatsby-remark-copy-linked-files": "^2.0.12", "gatsby-remark-images": "^2.0.6", "gatsby-remark-prismjs": "^3.2.9", @@ -34,6 +37,7 @@ "react-dom": "^16.8.6", "react-helmet": "^5.2.1", "typeface-merriweather": "0.0.72", + "typescript": "^4.0.2", "url-join": "^4.0.0" }, "devDependencies": { diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e5dab08 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "include": ["./src/**/*"], + "compilerOptions": { + "target": "esnext", + "module": "commonjs", + "lib": ["dom", "es2017"], + // "allowJs": true, + // "checkJs": true, + "jsx": "react", + "strict": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "noEmit": true, + "skipLibCheck": true, + "noImplicitAny": false, + "resolveJsonModule": true + } +} diff --git a/yarn.lock b/yarn.lock index dd95ea6..60b67b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,6 +16,13 @@ dependencies: "@babel/highlight" "^7.8.3" +"@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/compat-data@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" @@ -47,6 +54,28 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.10.3": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.6" + "@babel/helper-module-transforms" "^7.11.0" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.11.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7.5.5", "@babel/core@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" @@ -69,6 +98,15 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== + dependencies: + "@babel/types" "^7.11.5" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/generator@^7.9.0", "@babel/generator@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" @@ -122,6 +160,18 @@ levenary "^1.1.1" semver "^5.5.0" +"@babel/helper-create-class-features-plugin@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/helper-create-class-features-plugin@^7.8.3", "@babel/helper-create-class-features-plugin@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" @@ -160,6 +210,15 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" @@ -169,6 +228,13 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.9.5" +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" @@ -183,6 +249,13 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" + integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== + dependencies: + "@babel/types" "^7.11.0" + "@babel/helper-member-expression-to-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" @@ -190,6 +263,13 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== + dependencies: + "@babel/types" "^7.10.4" + "@babel/helper-module-imports@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" @@ -197,6 +277,19 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-module-transforms@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/template" "^7.10.4" + "@babel/types" "^7.11.0" + lodash "^4.17.19" + "@babel/helper-module-transforms@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" @@ -210,6 +303,13 @@ "@babel/types" "^7.9.0" lodash "^4.17.13" +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + "@babel/helper-optimise-call-expression@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" @@ -222,6 +322,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== +"@babel/helper-plugin-utils@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + "@babel/helper-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" @@ -240,6 +345,16 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6", "@babel/helper-replace-supers@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" @@ -250,6 +365,14 @@ "@babel/traverse" "^7.9.6" "@babel/types" "^7.9.6" +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helper-simple-access@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" @@ -258,6 +381,20 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" @@ -265,6 +402,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + "@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" @@ -280,6 +422,15 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helpers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helpers@^7.9.0", "@babel/helpers@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" @@ -298,6 +449,20 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0", "@babel/parser@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" @@ -336,6 +501,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" @@ -344,6 +517,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" +"@babel/plugin-proposal-numeric-separator@^7.10.1": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" + integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" @@ -378,6 +559,15 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" +"@babel/plugin-proposal-optional-chaining@^7.10.3": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-proposal-optional-chaining@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" @@ -429,6 +619,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" @@ -464,6 +661,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-typescript@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" + integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz#c1f659dda97711a569cef75275f7e15dcaa6cabc" @@ -759,6 +963,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-typescript@^7.10.4": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" + integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.10.4" + "@babel/plugin-transform-typescript@^7.9.0": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.6.tgz#2248971416a506fc78278fc0c0ea3179224af1e9" @@ -873,6 +1086,14 @@ "@babel/plugin-transform-react-jsx-self" "^7.9.0" "@babel/plugin-transform-react-jsx-source" "^7.9.0" +"@babel/preset-typescript@^7.10.1": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36" + integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.10.4" + "@babel/preset-typescript@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz#87705a72b1f0d59df21c179f7c3d2ef4b16ce192" @@ -896,11 +1117,27 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.10.3": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/standalone@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.9.6.tgz#7a5f82c6fa29959b12f708213be6de8ec0b79338" integrity sha512-UE0vm/4vuwzGgGNY9wR78ft3DUcHvAU0o/esXas2qjUL8yHMAEc04OmLkb3dfkUwlqbQ4+vC1OLBzwhcoIqLsA== +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" @@ -910,6 +1147,21 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.0", "@babel/traverse@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" @@ -925,6 +1177,15 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" @@ -1648,6 +1909,19 @@ regexpp "^3.0.0" tsutils "^3.17.1" +"@typescript-eslint/eslint-plugin@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.0.1.tgz#88bde9239e29d688315718552cf80a3490491017" + integrity sha512-pQZtXupCn11O4AwpYVUX4PDFfmIJl90ZgrEBg0CEcqlwvPiG0uY81fimr1oMFblZnpKAq6prrT9a59pj1x58rw== + dependencies: + "@typescript-eslint/experimental-utils" "4.0.1" + "@typescript-eslint/scope-manager" "4.0.1" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + "@typescript-eslint/experimental-utils@2.32.0": version "2.32.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.32.0.tgz#bee7fbe1d21d13a273066d70abc82549d0b7943e" @@ -1658,6 +1932,18 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" +"@typescript-eslint/experimental-utils@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.0.1.tgz#7d9a3ab6821ad5274dad2186c1aa0d93afd696eb" + integrity sha512-gAqOjLiHoED79iYTt3F4uSHrYmg/GPz/zGezdB0jAdr6S6gwNiR/j7cTZ8nREKVzMVKLd9G3xbg1sV9GClW3sw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.0.1" + "@typescript-eslint/types" "4.0.1" + "@typescript-eslint/typescript-estree" "4.0.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + "@typescript-eslint/parser@^2.24.0": version "2.32.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.32.0.tgz#a1ace8ab1af529580bfb6cc2cd55fd8d8b1e68ab" @@ -1668,6 +1954,29 @@ "@typescript-eslint/typescript-estree" "2.32.0" eslint-visitor-keys "^1.1.0" +"@typescript-eslint/parser@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.0.1.tgz#73772080db7a7a4534a35d719e006f503e664dc3" + integrity sha512-1+qLmXHNAWSQ7RB6fdSQszAiA7JTwzakj5cNYjBTUmpH2cqilxMZEIV+DRKjVZs8NzP3ALmKexB0w/ExjcK9Iw== + dependencies: + "@typescript-eslint/scope-manager" "4.0.1" + "@typescript-eslint/types" "4.0.1" + "@typescript-eslint/typescript-estree" "4.0.1" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.0.1.tgz#24d93c3000bdfcc5a157dc4d32b742405a8631b5" + integrity sha512-u3YEXVJ8jsj7QCJk3om0Y457fy2euEOkkzxIB/LKU3MdyI+FJ2gI0M4aKEaXzwCSfNDiZ13a3lDo5DVozc+XLQ== + dependencies: + "@typescript-eslint/types" "4.0.1" + "@typescript-eslint/visitor-keys" "4.0.1" + +"@typescript-eslint/types@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.0.1.tgz#1cf72582f764931f085cb8230ff215980fe467b2" + integrity sha512-S+gD3fgbkZYW2rnbjugNMqibm9HpEjqZBZkTiI3PwbbNGWmAcxolWIUwZ0SKeG4Dy2ktpKKaI/6+HGYVH8Qrlg== + "@typescript-eslint/typescript-estree@2.32.0": version "2.32.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.32.0.tgz#0e4ae2e883557f94039b13ac0ecfcfbb09835b8d" @@ -1681,6 +1990,28 @@ semver "^7.3.2" tsutils "^3.17.1" +"@typescript-eslint/typescript-estree@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.0.1.tgz#29a43c7060641ec51c902d9f50ac7c5866ec479f" + integrity sha512-zGzleORFXrRWRJAMLTB2iJD1IZbCPkg4hsI8mGdpYlKaqzvKYSEWVAYh14eauaR+qIoZVWrXgYSXqLtTlxotiw== + dependencies: + "@typescript-eslint/types" "4.0.1" + "@typescript-eslint/visitor-keys" "4.0.1" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.0.1.tgz#d4e8de62775f2a6db71c7e8539633680039fdd6c" + integrity sha512-yBSqd6FjnTzbg5RUy9J+9kJEyQjTI34JdGMJz+9ttlJzLCnGkBikxw+N5n2VDcc3CesbIEJ0MnZc5uRYnrEnCw== + dependencies: + "@typescript-eslint/types" "4.0.1" + eslint-visitor-keys "^2.0.0" + "@urql/core@^1.11.0": version "1.11.7" resolved "https://registry.yarnpkg.com/@urql/core/-/core-1.11.7.tgz#ff0c7b613c2a4b2a76c462e1d65b2472142fe8ef" @@ -2532,6 +2863,11 @@ babel-plugin-remove-graphql-queries@^2.9.1: resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.9.1.tgz#098910dc9f2da62b7bf3feec0b169558cbb0755a" integrity sha512-Ua41OqiQ0yUi/9ZvbdhCKCkiCAdwCSVxtf5umV1scD6mMYd70eIA9or3M2nxhqHJ2leSRCYdyu771seEICkC3Q== +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-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" @@ -5103,6 +5439,11 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + eslint@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" @@ -5524,6 +5865,18 @@ fast-glob@^3.0.3: micromatch "^4.0.2" picomatch "^2.2.1" +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -6171,6 +6524,19 @@ gatsby-plugin-sitemap@^2.4.2: pify "^3.0.0" sitemap "^1.13.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== + dependencies: + "@babel/core" "^7.10.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" + "@babel/plugin-proposal-numeric-separator" "^7.10.1" + "@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" + gatsby-plugin-typescript@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.4.2.tgz#bad76d645bec2945c84f47df79d97df86cd6c018" @@ -6839,6 +7205,18 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -7622,6 +8000,11 @@ ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + imagemin-mozjpeg@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz#d2ca4e8c982c7c6eda55069af89dee4c1cebcdfd" @@ -9023,6 +9406,11 @@ lodash@^4.11.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.1 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + log-update@^3.0.0: version "3.4.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-3.4.0.tgz#3b9a71e00ac5b1185cc193a36d654581c48f97b9" @@ -13960,6 +14348,11 @@ typeface-merriweather@0.0.72: resolved "https://registry.yarnpkg.com/typeface-merriweather/-/typeface-merriweather-0.0.72.tgz#2b990f5293252052d51d170c82d3892319ff0555" integrity sha512-gO0+fcZ1fTyKUsYY1ltYOOTI6FmBGeEdyIfeQg9NL8aInndk0feiJJVJsKHm/DiyYrnQEezraAQhz/KQoqMGtw== +typescript@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2" + integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== + unbzip2-stream@^1.0.9: version "1.4.2" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz#84eb9e783b186d8fb397515fbb656f312f1a7dbf" From 3b38f9a27a4d62c29ebe16eb018fb08e9278d560 Mon Sep 17 00:00:00 2001 From: David Leuliette Date: Sat, 5 Sep 2020 17:13:15 +0200 Subject: [PATCH 2/4] Migrate to TS --- README.md | 6 + package.json | 1 + .../{articleCard.js => articleCard.tsx} | 0 src/components/blog/{author.js => author.tsx} | 2 +- src/components/{footer.js => footer.tsx} | 4 +- src/components/{layout.js => layout.tsx} | 11 +- src/components/{seo.js => seo.tsx} | 0 src/pages/404.js | 32 ---- src/pages/404.tsx | 29 +++ src/pages/{about.js => about.tsx} | 0 src/pages/{design.js => design.tsx} | 0 src/pages/{index.js => index.tsx} | 0 src/pages/{podcast.js => podcast.tsx} | 0 src/templates/{article.js => article.tsx} | 23 ++- src/utils/css/components/buttons.css | 2 +- src/utils/css/components/post-content.css | 155 ++++++++++++++++ src/utils/css/{screen.css => styles.css} | 174 +----------------- src/utils/css/variables.css | 10 +- .../{linkResolver.js => linkResolver.ts} | 0 yarn.lock | 5 + 20 files changed, 233 insertions(+), 221 deletions(-) rename src/components/{articleCard.js => articleCard.tsx} (100%) rename src/components/blog/{author.js => author.tsx} (97%) rename src/components/{footer.js => footer.tsx} (94%) rename src/components/{layout.js => layout.tsx} (93%) rename src/components/{seo.js => seo.tsx} (100%) delete mode 100644 src/pages/404.js create mode 100644 src/pages/404.tsx rename src/pages/{about.js => about.tsx} (100%) rename src/pages/{design.js => design.tsx} (100%) rename src/pages/{index.js => index.tsx} (100%) rename src/pages/{podcast.js => podcast.tsx} (100%) rename src/templates/{article.js => article.tsx} (74%) create mode 100644 src/utils/css/components/post-content.css rename src/utils/css/{screen.css => styles.css} (76%) rename src/utils/{linkResolver.js => linkResolver.ts} (100%) diff --git a/README.md b/README.md index 8416273..11794a0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,12 @@ > Podast and articles about womens artists +## Tooling + +- Pages generated with [Gatsby](https://www.gatsbyjs.com/). +- [Prismic](https://prismic.io/) for the content. +- Hosted on Netlify, you [can check the website](https://artaufeminin.fr). + ## Getting started ``` diff --git a/package.json b/package.json index c6d8af9..bd4a083 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "dependencies": { "@typescript-eslint/eslint-plugin": "^4.0.1", "@typescript-eslint/parser": "^4.0.1", + "date-fns": "^2.16.1", "gatsby": "^2.21.21", "gatsby-image": "^2.0.41", "gatsby-plugin-manifest": "^2.1.1", diff --git a/src/components/articleCard.js b/src/components/articleCard.tsx similarity index 100% rename from src/components/articleCard.js rename to src/components/articleCard.tsx diff --git a/src/components/blog/author.js b/src/components/blog/author.tsx similarity index 97% rename from src/components/blog/author.js rename to src/components/blog/author.tsx index 1e4043e..fe1cf2f 100644 --- a/src/components/blog/author.js +++ b/src/components/blog/author.tsx @@ -15,7 +15,7 @@ function Author() { fixed={data.avatar.childImageSharp.fixed} alt={author} imgStyle={{ - borderRadius: `50%`, + borderRadius: `100%`, }} /> diff --git a/src/components/footer.js b/src/components/footer.tsx similarity index 94% rename from src/components/footer.js rename to src/components/footer.tsx index 107db1a..a894bdc 100644 --- a/src/components/footer.js +++ b/src/components/footer.tsx @@ -48,9 +48,9 @@ export default function footer(props) { paddingRight: 0, }} > - {platforms.map(platform => { + {platforms.map((platform, index) => { return ( -
  • +
  • {platform.name}
  • ) diff --git a/src/components/layout.js b/src/components/layout.tsx similarity index 93% rename from src/components/layout.js rename to src/components/layout.tsx index 33305a7..cff1db5 100644 --- a/src/components/layout.js +++ b/src/components/layout.tsx @@ -1,11 +1,16 @@ -import React from "react" +import React, { ReactNode } from "react" import { Link } from "gatsby" import Footer from "./footer" import "../utils/normalize.css" -import "../utils/css/screen.css" +import "../utils/css/styles.css" -const Layout = props => { +interface LayoutProps { + title: string + children: ReactNode +} + +function Layout(props: LayoutProps) { const { title, children } = props const [toggleNav, setToggleNav] = React.useState(false) diff --git a/src/components/seo.js b/src/components/seo.tsx similarity index 100% rename from src/components/seo.js rename to src/components/seo.tsx diff --git a/src/pages/404.js b/src/pages/404.js deleted file mode 100644 index 008a76b..0000000 --- a/src/pages/404.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from "react" -import { graphql } from "gatsby" - -import Layout from "../components/layout" -import SEO from "../components/seo" - -class NotFoundPage extends React.Component { - render() { - const { data } = this.props - const siteTitle = data.site.siteMetadata.title - - return ( - - -

    Not Found

    -

    You just hit a route that doesn't exist... the sadness.

    -
    - ) - } -} - -export default NotFoundPage - -export const pageQuery = graphql` - query { - site { - siteMetadata { - title - } - } - } -` diff --git a/src/pages/404.tsx b/src/pages/404.tsx new file mode 100644 index 0000000..041c7fd --- /dev/null +++ b/src/pages/404.tsx @@ -0,0 +1,29 @@ +import React, { ReactElement } from "react" +import { graphql } from "gatsby" + +import Layout from "../components/layout" +import SEO from "../components/seo" + +interface Props {} + +export default function NotFoundPage({ data }: Props): ReactElement { + const siteTitle = data.site.siteMetadata.title + + return ( + + +

    Ohoh. Il n'y a rien à voir ici.

    +

    La page que vous demandez n'existe pas.

    +
    + ) +} + +export const pageQuery = graphql` + query { + site { + siteMetadata { + title + } + } + } +` diff --git a/src/pages/about.js b/src/pages/about.tsx similarity index 100% rename from src/pages/about.js rename to src/pages/about.tsx diff --git a/src/pages/design.js b/src/pages/design.tsx similarity index 100% rename from src/pages/design.js rename to src/pages/design.tsx diff --git a/src/pages/index.js b/src/pages/index.tsx similarity index 100% rename from src/pages/index.js rename to src/pages/index.tsx diff --git a/src/pages/podcast.js b/src/pages/podcast.tsx similarity index 100% rename from src/pages/podcast.js rename to src/pages/podcast.tsx diff --git a/src/templates/article.js b/src/templates/article.tsx similarity index 74% rename from src/templates/article.js rename to src/templates/article.tsx index 7466504..7dcb2c0 100644 --- a/src/templates/article.js +++ b/src/templates/article.tsx @@ -1,31 +1,38 @@ import React from "react" import { graphql } from "gatsby" import { RichText } from "prismic-reactjs" +import { formatDistanceToNow } from "date-fns" +import { fr } from "date-fns/locale" import Layout from "../components/layout" import SEO from "../components/seo" import Author from "../components/blog/author" export default function Article(props) { - const siteTitle = props.data.site.siteMetadata.title const doc = props.data.prismic.allBlog_posts.edges.slice(0, 1).pop() + const siteTitle = props.data.site.siteMetadata.title + const title = RichText.asText(doc.node.title) + const description = RichText.asText(doc.node.description) if (!doc) return null + const datePublished = formatDistanceToNow(new Date(doc.node.date), { + addSuffix: true, + locale: fr, + }) + return ( - +
    -

    - {RichText.asText(doc.node.title)} -

    +

    {title}

    -

    +

    {RichText.render(doc.node.description)} -

    +
    {doc.node.image && (
    @@ -39,7 +46,7 @@ export default function Article(props) {
    {RichText.render(doc.node.content)} -

    {doc.node.date}

    +

    Article publié {datePublished}

    diff --git a/src/utils/css/components/buttons.css b/src/utils/css/components/buttons.css index c4d35b5..aabb7f3 100644 --- a/src/utils/css/components/buttons.css +++ b/src/utils/css/components/buttons.css @@ -14,7 +14,7 @@ button, cursor: pointer; font-family: var(--font-sans-serif); font-size: 1.4rem; - font-weight: var(--font-normal); + font-weight: var(--font-bold); line-height: var(--height); text-align: center; text-decoration: none; diff --git a/src/utils/css/components/post-content.css b/src/utils/css/components/post-content.css new file mode 100644 index 0000000..0e79841 --- /dev/null +++ b/src/utils/css/components/post-content.css @@ -0,0 +1,155 @@ +.post-content { + max-width: 720px; + margin: 0 auto; + padding: 6vw 0; +} +.post-content .block-img { + display: flex; + margin-top: var(--space-6); + margin-bottom: var(--space-6); +} + +.post-content-header { + display: flex; + flex-direction: column; + align-items: center; +} + +.post-content-title { + margin: 0 0 3vw; + color: var(--color-base); + text-align: center; +} + +.post-content-excerpt { + margin: -2vw 0 3vw; + font-size: 2.2rem; + line-height: 1.6em; + color: var(--color-base); + text-align: center; + opacity: 0.5; +} + +@media (max-width: 500px) { + .post-content-excerpt { + font-size: 1.8rem; + } +} + +.post-content-image { + margin: 4vw 0; + position: relative; + width: 75vw; + min-width: 100%; + margin-left: calc(50% - 50vw); + margin-right: calc(50% - 50vw); + transform: translateX(calc(50vw - 50%)); +} + +.post-content-body { + font-size: 1.9rem; + line-height: 1.65em; +} +@media (max-width: 500px) { + .post-content-body { + font-size: 1.7rem; + } +} + +.post-content-body h1, +.post-content-body h2, +.post-content-body h3, +.post-content-body h4, +.post-content-body h5, +.post-content-body h6 { + color: var(--color-base); +} + +.post-content-body li { + word-break: break-word; +} + +.post-content-body li p { + margin: 0; +} + +.post-content-body iframe { + margin: 0 auto !important; +} + +.post-content-body blockquote { + margin: 0 0 1.5em; + padding: 0 1.5em; + border-left: var(--color-primary) 3px solid; +} + +.post-content-body blockquote p { + margin: 0 0 1em 0; + color: inherit; + font-size: inherit; + line-height: inherit; + font-style: italic; +} + +.post-content-body blockquote p:last-child { + margin-bottom: 0; +} + +.post-content-body code { + padding: 0 5px 2px; + font-size: 0.8em; + line-height: 1em; + font-weight: 400 !important; + background: var(--color-bg); + border-radius: 3px; +} + +.post-content-body p code { + word-break: break-all; +} + +.post-content-body pre { + overflow-x: auto; + margin: 1.5em 0 3em; + padding: 20px; + max-width: 100%; + border: color(var(--color-base) l(-10%)) 1px solid; + color: var(--color-bg); + font-size: 1.4rem; + line-height: 1.5em; + background: color(var(--color-base) l(-3%)); + border-radius: 5px; +} + +.post-content-body pre code { + padding: 0; + font-size: inherit; + line-height: inherit; + background: transparent; +} + +.post-content-body pre code :not(span) { + color: inherit; +} + +.post-content-body .fluid-width-video-wrapper { + margin: 1.5em 0 3em; +} + +.post-content-body hr { + margin: 4vw 0; +} + +.post-content-body hr:after { + content: ""; + position: absolute; + top: -15px; + left: 50%; + display: block; + margin-left: -10px; + width: 1px; + height: 30px; + background: color(var(--color-border) l(+10%)); + box-shadow: var(--color-bg) 0 0 0 5px; + transform: rotate(45deg); +} diff --git a/src/utils/css/screen.css b/src/utils/css/styles.css similarity index 76% rename from src/utils/css/screen.css rename to src/utils/css/styles.css index 5e808e8..e771d68 100644 --- a/src/utils/css/screen.css +++ b/src/utils/css/styles.css @@ -19,6 +19,7 @@ production stylesheet in assets/built/screen.css using gulp dev @import "components/hamburger.css"; @import "components/animations.css"; @import "components/footer.css"; +@import "components/post-content.css"; /* Main - Theme styles /* ---------------------------------------------------------- */ @@ -493,179 +494,6 @@ a.nav-current, } } -/* Post Content -/* ---------------------------------------------------------- */ - -.post-content { - max-width: 720px; - margin: 0 auto; - padding: 6vw 0; -} - -.post-content-header { - display: flex; - flex-direction: column; - align-items: center; -} - -.post-content-title { - margin: 0 0 3vw; - color: var(--color-base); - text-align: center; -} - -.post-content-excerpt { - margin: -2vw 0 3vw; - font-size: 2.2rem; - line-height: 1.6em; - color: var(--color-base); - text-align: center; - opacity: 0.5; -} -@media (max-width: 500px) { - .post-content-excerpt { - font-size: 1.8rem; - } -} - -.post-content-image { - margin: 4vw 0; - position: relative; - width: 75vw; - min-width: 100%; - margin-left: calc(50% - 50vw); - margin-right: calc(50% - 50vw); - transform: translateX(calc(50vw - 50%)); -} - -.post-content-body { - font-size: 1.9rem; - line-height: 1.65em; -} -@media (max-width: 500px) { - .post-content-body { - font-size: 1.7rem; - } -} - -.post-content-body h1, -.post-content-body h2, -.post-content-body h3, -.post-content-body h4, -.post-content-body h5, -.post-content-body h6 { - color: var(--color-base); -} - -.post-content-body li { - word-break: break-word; -} - -.post-content-body li p { - margin: 0; -} - -.post-content-body iframe { - margin: 0 auto !important; -} - -.post-content-body blockquote { - margin: 0 0 1.5em; - padding: 0 1.5em; - border-left: var(--color-primary) 3px solid; -} - -.post-content-body blockquote p { - margin: 0 0 1em 0; - color: inherit; - font-size: inherit; - line-height: inherit; - font-style: italic; -} - -.post-content-body blockquote p:last-child { - margin-bottom: 0; -} - -.post-content-body code { - padding: 0 5px 2px; - font-size: 0.8em; - line-height: 1em; - font-weight: 400 !important; - background: var(--color-bg); - border-radius: 3px; -} - -.post-content-body p code { - word-break: break-all; -} - -.post-content-body pre { - overflow-x: auto; - margin: 1.5em 0 3em; - padding: 20px; - max-width: 100%; - border: color(var(--color-base) l(-10%)) 1px solid; - color: var(--color-bg); - font-size: 1.4rem; - line-height: 1.5em; - background: color(var(--color-base) l(-3%)); - border-radius: 5px; -} - -.post-content-body pre code { - padding: 0; - font-size: inherit; - line-height: inherit; - background: transparent; -} - -.post-content-body pre code :not(span) { - color: inherit; -} - -.post-content-body .fluid-width-video-wrapper { - margin: 1.5em 0 3em; -} - -.post-content-body hr { - margin: 4vw 0; -} - -.post-content-body hr:after { - content: ""; - position: absolute; - top: -15px; - left: 50%; - display: block; - margin-left: -10px; - width: 1px; - height: 30px; - background: color(var(--color-border) l(+10%)); - box-shadow: var(--color-bg) 0 0 0 5px; - transform: rotate(45deg); -} - -.footnotes-sep { - margin-bottom: 30px; -} - -.footnotes { - font-size: 1.5rem; -} - -.footnotes p { - margin: 0; -} - -.footnote-backref { - color: var(--color-primary) !important; - font-size: 1.2rem; - font-weight: bold; - text-decoration: none !important; - box-shadow: none !important; -} - /* Author Archive /* ---------------------------------------------------------- */ diff --git a/src/utils/css/variables.css b/src/utils/css/variables.css index 120b448..0e49c83 100644 --- a/src/utils/css/variables.css +++ b/src/utils/css/variables.css @@ -10,7 +10,6 @@ --font-sans-serif: "Merriweather", serif; --font-serif: Georgia, Times, serif; --font-mono: Menlo, Courier, monospace; - --font-light: 100; --font-normal: 400; --font-bold: 700; --font-heavy: 800; @@ -26,4 +25,13 @@ --height: 4rem; --margin: 2rem; --radius: 0.5rem; + + /* spacing */ + --space-1: 2px; + --space-2: 4px; + --space-3: 8px; + --space-4: 16px; + --space-5: 32px; + --space-6: 64px; + --space-7: 128px; } diff --git a/src/utils/linkResolver.js b/src/utils/linkResolver.ts similarity index 100% rename from src/utils/linkResolver.js rename to src/utils/linkResolver.ts diff --git a/yarn.lock b/yarn.lock index 60b67b7..d6b7c30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4542,6 +4542,11 @@ date-fns@^2.12.0: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.13.0.tgz#d7b8a0a2d392e8d88a8024d0a46b980bbfdbd708" integrity sha512-xm0c61mevGF7f0XpCGtDTGpzEFC/1fpLXHbmFpxZZQJuvByIK2ozm6cSYuU+nxFYOPh2EuCfzUwlTEFwKG+h5w== +date-fns@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" + integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== + debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" From 6f410f320f346aa64ddf499a83a254b26b536efe Mon Sep 17 00:00:00 2001 From: David Leuliette Date: Sat, 5 Sep 2020 18:47:45 +0200 Subject: [PATCH 3/4] Fix render as Text --- gatsby-config.js | 16 +++++----------- src/components/articleCard.tsx | 2 +- src/templates/article.tsx | 1 + 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/gatsby-config.js b/gatsby-config.js index d392bdf..299d589 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,5 +1,4 @@ const urljoin = require("url-join") - const siteConfig = require("./siteConfig") module.exports = { @@ -96,18 +95,13 @@ module.exports = { { resolve: "gatsby-source-prismic-graphql", options: { - repositoryName: "artaufeminin", - // required - defaultLang: "fr-fr", - // optional, but recommended + repositoryName: "artaufeminin", // required + defaultLang: "fr-fr", // optional, but recommended pages: [ { - // optional - type: "Blog_post", - // TypeName from prismic - match: "/article/:uid", - // pages will be generated under this pattern - component: require.resolve("./src/templates/article.tsx"), + type: "Blog_post", // optional + match: "/article/:uid", // TypeName from prismic + component: require.resolve("./src/templates/article.tsx"), // pages will be generated under this pattern }, ], sharpKeys: [ diff --git a/src/components/articleCard.tsx b/src/components/articleCard.tsx index 38732a2..72e58df 100644 --- a/src/components/articleCard.tsx +++ b/src/components/articleCard.tsx @@ -22,7 +22,7 @@ export default function articleCard(props) { >
    -

    {RichText.render(title)}

    +

    {RichText.asText(title)}

    diff --git a/src/templates/article.tsx b/src/templates/article.tsx index 7dcb2c0..31f23e8 100644 --- a/src/templates/article.tsx +++ b/src/templates/article.tsx @@ -12,6 +12,7 @@ export default function Article(props) { const doc = props.data.prismic.allBlog_posts.edges.slice(0, 1).pop() const siteTitle = props.data.site.siteMetadata.title const title = RichText.asText(doc.node.title) + console.log("Article -> title", title) const description = RichText.asText(doc.node.description) if (!doc) return null From fdda9f25e279a2e5c379c6c4e1e2512e77f7d775 Mon Sep 17 00:00:00 2001 From: David Leuliette Date: Sat, 5 Sep 2020 18:52:39 +0200 Subject: [PATCH 4/4] Fix build --- src/templates/article.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/templates/article.tsx b/src/templates/article.tsx index 31f23e8..90f98c0 100644 --- a/src/templates/article.tsx +++ b/src/templates/article.tsx @@ -10,13 +10,12 @@ import Author from "../components/blog/author" export default function Article(props) { const doc = props.data.prismic.allBlog_posts.edges.slice(0, 1).pop() + if (!doc) return null + const siteTitle = props.data.site.siteMetadata.title const title = RichText.asText(doc.node.title) - console.log("Article -> title", title) const description = RichText.asText(doc.node.description) - if (!doc) return null - const datePublished = formatDistanceToNow(new Date(doc.node.date), { addSuffix: true, locale: fr,