diff options
| author | terminaldweller <thabogre@gmail.com> | 2021-04-10 05:46:34 +0000 | 
|---|---|---|
| committer | terminaldweller <thabogre@gmail.com> | 2021-04-10 05:46:34 +0000 | 
| commit | 849e1df9b269d8cb7e1fb918a8200f60a085318a (patch) | |
| tree | bcb0ef183aabaf6228712e005459872682bcc17b | |
| parent | trying to add syntax highlighting for markdown (diff) | |
| download | blog-849e1df9b269d8cb7e1fb918a8200f60a085318a.tar.gz blog-849e1df9b269d8cb7e1fb918a8200f60a085318a.zip | |
added a dockerfile. fixed the relative path issues
| -rw-r--r-- | Dockerfile | 9 | ||||
| -rw-r--r-- | css/master.css | 23 | ||||
| -rw-r--r-- | package-lock.json | 810 | ||||
| -rw-r--r-- | package.json | 1 | ||||
| -rwxr-xr-x | server.js | 12 | ||||
| -rw-r--r-- | views/index.ejs | 1 | 
6 files changed, 841 insertions, 15 deletions
| diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..974e6b0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:lts-alpine3.13 +COPY ./package.* /server/ +RUN cd /server && npm install --production +COPY ./css /server/css/ +COPY ./views /server/views/ +COPY ./mds /server/mds/ +COPY ./server.js /server/ +ENTRYPOINT ["/server/server.js"] +EXPOSE 3000 diff --git a/css/master.css b/css/master.css index 1bc3166..e1ebd90 100644 --- a/css/master.css +++ b/css/master.css @@ -1,27 +1,30 @@ +@import "parasiso-dark.css"; +  body{$    text-align: left;    padding: 2%;    border-style: solid;    position: relative; -  left: 8%; -  right: 100%; +  /* left: 0; */ +  /* right: 50%; */    white-space: -moz-pre-wrap !important; -  /* color: #005f87; */ -  /* background: #000000; */ +  color: #005f87; +  background: #000000;    font-family: "DejaVuSansMono NF", Helvetica, monospace;    overflow-wrap: break-word;  }  .sidenav { -  color: #00afd7; +  color: #005f87;    height: 100%; -  width: 8%; +  width: 10%; +  border-style: solid;    position: fixed; -  z-index: 1; +  z-index: 0;    top: 0; -  left: 0; -  background-color: #111; +  right: 0; +  background-color: #000000;    overflow-x: hidden; -  padding-top: 20px; +  padding-top: 1%;    text-align: center;  } diff --git a/package-lock.json b/package-lock.json index d79d7b7..923abfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@        "license": "ISC",        "dependencies": {          "ejs": "^3.1.6", +        "express": "^4.17.1",          "jsdom": "^16.2.2",          "katex": "^0.11.1",          "markdown-it": "^11.0.0", @@ -22,6 +23,18 @@        "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",        "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="      }, +    "node_modules/accepts": { +      "version": "1.3.7", +      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", +      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", +      "dependencies": { +        "mime-types": "~2.1.24", +        "negotiator": "0.6.2" +      }, +      "engines": { +        "node": ">= 0.6" +      } +    },      "node_modules/acorn": {        "version": "8.1.0",        "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", @@ -95,6 +108,11 @@          "sprintf-js": "~1.0.2"        }      }, +    "node_modules/array-flatten": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", +      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" +    },      "node_modules/asn1": {        "version": "0.2.4",        "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -147,6 +165,34 @@          "tweetnacl": "^0.14.3"        }      }, +    "node_modules/body-parser": { +      "version": "1.19.0", +      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", +      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", +      "dependencies": { +        "bytes": "3.1.0", +        "content-type": "~1.0.4", +        "debug": "2.6.9", +        "depd": "~1.1.2", +        "http-errors": "1.7.2", +        "iconv-lite": "0.4.24", +        "on-finished": "~2.3.0", +        "qs": "6.7.0", +        "raw-body": "2.4.0", +        "type-is": "~1.6.17" +      }, +      "engines": { +        "node": ">= 0.8" +      } +    }, +    "node_modules/body-parser/node_modules/qs": { +      "version": "6.7.0", +      "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", +      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", +      "engines": { +        "node": ">=0.6" +      } +    },      "node_modules/brace-expansion": {        "version": "1.1.11",        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -161,6 +207,14 @@        "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",        "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="      }, +    "node_modules/bytes": { +      "version": "3.1.0", +      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", +      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/caseless": {        "version": "0.12.0",        "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -213,6 +267,43 @@        "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",        "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="      }, +    "node_modules/content-disposition": { +      "version": "0.5.3", +      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", +      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", +      "dependencies": { +        "safe-buffer": "5.1.2" +      }, +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/content-disposition/node_modules/safe-buffer": { +      "version": "5.1.2", +      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", +      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" +    }, +    "node_modules/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==", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/cookie": { +      "version": "0.4.0", +      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", +      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/cookie-signature": { +      "version": "1.0.6", +      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", +      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" +    },      "node_modules/core-util-is": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -263,6 +354,14 @@          "node": ">=10"        }      }, +    "node_modules/debug": { +      "version": "2.6.9", +      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", +      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", +      "dependencies": { +        "ms": "2.0.0" +      } +    },      "node_modules/decimal.js": {        "version": "10.2.1",        "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", @@ -281,6 +380,19 @@          "node": ">=0.4.0"        }      }, +    "node_modules/depd": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", +      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/destroy": { +      "version": "1.0.4", +      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", +      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" +    },      "node_modules/domexception": {        "version": "2.0.1",        "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -309,6 +421,11 @@          "safer-buffer": "^2.1.0"        }      }, +    "node_modules/ee-first": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", +      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" +    },      "node_modules/ejs": {        "version": "3.1.6",        "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", @@ -323,11 +440,24 @@          "node": ">=0.10.0"        }      }, +    "node_modules/encodeurl": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", +      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/entities": {        "version": "2.0.3",        "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",        "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ=="      }, +    "node_modules/escape-html": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", +      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" +    },      "node_modules/escape-string-regexp": {        "version": "1.0.5",        "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -386,6 +516,67 @@          "node": ">=0.10.0"        }      }, +    "node_modules/etag": { +      "version": "1.8.1", +      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", +      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/express": { +      "version": "4.17.1", +      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", +      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", +      "dependencies": { +        "accepts": "~1.3.7", +        "array-flatten": "1.1.1", +        "body-parser": "1.19.0", +        "content-disposition": "0.5.3", +        "content-type": "~1.0.4", +        "cookie": "0.4.0", +        "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.2", +        "fresh": "0.5.2", +        "merge-descriptors": "1.0.1", +        "methods": "~1.1.2", +        "on-finished": "~2.3.0", +        "parseurl": "~1.3.3", +        "path-to-regexp": "0.1.7", +        "proxy-addr": "~2.0.5", +        "qs": "6.7.0", +        "range-parser": "~1.2.1", +        "safe-buffer": "5.1.2", +        "send": "0.17.1", +        "serve-static": "1.14.1", +        "setprototypeof": "1.1.1", +        "statuses": "~1.5.0", +        "type-is": "~1.6.18", +        "utils-merge": "1.0.1", +        "vary": "~1.1.2" +      }, +      "engines": { +        "node": ">= 0.10.0" +      } +    }, +    "node_modules/express/node_modules/qs": { +      "version": "6.7.0", +      "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", +      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", +      "engines": { +        "node": ">=0.6" +      } +    }, +    "node_modules/express/node_modules/safe-buffer": { +      "version": "5.1.2", +      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", +      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" +    },      "node_modules/extend": {        "version": "3.0.2",        "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -422,6 +613,23 @@          "minimatch": "^3.0.4"        }      }, +    "node_modules/finalhandler": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", +      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", +      "dependencies": { +        "debug": "2.6.9", +        "encodeurl": "~1.0.2", +        "escape-html": "~1.0.3", +        "on-finished": "~2.3.0", +        "parseurl": "~1.3.3", +        "statuses": "~1.5.0", +        "unpipe": "~1.0.0" +      }, +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/forever-agent": {        "version": "0.6.1",        "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -443,6 +651,22 @@          "node": ">= 0.12"        }      }, +    "node_modules/forwarded": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", +      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/fresh": { +      "version": "0.5.2", +      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", +      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", +      "engines": { +        "node": ">= 0.6" +      } +    },      "node_modules/getpass": {        "version": "0.1.7",        "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -499,6 +723,21 @@          "node": ">=10"        }      }, +    "node_modules/http-errors": { +      "version": "1.7.2", +      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", +      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", +      "dependencies": { +        "depd": "~1.1.2", +        "inherits": "2.0.3", +        "setprototypeof": "1.1.1", +        "statuses": ">= 1.5.0 < 2", +        "toidentifier": "1.0.0" +      }, +      "engines": { +        "node": ">= 0.6" +      } +    },      "node_modules/http-signature": {        "version": "1.2.0",        "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -524,6 +763,19 @@          "node": ">=0.10.0"        }      }, +    "node_modules/inherits": { +      "version": "2.0.3", +      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", +      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" +    }, +    "node_modules/ipaddr.js": { +      "version": "1.9.1", +      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", +      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", +      "engines": { +        "node": ">= 0.10" +      } +    },      "node_modules/is-potential-custom-element-name": {        "version": "1.0.1",        "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -717,6 +969,38 @@        "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",        "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="      }, +    "node_modules/media-typer": { +      "version": "0.3.0", +      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", +      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/merge-descriptors": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", +      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" +    }, +    "node_modules/methods": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", +      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/mime": { +      "version": "1.6.0", +      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", +      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", +      "bin": { +        "mime": "cli.js" +      }, +      "engines": { +        "node": ">=4" +      } +    },      "node_modules/mime-db": {        "version": "1.47.0",        "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", @@ -747,6 +1031,19 @@          "node": "*"        }      }, +    "node_modules/ms": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", +      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" +    }, +    "node_modules/negotiator": { +      "version": "0.6.2", +      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", +      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", +      "engines": { +        "node": ">= 0.6" +      } +    },      "node_modules/nwsapi": {        "version": "2.2.0",        "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -760,6 +1057,17 @@          "node": "*"        }      }, +    "node_modules/on-finished": { +      "version": "2.3.0", +      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", +      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", +      "dependencies": { +        "ee-first": "1.1.1" +      }, +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/optionator": {        "version": "0.8.3",        "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -781,6 +1089,19 @@        "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",        "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="      }, +    "node_modules/parseurl": { +      "version": "1.3.3", +      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", +      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", +      "engines": { +        "node": ">= 0.8" +      } +    }, +    "node_modules/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=" +    },      "node_modules/performance-now": {        "version": "2.1.0",        "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -794,6 +1115,18 @@          "node": ">= 0.8.0"        }      }, +    "node_modules/proxy-addr": { +      "version": "2.0.6", +      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", +      "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", +      "dependencies": { +        "forwarded": "~0.1.2", +        "ipaddr.js": "1.9.1" +      }, +      "engines": { +        "node": ">= 0.10" +      } +    },      "node_modules/psl": {        "version": "1.8.0",        "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -815,6 +1148,28 @@          "node": ">=0.6"        }      }, +    "node_modules/range-parser": { +      "version": "1.2.1", +      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", +      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", +      "engines": { +        "node": ">= 0.6" +      } +    }, +    "node_modules/raw-body": { +      "version": "2.4.0", +      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", +      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", +      "dependencies": { +        "bytes": "3.1.0", +        "http-errors": "1.7.2", +        "iconv-lite": "0.4.24", +        "unpipe": "1.0.0" +      }, +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/request": {        "version": "2.88.2",        "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -936,6 +1291,53 @@          "node": ">=10"        }      }, +    "node_modules/send": { +      "version": "0.17.1", +      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", +      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", +      "dependencies": { +        "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.7.2", +        "mime": "1.6.0", +        "ms": "2.1.1", +        "on-finished": "~2.3.0", +        "range-parser": "~1.2.1", +        "statuses": "~1.5.0" +      }, +      "engines": { +        "node": ">= 0.8.0" +      } +    }, +    "node_modules/send/node_modules/ms": { +      "version": "2.1.1", +      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", +      "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" +    }, +    "node_modules/serve-static": { +      "version": "1.14.1", +      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", +      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", +      "dependencies": { +        "encodeurl": "~1.0.2", +        "escape-html": "~1.0.3", +        "parseurl": "~1.3.3", +        "send": "0.17.1" +      }, +      "engines": { +        "node": ">= 0.8.0" +      } +    }, +    "node_modules/setprototypeof": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", +      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" +    },      "node_modules/source-map": {        "version": "0.6.1",        "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -974,6 +1376,14 @@          "node": ">=0.10.0"        }      }, +    "node_modules/statuses": { +      "version": "1.5.0", +      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", +      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", +      "engines": { +        "node": ">= 0.6" +      } +    },      "node_modules/stealthy-require": {        "version": "1.1.1",        "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -998,6 +1408,14 @@        "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",        "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="      }, +    "node_modules/toidentifier": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", +      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", +      "engines": { +        "node": ">=0.6" +      } +    },      "node_modules/tough-cookie": {        "version": "4.0.0",        "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -1049,6 +1467,18 @@          "node": ">= 0.8.0"        }      }, +    "node_modules/type-is": { +      "version": "1.6.18", +      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", +      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", +      "dependencies": { +        "media-typer": "0.3.0", +        "mime-types": "~2.1.24" +      }, +      "engines": { +        "node": ">= 0.6" +      } +    },      "node_modules/uc.micro": {        "version": "1.0.6",        "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -1062,6 +1492,14 @@          "node": ">= 4.0.0"        }      }, +    "node_modules/unpipe": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", +      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/uri-js": {        "version": "4.4.1",        "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -1070,6 +1508,14 @@          "punycode": "^2.1.0"        }      }, +    "node_modules/utils-merge": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", +      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", +      "engines": { +        "node": ">= 0.4.0" +      } +    },      "node_modules/uuid": {        "version": "3.4.0",        "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -1078,6 +1524,14 @@          "uuid": "bin/uuid"        }      }, +    "node_modules/vary": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", +      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", +      "engines": { +        "node": ">= 0.8" +      } +    },      "node_modules/verror": {        "version": "1.10.0",        "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -1189,6 +1643,15 @@        "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",        "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="      }, +    "accepts": { +      "version": "1.3.7", +      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", +      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", +      "requires": { +        "mime-types": "~2.1.24", +        "negotiator": "0.6.2" +      } +    },      "acorn": {        "version": "8.1.0",        "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", @@ -1242,6 +1705,11 @@          "sprintf-js": "~1.0.2"        }      }, +    "array-flatten": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", +      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" +    },      "asn1": {        "version": "0.2.4",        "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -1288,6 +1756,30 @@          "tweetnacl": "^0.14.3"        }      }, +    "body-parser": { +      "version": "1.19.0", +      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", +      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", +      "requires": { +        "bytes": "3.1.0", +        "content-type": "~1.0.4", +        "debug": "2.6.9", +        "depd": "~1.1.2", +        "http-errors": "1.7.2", +        "iconv-lite": "0.4.24", +        "on-finished": "~2.3.0", +        "qs": "6.7.0", +        "raw-body": "2.4.0", +        "type-is": "~1.6.17" +      }, +      "dependencies": { +        "qs": { +          "version": "6.7.0", +          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", +          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" +        } +      } +    },      "brace-expansion": {        "version": "1.1.11",        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1302,6 +1794,11 @@        "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",        "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="      }, +    "bytes": { +      "version": "3.1.0", +      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", +      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" +    },      "caseless": {        "version": "0.12.0",        "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -1348,6 +1845,36 @@        "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",        "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="      }, +    "content-disposition": { +      "version": "0.5.3", +      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", +      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", +      "requires": { +        "safe-buffer": "5.1.2" +      }, +      "dependencies": { +        "safe-buffer": { +          "version": "5.1.2", +          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", +          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" +        } +      } +    }, +    "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==" +    }, +    "cookie": { +      "version": "0.4.0", +      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", +      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" +    }, +    "cookie-signature": { +      "version": "1.0.6", +      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", +      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" +    },      "core-util-is": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -1391,6 +1918,14 @@          "whatwg-url": "^8.0.0"        }      }, +    "debug": { +      "version": "2.6.9", +      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", +      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", +      "requires": { +        "ms": "2.0.0" +      } +    },      "decimal.js": {        "version": "10.2.1",        "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", @@ -1406,6 +1941,16 @@        "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",        "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="      }, +    "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=" +    },      "domexception": {        "version": "2.0.1",        "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -1430,6 +1975,11 @@          "safer-buffer": "^2.1.0"        }      }, +    "ee-first": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", +      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" +    },      "ejs": {        "version": "3.1.6",        "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", @@ -1438,11 +1988,21 @@          "jake": "^10.6.1"        }      }, +    "encodeurl": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", +      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" +    },      "entities": {        "version": "2.0.3",        "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",        "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ=="      }, +    "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": {        "version": "1.0.5",        "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1475,6 +2035,60 @@        "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",        "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="      }, +    "etag": { +      "version": "1.8.1", +      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", +      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" +    }, +    "express": { +      "version": "4.17.1", +      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", +      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", +      "requires": { +        "accepts": "~1.3.7", +        "array-flatten": "1.1.1", +        "body-parser": "1.19.0", +        "content-disposition": "0.5.3", +        "content-type": "~1.0.4", +        "cookie": "0.4.0", +        "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.2", +        "fresh": "0.5.2", +        "merge-descriptors": "1.0.1", +        "methods": "~1.1.2", +        "on-finished": "~2.3.0", +        "parseurl": "~1.3.3", +        "path-to-regexp": "0.1.7", +        "proxy-addr": "~2.0.5", +        "qs": "6.7.0", +        "range-parser": "~1.2.1", +        "safe-buffer": "5.1.2", +        "send": "0.17.1", +        "serve-static": "1.14.1", +        "setprototypeof": "1.1.1", +        "statuses": "~1.5.0", +        "type-is": "~1.6.18", +        "utils-merge": "1.0.1", +        "vary": "~1.1.2" +      }, +      "dependencies": { +        "qs": { +          "version": "6.7.0", +          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", +          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" +        }, +        "safe-buffer": { +          "version": "5.1.2", +          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", +          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" +        } +      } +    },      "extend": {        "version": "3.0.2",        "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1508,6 +2122,20 @@          "minimatch": "^3.0.4"        }      }, +    "finalhandler": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", +      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", +      "requires": { +        "debug": "2.6.9", +        "encodeurl": "~1.0.2", +        "escape-html": "~1.0.3", +        "on-finished": "~2.3.0", +        "parseurl": "~1.3.3", +        "statuses": "~1.5.0", +        "unpipe": "~1.0.0" +      } +    },      "forever-agent": {        "version": "0.6.1",        "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -1523,6 +2151,16 @@          "mime-types": "^2.1.12"        }      }, +    "forwarded": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", +      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" +    }, +    "fresh": { +      "version": "0.5.2", +      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", +      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" +    },      "getpass": {        "version": "0.1.7",        "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -1563,6 +2201,18 @@          "whatwg-encoding": "^1.0.5"        }      }, +    "http-errors": { +      "version": "1.7.2", +      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", +      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", +      "requires": { +        "depd": "~1.1.2", +        "inherits": "2.0.3", +        "setprototypeof": "1.1.1", +        "statuses": ">= 1.5.0 < 2", +        "toidentifier": "1.0.0" +      } +    },      "http-signature": {        "version": "1.2.0",        "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -1581,6 +2231,16 @@          "safer-buffer": ">= 2.1.2 < 3"        }      }, +    "inherits": { +      "version": "2.0.3", +      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", +      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" +    }, +    "ipaddr.js": { +      "version": "1.9.1", +      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", +      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" +    },      "is-potential-custom-element-name": {        "version": "1.0.1",        "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -1745,6 +2405,26 @@        "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",        "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="      }, +    "media-typer": { +      "version": "0.3.0", +      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", +      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" +    }, +    "merge-descriptors": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", +      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" +    }, +    "methods": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", +      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" +    }, +    "mime": { +      "version": "1.6.0", +      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", +      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" +    },      "mime-db": {        "version": "1.47.0",        "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", @@ -1766,6 +2446,16 @@          "brace-expansion": "^1.1.7"        }      }, +    "ms": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", +      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" +    }, +    "negotiator": { +      "version": "0.6.2", +      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", +      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" +    },      "nwsapi": {        "version": "2.2.0",        "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -1776,6 +2466,14 @@        "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",        "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="      }, +    "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" +      } +    },      "optionator": {        "version": "0.8.3",        "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -1794,6 +2492,16 @@        "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",        "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="      }, +    "parseurl": { +      "version": "1.3.3", +      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", +      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" +    }, +    "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=" +    },      "performance-now": {        "version": "2.1.0",        "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -1804,6 +2512,15 @@        "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",        "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="      }, +    "proxy-addr": { +      "version": "2.0.6", +      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", +      "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", +      "requires": { +        "forwarded": "~0.1.2", +        "ipaddr.js": "1.9.1" +      } +    },      "psl": {        "version": "1.8.0",        "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -1819,6 +2536,22 @@        "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",        "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="      }, +    "range-parser": { +      "version": "1.2.1", +      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", +      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" +    }, +    "raw-body": { +      "version": "2.4.0", +      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", +      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", +      "requires": { +        "bytes": "3.1.0", +        "http-errors": "1.7.2", +        "iconv-lite": "0.4.24", +        "unpipe": "1.0.0" +      } +    },      "request": {        "version": "2.88.2",        "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -1904,6 +2637,49 @@          "xmlchars": "^2.2.0"        }      }, +    "send": { +      "version": "0.17.1", +      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", +      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", +      "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.7.2", +        "mime": "1.6.0", +        "ms": "2.1.1", +        "on-finished": "~2.3.0", +        "range-parser": "~1.2.1", +        "statuses": "~1.5.0" +      }, +      "dependencies": { +        "ms": { +          "version": "2.1.1", +          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", +          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" +        } +      } +    }, +    "serve-static": { +      "version": "1.14.1", +      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", +      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", +      "requires": { +        "encodeurl": "~1.0.2", +        "escape-html": "~1.0.3", +        "parseurl": "~1.3.3", +        "send": "0.17.1" +      } +    }, +    "setprototypeof": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", +      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" +    },      "source-map": {        "version": "0.6.1",        "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1931,6 +2707,11 @@          "tweetnacl": "~0.14.0"        }      }, +    "statuses": { +      "version": "1.5.0", +      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", +      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" +    },      "stealthy-require": {        "version": "1.1.1",        "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -1949,6 +2730,11 @@        "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",        "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="      }, +    "toidentifier": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", +      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" +    },      "tough-cookie": {        "version": "4.0.0",        "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -1988,6 +2774,15 @@          "prelude-ls": "~1.1.2"        }      }, +    "type-is": { +      "version": "1.6.18", +      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", +      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", +      "requires": { +        "media-typer": "0.3.0", +        "mime-types": "~2.1.24" +      } +    },      "uc.micro": {        "version": "1.0.6",        "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -1998,6 +2793,11 @@        "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",        "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=" +    },      "uri-js": {        "version": "4.4.1",        "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -2006,11 +2806,21 @@          "punycode": "^2.1.0"        }      }, +    "utils-merge": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", +      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" +    },      "uuid": {        "version": "3.4.0",        "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",        "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="      }, +    "vary": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", +      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" +    },      "verror": {        "version": "1.10.0",        "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", diff --git a/package.json b/package.json index a47eac5..ab27f5d 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@    "homepage": "https://github.com/terminaldweller/web#readme",    "dependencies": {      "ejs": "^3.1.6", +    "express": "^4.17.1",      "jsdom": "^16.2.2",      "katex": "^0.11.1",      "markdown-it": "^11.0.0", @@ -20,23 +20,25 @@ const mit = require("markdown-it")({ html: true })    });  const app = express(); -app.use(express.static("./")); +app.use(express.static(__dirname));  app.use(express.static(path.join(__dirname, "css"))); -app.set("views", "./views"); +app.set("views", path.join(__dirname, "views"));  app.set("view engine", "ejs");  app.engine("ejs", require("ejs").__express);  app.get("/", (req, res) => { -  let readStream = fs.createReadStream("./mds/cstruct2luatable.md", "utf-8"); +  let readStream = fs.createReadStream( +    path.join(__dirname, "mds/cstruct2luatable.md"), +    "utf-8" +  );    // FIXME-this is gonna be so wrong when the md is bigger than one chunk    readStream.on("data", (chunk) => {      res.render("index", {        data: {          blogHttp: mit.render(chunk), -        mds: ["c struct to lua table", "lazy makefiles", "telegram lua"], +        mds: fs.readdirSync(path.join(__dirname, "mds"), "utf-8"),        },      }); -    console.log(mit.render(chunk));    });  }); diff --git a/views/index.ejs b/views/index.ejs index f1f7bb1..69e8a9d 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -7,6 +7,7 @@      <link rel="stylesheet" href="/css/master.css" type="text/css" media="screen" title="no title" charset="utf-8">    </head>    <body> +    <script>0</script>      <div class="sidenav">        <% data.mds.forEach(function(md) { %>          <h2><%= md %></h2> | 
