Merge pull request #2478 from sveltejs/site/polka

Site: Migrate to Polka
pull/2558/head
Rich Harris 5 years ago committed by GitHub
commit b4fb2b77e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1360,6 +1360,11 @@
} }
} }
}, },
"@polka/send": {
"version": "1.0.0-next.2",
"resolved": "https://registry.npmjs.org/@polka/send/-/send-1.0.0-next.2.tgz",
"integrity": "sha512-eq8gUzykpYPuOMrnyAzsL4KunhQXZKFiNsbThAwh19PrBAz2v8mECsj3YnxjYYifbB1w1vhR74nsXQWDi80oAg=="
},
"@polka/url": { "@polka/url": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz", "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz",
@ -1492,11 +1497,6 @@
"integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
"dev": true "dev": true
}, },
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-map": { "array-map": {
"version": "0.0.0", "version": "0.0.0",
"resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
@ -1621,23 +1621,6 @@
"integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=",
"dev": true "dev": true
}, },
"body-parser": {
"version": "1.18.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
"integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
"requires": {
"bytes": "3.0.0",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "~1.6.3",
"iconv-lite": "0.4.23",
"on-finished": "~2.3.0",
"qs": "6.5.2",
"raw-body": "2.3.3",
"type-is": "~1.6.16"
}
},
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -1922,16 +1905,6 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
}, },
"content-disposition": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
},
"content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"convert-source-map": { "convert-source-map": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
@ -2097,16 +2070,6 @@
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
"optional": true "optional": true
}, },
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"devalue": { "devalue": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/devalue/-/devalue-1.1.0.tgz", "resolved": "https://registry.npmjs.org/devalue/-/devalue-1.1.0.tgz",
@ -2135,11 +2098,6 @@
"integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==",
"dev": true "dev": true
}, },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.124", "version": "1.3.124",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz",
@ -2152,11 +2110,6 @@
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true "dev": true
}, },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"end-of-stream": { "end-of-stream": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@ -2200,11 +2153,6 @@
"is-symbol": "^1.0.2" "is-symbol": "^1.0.2"
} }
}, },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@ -2241,11 +2189,6 @@
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"dev": true "dev": true
}, },
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"execa": { "execa": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
@ -2302,43 +2245,6 @@
} }
} }
}, },
"express": {
"version": "4.16.4",
"resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
"integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
"requires": {
"accepts": "~1.3.5",
"array-flatten": "1.1.1",
"body-parser": "1.18.3",
"content-disposition": "0.5.2",
"content-type": "~1.0.4",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.1.1",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "~2.3.0",
"parseurl": "~1.3.2",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.4",
"qs": "6.5.2",
"range-parser": "~1.2.0",
"safe-buffer": "5.1.2",
"send": "0.16.2",
"serve-static": "1.13.2",
"setprototypeof": "1.1.0",
"statuses": "~1.4.0",
"type-is": "~1.6.16",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
}
},
"express-session": { "express-session": {
"version": "1.16.1", "version": "1.16.1",
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.1.tgz", "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.1.tgz",
@ -2476,20 +2382,6 @@
} }
} }
}, },
"finalhandler": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "~2.3.0",
"parseurl": "~1.3.2",
"statuses": "~1.4.0",
"unpipe": "~1.0.0"
}
},
"find-up": { "find-up": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
@ -2531,11 +2423,6 @@
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
"dev": true "dev": true
}, },
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
},
"fragment-cache": { "fragment-cache": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@ -2545,11 +2432,6 @@
"map-cache": "^0.2.2" "map-cache": "^0.2.2"
} }
}, },
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs-extra": { "fs-extra": {
"version": "4.0.3", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
@ -3373,31 +3255,12 @@
} }
} }
}, },
"http-errors": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.0",
"statuses": ">= 1.4.0 < 2"
}
},
"http-link-header": { "http-link-header": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.2.tgz", "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.2.tgz",
"integrity": "sha512-z6YOZ8ZEnejkcCWlGZzYXNa6i+ZaTfiTg3WhlV/YvnNya3W/RbX1bMVUMTuCrg/DrtTCQxaFCkXCz4FtLpcebg==", "integrity": "sha512-z6YOZ8ZEnejkcCWlGZzYXNa6i+ZaTfiTg3WhlV/YvnNya3W/RbX1bMVUMTuCrg/DrtTCQxaFCkXCz4FtLpcebg==",
"dev": true "dev": true
}, },
"iconv-lite": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ieee754": { "ieee754": {
"version": "1.1.13", "version": "1.1.13",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
@ -3443,11 +3306,6 @@
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
"dev": true "dev": true
}, },
"ipaddr.js": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
},
"is-accessor-descriptor": { "is-accessor-descriptor": {
"version": "0.1.6", "version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
@ -3897,11 +3755,6 @@
"resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz",
"integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==" "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA=="
}, },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"mem": { "mem": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
@ -3919,11 +3772,6 @@
"integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
"dev": true "dev": true
}, },
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"merge-stream": { "merge-stream": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
@ -3933,11 +3781,6 @@
"readable-stream": "^2.0.1" "readable-stream": "^2.0.1"
} }
}, },
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"micromatch": { "micromatch": {
"version": "3.1.10", "version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@ -3962,7 +3805,8 @@
"mime": { "mime": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
"dev": true
}, },
"mime-db": { "mime-db": {
"version": "1.38.0", "version": "1.38.0",
@ -4361,14 +4205,6 @@
"integrity": "sha1-3LcCTazVDFK00wPwSALJHAV8dl8=", "integrity": "sha1-3LcCTazVDFK00wPwSALJHAV8dl8=",
"dev": true "dev": true
}, },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"requires": {
"ee-first": "1.1.1"
}
},
"on-headers": { "on-headers": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
@ -4565,11 +4401,6 @@
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
}, },
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"path-type": { "path-type": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
@ -4637,6 +4468,22 @@
"integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
"dev": true "dev": true
}, },
"polka": {
"version": "1.0.0-next.2",
"resolved": "https://registry.npmjs.org/polka/-/polka-1.0.0-next.2.tgz",
"integrity": "sha512-y82w42/8IA7bc4YwGwAmnbrXj8ZWWDGvnfwq1b0eCtFielZSSSJv7OXUIKQuc/vw5OCCM1hPIgrYsNPzbwDaJw==",
"requires": {
"@polka/url": "^1.0.0-next.1",
"trouter": "^3.0.1"
},
"dependencies": {
"@polka/url": {
"version": "1.0.0-next.1",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.1.tgz",
"integrity": "sha512-6d8YbKW4hjJMnU6ZJSDLtALWiB4J//OIPaP885ruf5U8MLZHigocDxhjgvLwbV6bGkikhllgTjD9eWioKWAQdA=="
}
}
},
"posix-character-classes": { "posix-character-classes": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@ -4669,15 +4516,6 @@
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true "dev": true
}, },
"proxy-addr": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
"requires": {
"forwarded": "~0.1.2",
"ipaddr.js": "1.8.0"
}
},
"pump": { "pump": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@ -4688,32 +4526,11 @@
"once": "^1.3.1" "once": "^1.3.1"
} }
}, },
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
},
"random-bytes": { "random-bytes": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
}, },
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"raw-body": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
"integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
"requires": {
"bytes": "3.0.0",
"http-errors": "1.6.3",
"iconv-lite": "0.4.23",
"unpipe": "1.0.0"
}
},
"read-pkg": { "read-pkg": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@ -4805,6 +4622,11 @@
"integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==", "integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==",
"dev": true "dev": true
}, },
"regexparam": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.2.1.tgz",
"integrity": "sha512-L/xx/JNXFvejDD9b4FukSh2wCyYUpxSTnLkMpcZc/ygnmaF6ETnphh+FDKZS8XBGmu2e3GoZ1why9qkTYqr1ag=="
},
"regexpu-core": { "regexpu-core": {
"version": "4.5.4", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz",
@ -5029,11 +4851,6 @@
"ret": "~0.1.10" "ret": "~0.1.10"
} }
}, },
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sander": { "sander": {
"version": "0.6.0", "version": "0.6.0",
"resolved": "https://registry.npmjs.org/sander/-/sander-0.6.0.tgz", "resolved": "https://registry.npmjs.org/sander/-/sander-0.6.0.tgz",
@ -5084,43 +4901,12 @@
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true "dev": true
}, },
"send": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
"requires": {
"debug": "2.6.9",
"depd": "~1.1.2",
"destroy": "~1.0.4",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "~1.6.2",
"mime": "1.4.1",
"ms": "2.0.0",
"on-finished": "~2.3.0",
"range-parser": "~1.2.0",
"statuses": "~1.4.0"
}
},
"serialize-javascript": { "serialize-javascript": {
"version": "1.6.1", "version": "1.6.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz",
"integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==",
"dev": true "dev": true
}, },
"serve-static": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.2",
"send": "0.16.2"
}
},
"session-file-store": { "session-file-store": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.2.0.tgz", "resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.2.0.tgz",
@ -5162,11 +4948,6 @@
} }
} }
}, },
"setprototypeof": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
"shebang-command": { "shebang-command": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@ -5466,11 +5247,6 @@
} }
} }
}, },
"statuses": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
},
"string-hash": { "string-hash": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
@ -5666,13 +5442,12 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true "dev": true
}, },
"type-is": { "trouter": {
"version": "1.6.16", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.0.1.tgz",
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "integrity": "sha512-9IBGrlL5bW65xhWufCCf4AsZyxGVIxv7Jy+PTwNtfPHJo+8hAp4wvt/+ersAHE//0Lgjy7obPROfgasNocoYuA==",
"requires": { "requires": {
"media-typer": "0.3.0", "regexparam": "^1.2.0"
"mime-types": "~2.1.18"
} }
}, },
"uglify-js": { "uglify-js": {
@ -5780,11 +5555,6 @@
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
}, },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"unset-value": { "unset-value": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",

@ -14,10 +14,10 @@
"testsrc": "mocha -r esm test/**" "testsrc": "mocha -r esm test/**"
}, },
"dependencies": { "dependencies": {
"@polka/send": "^1.0.0-next.2",
"codemirror": "^5.44.0", "codemirror": "^5.44.0",
"devalue": "^1.1.0", "devalue": "^1.1.0",
"do-not-zip": "^1.0.0", "do-not-zip": "^1.0.0",
"express": "^4.16.4",
"express-session": "^1.15.6", "express-session": "^1.15.6",
"golden-fleece": "^1.0.9", "golden-fleece": "^1.0.9",
"limax": "^1.7.0", "limax": "^1.7.0",
@ -25,6 +25,7 @@
"node-fetch": "^2.3.0", "node-fetch": "^2.3.0",
"passport": "^0.4.0", "passport": "^0.4.0",
"passport-github": "^1.1.0", "passport-github": "^1.1.0",
"polka": "^1.0.0-next.2",
"prismjs": "^1.15.0", "prismjs": "^1.15.0",
"session-file-store": "^1.2.0", "session-file-store": "^1.2.0",
"shelljs": "^0.8.3", "shelljs": "^0.8.3",

@ -1,9 +1,10 @@
import send from '@polka/send';
export function get(req, res) { export function get(req, res) {
if (!req.session || !req.session.passport || !req.session.passport.user) { if (!req.session || !req.session.passport || !req.session.passport.user) {
res.send('null'); return send(res, 200, 'null');
return;
} }
const { id, username, displayName, photo } = req.session.passport && req.session.passport.user; const { id, username, displayName, photo } = req.session.passport.user;
res.send({ id, username, displayName, photo }); send(res, 200, { id, username, displayName, photo });
} }

@ -1,3 +1,4 @@
import send from '@polka/send';
import get_posts from './_posts.js'; import get_posts from './_posts.js';
let lookup; let lookup;
@ -6,18 +7,16 @@ export function get(req, res) {
if (!lookup || process.env.NODE_ENV !== 'production') { if (!lookup || process.env.NODE_ENV !== 'production') {
lookup = new Map(); lookup = new Map();
get_posts().forEach(post => { get_posts().forEach(post => {
lookup.set(post.slug, JSON.stringify(post)); lookup.set(post.slug, post);
}); });
} }
if (lookup.has(req.params.slug)) { const post = lookup.get(req.params.slug);
res.set({
'Content-Type': 'application/json', if (post) {
'Cache-Control': `max-age=${5 * 60 * 1e3}` // 5 minutes res.setHeader('Cache-Control', `max-age=${5 * 60 * 1e3}`); // 5 minutes
}); send(res, 200, post);
res.end(lookup.get(req.params.slug));
} else { } else {
res.statusCode = 404; send(res, 404, { message: 'not found' });
res.end(JSON.stringify({ message: 'not found' }));
} }
} }

@ -1,3 +1,4 @@
import send from '@polka/send';
import get_posts from './_posts.js'; import get_posts from './_posts.js';
let json; let json;
@ -16,9 +17,8 @@ export function get(req, res) {
json = JSON.stringify(posts); json = JSON.stringify(posts);
} }
res.set({ send(res, 200, json, {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Cache-Control': `max-age=${5 * 60 * 1e3}` // 5 minutes 'Cache-Control': `max-age=${5 * 60 * 1e3}` // 5 minutes
}); });
res.end(json); }
}

@ -1,3 +1,4 @@
import send from '@polka/send';
import get_posts from '../blog/_posts.js'; import get_posts from '../blog/_posts.js';
const months = ',Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','); const months = ',Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(',');
@ -34,9 +35,8 @@ const rss = `
`.replace(/>[^\S]+/gm, '>').replace(/[^\S]+</gm, '<').trim(); `.replace(/>[^\S]+/gm, '>').replace(/[^\S]+</gm, '<').trim();
export function get(req, res) { export function get(req, res) {
res.set({ send(res, 200, rss, {
'Cache-Control': `max-age=${30 * 60 * 1e3}`, 'Cache-Control': `max-age=${30 * 60 * 1e3}`,
'Content-Type': 'application/rss+xml' 'Content-Type': 'application/rss+xml'
}); });
res.end(rss);
} }

@ -58,7 +58,7 @@ export default function() {
renderer.link = link_renderer; renderer.link = link_renderer;
renderer.hr = (...args) => { renderer.hr = () => {
block_open = true; block_open = true;
return '<div class="side-by-side"><div class="copy">'; return '<div class="side-by-side"><div class="copy">';
@ -94,7 +94,7 @@ export default function() {
lang lang
); );
let html = `<div class='${className}'>${prefix}<pre class='language-${plang}'><code>${highlighted}</code></pre></div>`; const html = `<div class='${className}'>${prefix}<pre class='language-${plang}'><code>${highlighted}</code></pre></div>`;
if (block_open) { if (block_open) {
block_open = false; block_open = false;

@ -1,15 +1,12 @@
import send from '@polka/send';
import get_sections from './_sections.js'; import get_sections from './_sections.js';
let json; let json;
export function get(req, res) { export function get(req, res) {
if (!json || process.env.NODE_ENV !== 'production') { if (!json || process.env.NODE_ENV !== 'production') {
json = JSON.stringify(get_sections()); json = get_sections();
} }
res.set({ send(res, 200, json);
'Content-Type': 'application/json' }
});
res.end(json);
}

@ -1,3 +1,4 @@
import send from '@polka/send';
import { get_example } from './_examples.js'; import { get_example } from './_examples.js';
const cache = new Map(); const cache = new Map();
@ -6,20 +7,17 @@ export function get(req, res) {
const { slug } = req.params; const { slug } = req.params;
try { try {
if (!cache.has(slug) || process.env.NODE_ENV !== 'production') { let example = cache.get(slug);
cache.set(slug, JSON.stringify(get_example(slug)));
}
res.writeHead(200, { if (!example || process.env.NODE_ENV !== 'production') {
'Content-Type': 'application/json' example = get_example(slug);
}); cache.set(slug, example);
}
res.end(cache.get(slug)); send(res, 200, example);
} catch (err) { } catch (err) {
res.writeHead(404, { send(res, 404, {
'Content-Type': 'application/json' error: 'not found'
}); });
res.end(JSON.stringify({ error: 'not found' }));
} }
} }

@ -1,5 +1,4 @@
import fs from 'fs'; import fs from 'fs';
import path from 'path';
let lookup; let lookup;
const titles = new Map(); const titles = new Map();
@ -48,4 +47,4 @@ export function get_example(slug) {
}); });
return { title, files }; return { title, files };
} }

@ -1,3 +1,4 @@
import send from '@polka/send';
import { get_examples } from './_examples.js'; import { get_examples } from './_examples.js';
let cached; let cached;
@ -5,19 +6,13 @@ let cached;
export function get(req, res) { export function get(req, res) {
try { try {
if (!cached || process.env.NODE_ENV !== 'production') { if (!cached || process.env.NODE_ENV !== 'production') {
cached = JSON.stringify(get_examples().filter(section => section.title)); cached = get_examples().filter(section => section.title);
} }
res.writeHead(200, { send(res, 200, cached);
'Content-Type': 'application/json'
});
res.end(cached);
} catch (e) { } catch (e) {
res.writeHead(e.status || 500, { send(res, e.status || 500, {
'Content-Type': 'application/json' message: e.message
}); });
res.end(JSON.stringify({ message: e.message }));
} }
} }

@ -1,5 +1,6 @@
import fetch from 'node-fetch'; import fetch from 'node-fetch';
import { body } from './_utils.js'; import { body } from './_utils.js';
import send from '@polka/send';
export async function get(req, res) { export async function get(req, res) {
const { id } = req.params; const { id } = req.params;
@ -14,22 +15,18 @@ export async function get(req, res) {
headers headers
}); });
res.writeHead(r.status, {
'Content-Type': 'application/json'
});
const result = await r.json(); const result = await r.json();
if (r.status === 200) { if (r.status === 200) {
res.end(JSON.stringify({ send(res, 200, {
id: result.id, id: result.id,
description: result.description, description: result.description,
owner: result.owner, owner: result.owner,
html_url: result.html_url, html_url: result.html_url,
files: result.files files: result.files
})); });
} else { } else {
res.end(JSON.stringify(result)); send(res, r.status, result);
} }
} }
@ -37,11 +34,7 @@ export async function patch(req, res) {
const user = req.session && req.session.passport && req.session.passport.user; const user = req.session && req.session.passport && req.session.passport.user;
if (!user) { if (!user) {
res.writeHead(403, { return send(res, 403, { error: 'unauthorized' });
'Content-Type': 'application/json'
});
res.end(JSON.stringify({ error: 'unauthorized' }));
return;
} }
try { try {
@ -58,24 +51,16 @@ export async function patch(req, res) {
}) })
}); });
res.writeHead(r.status, {
'Content-Type': 'application/json'
});
if (r.status === 200) { if (r.status === 200) {
res.end(JSON.stringify({ send(res, 200, { ok: true });
ok: true
}));
} else { } else {
res.end(await r.text()); send(res, r.status, await r.text(), {
'Content-Type': 'application/json'
});
} }
} catch (err) { } catch (err) {
res.writeHead(500, { send(res, 500, {
'Content-Type': 'application/json'
});
res.end(JSON.stringify({
error: err.message error: err.message
})); });
} }
} }

@ -1,15 +1,12 @@
import fetch from 'node-fetch'; import fetch from 'node-fetch';
import { body } from './_utils.js'; import { body } from './_utils.js';
import send from '@polka/send';
export async function post(req, res) { export async function post(req, res) {
const user = req.session.passport && req.session.passport.user; const user = req.session.passport && req.session.passport.user;
if (!user) { if (!user) {
res.writeHead(403, { return send(res, 403, { error: 'unauthorized' });
'Content-Type': 'application/json'
});
res.end(JSON.stringify({ error: 'unauthorized' }));
return;
} }
try { try {
@ -45,26 +42,18 @@ export async function post(req, res) {
}) })
}); });
res.writeHead(r.status, {
'Content-Type': 'application/json'
});
const gist = await r.json(); const gist = await r.json();
res.end(JSON.stringify({ send(res, r.status, {
id: gist.id, id: gist.id,
description: gist.description, description: gist.description,
owner: gist.owner, owner: gist.owner,
html_url: gist.html_url, html_url: gist.html_url,
files: gist.files files: gist.files
}));
} catch (err) {
res.writeHead(500, {
'Content-Type': 'application/json'
}); });
} catch (err) {
res.end(JSON.stringify({ send(res, 500, {
error: err.message error: err.message
})); });
} }
} }

@ -2,6 +2,7 @@ import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
import marked from 'marked'; import marked from 'marked';
import PrismJS from 'prismjs'; import PrismJS from 'prismjs';
import send from '@polka/send';
import { extract_frontmatter, extract_metadata, langs, link_renderer } from '../../../utils/markdown'; import { extract_frontmatter, extract_metadata, langs, link_renderer } from '../../../utils/markdown';
const cache = new Map(); const cache = new Map();
@ -94,20 +95,15 @@ function get_tutorial(slug) {
export function get(req, res) { export function get(req, res) {
const { slug } = req.params; const { slug } = req.params;
if (!cache.has(slug) || process.env.NODE_ENV !== 'production') { let tut = cache.get(slug);
cache.set(slug, JSON.stringify(get_tutorial(slug))); if (!tut || process.env.NODE_ENV !== 'production') {
tut = get_tutorial(slug);
cache.set(slug, tut);
} }
const json = cache.get(slug); if (tut) {
send(res, 200, tut);
res.set({
'Content-Type': 'application/json'
});
if (json) {
res.end(json);
} else { } else {
res.statusCode = 404; send(res, 404, { message: 'not found' });
res.end(JSON.stringify({ message: 'not found' }));
} }
} }

@ -1,4 +1,5 @@
import * as fs from 'fs'; import * as fs from 'fs';
import send from '@polka/send';
import { extract_frontmatter } from '../../utils/markdown'; import { extract_frontmatter } from '../../utils/markdown';
let json; let json;
@ -41,7 +42,7 @@ function get_sections() {
throw new Error(`Error building tutorial ${dir}/${tutorial}: ${err.message}`); throw new Error(`Error building tutorial ${dir}/${tutorial}: ${err.message}`);
} }
}) })
} };
}); });
return sections; return sections;
@ -50,21 +51,13 @@ function get_sections() {
export function get(req, res) { export function get(req, res) {
try { try {
if (!json || process.env.NODE_ENV !== 'production') { if (!json || process.env.NODE_ENV !== 'production') {
json = JSON.stringify(get_sections()); json = get_sections();
} }
res.set({ send(res, 200, json);
'Content-Type': 'application/json'
});
res.end(json);
} catch (err) { } catch (err) {
res.writeHead(500, { send(res, 500, {
'Content-Type': 'application/json'
});
res.end(JSON.stringify({
message: err.message message: err.message
})); });
} }
} }

@ -1,14 +1,14 @@
import 'dotenv/config'; import 'dotenv/config';
import sirv from 'sirv'; import sirv from 'sirv';
import express from 'express'; import polka from 'polka';
import devalue from 'devalue';
import session from 'express-session'; import session from 'express-session';
import passport from 'passport'; import passport from 'passport';
import { Strategy } from 'passport-github'; import { Strategy } from 'passport-github';
import sessionFileStore from 'session-file-store'; import sessionFileStore from 'session-file-store';
import devalue from 'devalue';
import * as sapper from '@sapper/server'; import * as sapper from '@sapper/server';
const app = express(); const app = polka();
if (process.env.GITHUB_CLIENT_ID) { if (process.env.GITHUB_CLIENT_ID) {
const FileStore = sessionFileStore(session); const FileStore = sessionFileStore(session);
@ -66,7 +66,8 @@ if (process.env.GITHUB_CLIENT_ID) {
.get('/auth/callback', passport.authenticate('github', { failureRedirect: '/auth/error' }), (req, res) => { .get('/auth/callback', passport.authenticate('github', { failureRedirect: '/auth/error' }), (req, res) => {
const { id, username, displayName, photo } = req.session.passport && req.session.passport.user; const { id, username, displayName, photo } = req.session.passport && req.session.passport.user;
res.set({ 'Content-Type': 'text/html; charset=utf-8' }); res.setHeader('Content-Type', 'text/html; charset=utf-8');
res.end(` res.end(`
<script> <script>
window.opener.postMessage({ window.opener.postMessage({

@ -76,7 +76,7 @@ self.addEventListener('fetch', event => {
const response = await fetch(event.request); const response = await fetch(event.request);
cache.put(event.request, response.clone()); cache.put(event.request, response.clone());
return response; return response;
} catch(err) { } catch (err) {
const response = await cache.match(event.request); const response = await cache.match(event.request);
if (response) return response; if (response) return response;

@ -13,7 +13,7 @@ export function keyEvent(code) {
node.removeEventListener('keydown', handleKeydown); node.removeEventListener('keydown', handleKeydown);
} }
}; };
} };
} }
export const enter = keyEvent(13); export const enter = keyEvent(13);

@ -49,13 +49,13 @@ export function link_renderer (href, title, text) {
let target_attr = ''; let target_attr = '';
let title_attr = ''; let title_attr = '';
if(href.startsWith("http")) { if (href.startsWith("http")) {
target_attr = ' target="_blank"'; target_attr = ' target="_blank"';
} }
if(title !== null) { if (title !== null) {
title_attr = ` title="${title}"`; title_attr = ` title="${title}"`;
} }
return `<a href="${href}"${target_attr}${title_attr}>${text}</a>`; return `<a href="${href}"${target_attr}${title_attr}>${text}</a>`;
}; }

Loading…
Cancel
Save