diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..4a76d03 --- /dev/null +++ b/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + "next/babel", + "@zeit/next-typescript/babel" + ] +} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..f20d573 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +open_collective: badgen diff --git a/libs/live-handlers.js b/libs/live-handlers.js index bd651d4..8d89d45 100644 --- a/libs/live-handlers.js +++ b/libs/live-handlers.js @@ -16,7 +16,7 @@ module.exports = Object.entries(liveFns).map(([name, fn]) => { const style = req.headers.host === 'flat.badgen.net' ? 'flat' : undefined req.params = { subject, status, color, style } serveBadge(req, res, { - code: 200, // always 200 for badges + code: failed ? 500 : 200, sMaxAge: failed ? '0' : '360' }) }) diff --git a/package-lock.json b/package-lock.json index 52f909f..261ba11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1944,9 +1944,9 @@ "dev": true }, "@types/react": { - "version": "16.8.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.17.tgz", - "integrity": "sha512-pln3mgc6VfkNg92WXODul/ONo140huK9OMsx62GlBlZ2lvjNK86PQJhYMPLO1i66aF5O9OPyZefogvNltBIszA==", + "version": "16.8.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.18.tgz", + "integrity": "sha512-lUXdKzRqWR4FebR5tGHkLCqnvQJS4fdXKCBrNGGbglqZg2gpU+J82pMONevQODUotATs9fc9k66bx3/St8vReg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -2994,9 +2994,9 @@ "integrity": "sha512-CLaw1TOll1T4H0GPq521IuK+mQ5QvdOAqQy6kwCFrs6raWZ375ceby8WO4xINZcFB9M7eR7EgVEHLZhbyKp3Ow==" }, "badgen-icons": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/badgen-icons/-/badgen-icons-0.8.0.tgz", - "integrity": "sha512-UhYIJt9Mh++9rj2Fk5V38WdqqKJ5gBPm7LpIy+df2F9T33YAAUSVVVNSGb/ZJfRv2MhV+DzgHoLCH0qV6oPdKg==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/badgen-icons/-/badgen-icons-0.9.0.tgz", + "integrity": "sha512-7ZdSaxnhe90vQYb25onBTt+t+wbhwXDr4wM3x78GGvNouK3CE6Q+rx+sIVGWj5OJOce76T0h2gWpZIjKzFl2ew==" }, "bail": { "version": "1.0.3", @@ -5572,9 +5572,9 @@ "dev": true }, "esm": { - "version": "3.2.22", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.22.tgz", - "integrity": "sha512-z8YG7U44L82j1XrdEJcqZOLUnjxco8pO453gKOlaMD1/md1n/5QrscAmYG+oKUspsmDLuBFZrpbxI6aQ67yRxA==", + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true }, "espree": { @@ -7392,9 +7392,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ink": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ink/-/ink-2.1.1.tgz", - "integrity": "sha512-vP1yE/uJoiY6uB9yHalczUA02I9fg7xDUbTEZitPK5y6dvnPo9a/6UWqIB2uCYkHOhEZMN+D/TsVr4v2sz8qYA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ink/-/ink-2.2.0.tgz", + "integrity": "sha512-BQl7jpmLxPqFGjdQdgXQS0+mAyn1BHkEW1YXur3dahNNwLB6MWsfAZ1GWVdj+Mbpmj+u33KaFOosw3067t3d9g==", "dev": true, "requires": { "@types/react": "^16.8.6", @@ -7909,9 +7909,9 @@ } }, "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", "dev": true }, "@babel/template": { @@ -7926,16 +7926,16 @@ } }, "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/generator": "^7.4.4", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", + "@babel/parser": "^7.4.5", "@babel/types": "^7.4.4", "debug": "^4.1.0", "globals": "^11.1.0", @@ -8153,18 +8153,18 @@ } }, "istanbul-reports": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.4.tgz", - "integrity": "sha512-QCHGyZEK0bfi9GR215QSm+NJwFKEShbtc7tfbUdLAEzn3kKhLDDZqvljn8rPZM9v8CEOhzL1nlYoO4r1ryl67w==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", "dev": true, "requires": { "handlebars": "^4.1.2" } }, "jackspeak": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.3.7.tgz", - "integrity": "sha512-Z4iSFpaCV7Cocpcl5t9/UyPkisxenbmaqminyTgK6lDDMXcm9EvIZ9Bwr/uFbGOjfWlz1UZwKwFY5AvtgNlHuw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.0.tgz", + "integrity": "sha512-VDcSunT+wcccoG46FtzuBAyQKlzhHjli4q31e1fIHGOsRspqNUFjVzGb+7eIFDlTvqLygxapDHPHS0ouT2o/tw==", "dev": true, "requires": { "cliui": "^4.1.0" @@ -8792,9 +8792,9 @@ } }, "millify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/millify/-/millify-3.0.2.tgz", - "integrity": "sha512-I9SQ+dE56pLSU61YLJMo860smpEnGyWx1afgA9EnpHZOMb7PnLoLASN9qQUZ+m4VVz4CvfHUxERq2H8atGQqow==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/millify/-/millify-3.1.0.tgz", + "integrity": "sha512-YoXiOn1AsbXNa2U9bDbLOx/1rgS3JOwJcKZGYhkXRgZv0q+gofLZYDcITUtp3DsA28IlAwR+5sjW0XGCF8l7ZQ==", "requires": { "yargs": "^13.2.2" }, @@ -9685,16 +9685,6 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "lcid": { "version": "2.0.0", "resolved": false, @@ -10332,9 +10322,9 @@ "dev": true }, "picomatch": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.6.tgz", - "integrity": "sha512-Btng9qVvFsW6FkXYQQK5nEI5i8xdXFDmlKxC7Q8S2Bu5HGWnbQf7ts2kOoxJIrZn5hmw61RZIayAg2zBuJDtyQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", + "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", "dev": true }, "pify": { @@ -11474,9 +11464,9 @@ } }, "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.0.tgz", + "integrity": "sha512-kCqEOOHoBcFs/2Ccuk4Xarm/KiWRSLEX9CAZF8xkJ6ZPlIoTZ8V5f7J16vYLJqDbR7KrxTJpR2lqjIEm2Qx9cQ==" }, "semver-store": { "version": "0.3.0", @@ -11538,9 +11528,9 @@ "dev": true }, "serve-handler": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.0.0.tgz", - "integrity": "sha512-2/e0+N1abV1HAN+YN8uCOPi1B0bIYaR6kRcSfzezRwszak5Yzr6QhT34XJk2Bw89rhXenqwLNJb4NnF2/krnGQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.0.1.tgz", + "integrity": "sha512-k/im4Fbx96d8VcrJDjrsagNd9Vq18tVYRDDe90rpNO8Mr76KJF/zES5tBZdlLEbhBXjOs36m9Wl+hRCiDnYfmA==", "requires": { "bytes": "3.0.0", "content-disposition": "0.5.2", @@ -11568,11 +11558,11 @@ } }, "serve-marked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/serve-marked/-/serve-marked-1.0.0.tgz", - "integrity": "sha512-EEqjDS6/exogluWSrQdicDAXMLf+5t8nCVYw87UQW4zEUV3oOad9XmEX5IBF2jweWiTTcAj/VQ+iFfLSmsxXvQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/serve-marked/-/serve-marked-1.1.0.tgz", + "integrity": "sha512-37aaz3vr0GdcRMVIDO4V7VpLjpTpKKnZbIfT6SL3zRETx9pzJa+ER5l8lXagQ0MzPdmrLrxn3MX0m8YwXMQfug==", "requires": { - "marked": "^0.6.1" + "marked": "^0.6.2" } }, "set-blocking": { @@ -12303,9 +12293,9 @@ } }, "tap": { - "version": "13.1.8", - "resolved": "https://registry.npmjs.org/tap/-/tap-13.1.8.tgz", - "integrity": "sha512-WimjKgEZPOxSufS6Vfo/ACQmfMdLGmrIi9ZL6Q1mZpHcbdnBP4DgdIJWM+PKrLS4sbrIN2trKKlNO0QkziE1EQ==", + "version": "13.1.11", + "resolved": "https://registry.npmjs.org/tap/-/tap-13.1.11.tgz", + "integrity": "sha512-SgI0T/Na31XswviNA8tw0d71qOAZ1qjVMxpPO3XSW6372bVbz8pOR8ll2S4EnA+3yRfDSKN/rtj7gD+QjHJ2ow==", "dev": true, "requires": { "async-hook-domain": "^1.1.0", @@ -12317,7 +12307,7 @@ "coveralls": "^3.0.3", "diff": "^4.0.1", "domain-browser": "^1.2.0", - "esm": "^3.2.22", + "esm": "^3.2.25", "findit": "^2.0.0", "foreground-child": "^1.3.3", "fs-exists-cached": "^1.0.0", @@ -12409,9 +12399,9 @@ } }, "fsevents": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.6.tgz", - "integrity": "sha512-vfmKZp3XPM36DNF0qhW+Cdxk7xm7gTEHY1clv1Xq1arwRQuKZgAhw+NZNWbJBtuaNxzNXwhfdPYRrvIbjfS33A==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", + "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", "dev": true, "optional": true }, @@ -13014,24 +13004,16 @@ "dev": true }, "ts-node": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz", - "integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.1.tgz", + "integrity": "sha512-nd+mdxDP2BjQlyumBCMSU3IQLEjSla1X3uSzDfQ4M5OEZ3iDC01gjhs0FX29jyolATwLKB7YoRJ1Asbxd9EEoA==", "dev": true, "requires": { "arg": "^4.1.0", - "diff": "^3.1.0", + "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.6", "yn": "^3.0.0" - }, - "dependencies": { - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - } } }, "tslib": { @@ -13089,9 +13071,9 @@ "dev": true }, "uglify-js": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.12.tgz", - "integrity": "sha512-KeQesOpPiZNgVwJj8Ge3P4JYbQHUdZzpx6Fahy6eKAYRSV4zhVmLXoC+JtOeYxcHCHTve8RG1ZGdTvpeOUM26Q==", + "version": "3.5.15", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.15.tgz", + "integrity": "sha512-fe7aYFotptIddkwcm6YuA0HmknBZ52ZzOsUxZEdhhkSsz7RfjHDX2QDxwKTiv4JQ5t5NhfmpgAK+J7LiDhKSqg==", "dev": true, "optional": true, "requires": { @@ -13976,9 +13958,9 @@ } }, "write-file-atomic": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", - "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -14025,18 +14007,18 @@ "dev": true }, "yaml": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.5.1.tgz", - "integrity": "sha512-btfJvMOgVthGZSgHBMrDkLuQu4YxOycw6kwuC67cUEOKJmmNozjIa02eKvuSq7usqqqpwwCvflGTF6JcDvSudw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.6.0.tgz", + "integrity": "sha512-iZfse3lwrJRoSlfs/9KQ9iIXxs9++RvBFVzAqbbBiFT+giYtyanevreF9r61ZTbGMgWQBxAua3FzJiniiJXWWw==", "dev": true, "requires": { - "@babel/runtime": "^7.4.4" + "@babel/runtime": "^7.4.5" }, "dependencies": { "@babel/runtime": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz", - "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz", + "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==", "dev": true, "requires": { "regenerator-runtime": "^0.13.2" diff --git a/package.json b/package.json index 67daeec..eded326 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "badgen": "^2.7.1", - "badgen-icons": "^0.8.0", + "badgen-icons": "^0.9.0", "byte-size": "^5.0.1", "cheerio": "^1.0.0-rc.3", "chrome-webstore": "^1.2.1", @@ -32,12 +32,12 @@ "lodash.debounce": "^4.0.8", "micro": "^9.3.4", "micro-fork": "^2.0.0", - "millify": "^3.0.2", + "millify": "^3.1.0", "raven": "^2.6.4", "react-debounce-render": "^5.0.0", - "semver": "^6.0.0", - "serve-handler": "^6.0.0", - "serve-marked": "^1.0.0" + "semver": "^6.1.0", + "serve-handler": "^6.0.1", + "serve-marked": "^1.1.0" }, "devDependencies": { "@mdx-js/mdx": "^1.0.19", @@ -50,7 +50,7 @@ "react-dom": "^16.8.6", "standard": "^12.0.1", "supertest": "^4.0.2", - "tap": "^13.1.8", + "tap": "^13.1.11", "ts-node": "^8.1.0", "typescript": "^3.4.5" } diff --git a/pages/index.js b/pages/index.js index 6411996..53934ff 100644 --- a/pages/index.js +++ b/pages/index.js @@ -1,28 +1,81 @@ +import path from 'path' +import dynamic from 'next/dynamic' +import { useState } from 'react' import liveBadges from '../libs/examples-live.js' +import staticBadges from '../libs/examples-static.js' import BadgeExamples from '../components/badge-examples.js' import Header from '../components/home-header.js' import Intro from '../components/home-intro.js' import Footer from '../components/footer.js' -export default ({ children }) => <> -
-
- -

Examples

-

- live badges / static badges -

- -
-