implement rate-limiting just in case

This commit is contained in:
Wouter Groeneveld 2021-03-08 09:35:36 +01:00
parent c1035cd8f0
commit 3045291d09
4 changed files with 870 additions and 29 deletions

476
.pnp.js generated
View File

@ -42,7 +42,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["koa-body", "npm:4.2.0"],
["koa-helmet", "npm:6.0.0"],
["koa-logger", "npm:3.2.1"],
["koa-router", "npm:10.0.0"]
["koa-router", "npm:10.0.0"],
["koa2-ratelimit", "npm:0.9.0"]
],
"linkType": "SOFT",
}]
@ -922,6 +923,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["@types/bson", [
["npm:4.0.3", {
"packageLocation": "./.yarn/cache/@types-bson-npm-4.0.3-4ec8c44242-73c0179851.zip/node_modules/@types/bson/",
"packageDependencies": [
["@types/bson", "npm:4.0.3"],
["@types/node", "npm:14.14.32"]
],
"linkType": "HARD",
}]
]],
["@types/formidable", [
["npm:1.0.32", {
"packageLocation": "./.yarn/cache/@types-formidable-npm-1.0.32-12f895a971-98f3f54727.zip/node_modules/@types/formidable/",
@ -971,6 +982,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["@types/mongodb", [
["npm:3.6.9", {
"packageLocation": "./.yarn/cache/@types-mongodb-npm-3.6.9-2e9fa33eb9-ab78a36f7d.zip/node_modules/@types/mongodb/",
"packageDependencies": [
["@types/mongodb", "npm:3.6.9"],
["@types/bson", "npm:4.0.3"],
["@types/node", "npm:14.14.32"]
],
"linkType": "HARD",
}]
]],
["@types/node", [
["npm:14.14.32", {
"packageLocation": "./.yarn/cache/@types-node-npm-14.14.32-2727f07820-ae73f3b668.zip/node_modules/@types/node/",
@ -1455,6 +1477,33 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["bl", [
["npm:2.2.1", {
"packageLocation": "./.yarn/cache/bl-npm-2.2.1-f294e1ea12-438c510aa2.zip/node_modules/bl/",
"packageDependencies": [
["bl", "npm:2.2.1"],
["readable-stream", "npm:2.3.7"],
["safe-buffer", "npm:5.2.1"]
],
"linkType": "HARD",
}]
]],
["bluebird", [
["npm:3.5.1", {
"packageLocation": "./.yarn/cache/bluebird-npm-3.5.1-f0d1499f67-11347ec6d5.zip/node_modules/bluebird/",
"packageDependencies": [
["bluebird", "npm:3.5.1"]
],
"linkType": "HARD",
}],
["npm:3.7.2", {
"packageLocation": "./.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-4f2288662f.zip/node_modules/bluebird/",
"packageDependencies": [
["bluebird", "npm:3.7.2"]
],
"linkType": "HARD",
}]
]],
["brace-expansion", [
["npm:1.1.11", {
"packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-4c878e25e4.zip/node_modules/brace-expansion/",
@ -1526,6 +1575,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["bson", [
["npm:1.1.5", {
"packageLocation": "./.yarn/cache/bson-npm-1.1.5-1b827c162d-d1e6fe96ba.zip/node_modules/bson/",
"packageDependencies": [
["bson", "npm:1.1.5"]
],
"linkType": "HARD",
}]
]],
["buffer-from", [
["npm:1.1.1", {
"packageLocation": "./.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-540ceb79c4.zip/node_modules/buffer-from/",
@ -1708,6 +1766,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["cls-bluebird", [
["npm:2.1.0", {
"packageLocation": "./.yarn/cache/cls-bluebird-npm-2.1.0-1a11680445-f3b31004a9.zip/node_modules/cls-bluebird/",
"packageDependencies": [
["cls-bluebird", "npm:2.1.0"],
["is-bluebird", "npm:1.0.2"],
["shimmer", "npm:1.2.1"]
],
"linkType": "HARD",
}]
]],
["co", [
["npm:4.6.0", {
"packageLocation": "./.yarn/cache/co-npm-4.6.0-03f2d1feb6-3f22dbbe0f.zip/node_modules/co/",
@ -2003,11 +2072,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "HARD",
}],
["virtual:71ea54087243fefc16fde4b11d95f9eb477e415c7421826db923917f0e4dceec4fe3d86d7bfb6c329c21b575806e6747ac2d62e670e3f6883a666e4b547ea8d6#npm:3.1.0", {
"packageLocation": "./.yarn/$$virtual/debug-virtual-85076ebe0f/0/cache/debug-npm-3.1.0-9f0accb99b-1295acd5e0.zip/node_modules/debug/",
["virtual:bb5021588f7e5595fb57318130fbd71573bb1e56e36c52894c6ab92335cefc204411143fb343142c8264fb8b584b87ad650c627bf465ca1d60190627a49cbc6b#npm:4.3.2", {
"packageLocation": "./.yarn/$$virtual/debug-virtual-02669c90d4/0/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/",
"packageDependencies": [
["debug", "virtual:71ea54087243fefc16fde4b11d95f9eb477e415c7421826db923917f0e4dceec4fe3d86d7bfb6c329c21b575806e6747ac2d62e670e3f6883a666e4b547ea8d6#npm:3.1.0"],
["ms", "npm:2.0.0"],
["debug", "virtual:bb5021588f7e5595fb57318130fbd71573bb1e56e36c52894c6ab92335cefc204411143fb343142c8264fb8b584b87ad650c627bf465ca1d60190627a49cbc6b#npm:4.3.2"],
["ms", "npm:2.1.2"],
["supports-color", null]
],
"packagePeers": [
@ -2015,11 +2084,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "HARD",
}],
["virtual:bb5021588f7e5595fb57318130fbd71573bb1e56e36c52894c6ab92335cefc204411143fb343142c8264fb8b584b87ad650c627bf465ca1d60190627a49cbc6b#npm:4.3.2", {
"packageLocation": "./.yarn/$$virtual/debug-virtual-02669c90d4/0/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/",
["virtual:fd152ef5ea5b927af21613a3ffacbfad00494590b9686e04fe1654481f3136deac22592ee6d819887e9b3378ff79aab24e896b9bd74fc8fb363f8ddd9a495b64#npm:3.1.0", {
"packageLocation": "./.yarn/$$virtual/debug-virtual-95079f485d/0/cache/debug-npm-3.1.0-9f0accb99b-1295acd5e0.zip/node_modules/debug/",
"packageDependencies": [
["debug", "virtual:bb5021588f7e5595fb57318130fbd71573bb1e56e36c52894c6ab92335cefc204411143fb343142c8264fb8b584b87ad650c627bf465ca1d60190627a49cbc6b#npm:4.3.2"],
["ms", "npm:2.1.2"],
["debug", "virtual:fd152ef5ea5b927af21613a3ffacbfad00494590b9686e04fe1654481f3136deac22592ee6d819887e9b3378ff79aab24e896b9bd74fc8fb363f8ddd9a495b64#npm:3.1.0"],
["ms", "npm:2.0.0"],
["supports-color", null]
],
"packagePeers": [
@ -2127,6 +2196,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["denque", [
["npm:1.5.0", {
"packageLocation": "./.yarn/cache/denque-npm-1.5.0-fd3ca7b46a-3564778cda.zip/node_modules/denque/",
"packageDependencies": [
["denque", "npm:1.5.0"]
],
"linkType": "HARD",
}]
]],
["depd", [
["npm:1.1.2", {
"packageLocation": "./.yarn/cache/depd-npm-1.1.2-b0c8414da7-f45566ff70.zip/node_modules/depd/",
@ -2180,6 +2258,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["dottie", [
["npm:2.0.2", {
"packageLocation": "./.yarn/cache/dottie-npm-2.0.2-ef16765a8f-91e8553058.zip/node_modules/dottie/",
"packageDependencies": [
["dottie", "npm:2.0.2"]
],
"linkType": "HARD",
}]
]],
["ecc-jsbn", [
["npm:0.1.2", {
"packageLocation": "./.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-5b4dd05f24.zip/node_modules/ecc-jsbn/",
@ -3008,6 +3095,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["inflection", [
["npm:1.12.0", {
"packageLocation": "./.yarn/cache/inflection-npm-1.12.0-528e724bc4-b08d8b92fc.zip/node_modules/inflection/",
"packageDependencies": [
["inflection", "npm:1.12.0"]
],
"linkType": "HARD",
}]
]],
["inflight", [
["npm:1.0.6", {
"packageLocation": "./.yarn/cache/inflight-npm-1.0.6-ccedb4b908-17c53fc42c.zip/node_modules/inflight/",
@ -3064,6 +3160,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["is-bluebird", [
["npm:1.0.2", {
"packageLocation": "./.yarn/cache/is-bluebird-npm-1.0.2-5cb8e3b80c-88981b25d8.zip/node_modules/is-bluebird/",
"packageDependencies": [
["is-bluebird", "npm:1.0.2"]
],
"linkType": "HARD",
}]
]],
["is-buffer", [
["npm:1.1.6", {
"packageLocation": "./.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-336ec78f00.zip/node_modules/is-buffer/",
@ -4012,6 +4117,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["kareem", [
["npm:2.3.2", {
"packageLocation": "./.yarn/cache/kareem-npm-2.3.2-b3c6b60e2e-de7225607b.zip/node_modules/kareem/",
"packageDependencies": [
["kareem", "npm:2.3.2"]
],
"linkType": "HARD",
}]
]],
["keygrip", [
["npm:1.1.0", {
"packageLocation": "./.yarn/cache/keygrip-npm-1.1.0-8da030c3ff-917fc9c6ad.zip/node_modules/keygrip/",
@ -4073,7 +4187,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["content-disposition", "npm:0.5.3"],
["content-type", "npm:1.0.4"],
["cookies", "npm:0.8.0"],
["debug", "virtual:71ea54087243fefc16fde4b11d95f9eb477e415c7421826db923917f0e4dceec4fe3d86d7bfb6c329c21b575806e6747ac2d62e670e3f6883a666e4b547ea8d6#npm:3.1.0"],
["debug", "virtual:fd152ef5ea5b927af21613a3ffacbfad00494590b9686e04fe1654481f3136deac22592ee6d819887e9b3378ff79aab24e896b9bd74fc8fb363f8ddd9a495b64#npm:3.1.0"],
["delegates", "npm:1.0.0"],
["depd", "npm:2.0.0"],
["destroy", "npm:1.0.4"],
@ -4172,6 +4286,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["koa2-ratelimit", [
["npm:0.9.0", {
"packageLocation": "./.yarn/cache/koa2-ratelimit-npm-0.9.0-377f490985-768e80f77a.zip/node_modules/koa2-ratelimit/",
"packageDependencies": [
["koa2-ratelimit", "npm:0.9.0"],
["mongoose", "npm:5.11.19"],
["promise-redis", "npm:0.0.5"],
["sequelize", "npm:5.22.3"]
],
"linkType": "HARD",
}]
]],
["leven", [
["npm:3.1.0", {
"packageLocation": "./.yarn/cache/leven-npm-3.1.0-b7697736a3-6ebca75298.zip/node_modules/leven/",
@ -4287,6 +4413,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["memory-pager", [
["npm:1.5.0", {
"packageLocation": "./.yarn/cache/memory-pager-npm-1.5.0-46e20e6c81-6812af8165.zip/node_modules/memory-pager/",
"packageDependencies": [
["memory-pager", "npm:1.5.0"]
],
"linkType": "HARD",
}]
]],
["merge-stream", [
["npm:2.0.0", {
"packageLocation": "./.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-cde834809a.zip/node_modules/merge-stream/",
@ -4424,6 +4559,127 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["moment", [
["npm:2.29.1", {
"packageLocation": "./.yarn/cache/moment-npm-2.29.1-787d9fdafd-86729013fe.zip/node_modules/moment/",
"packageDependencies": [
["moment", "npm:2.29.1"]
],
"linkType": "HARD",
}]
]],
["moment-timezone", [
["npm:0.5.33", {
"packageLocation": "./.yarn/cache/moment-timezone-npm-0.5.33-f2b784cd1b-d4e72a3514.zip/node_modules/moment-timezone/",
"packageDependencies": [
["moment-timezone", "npm:0.5.33"],
["moment", "npm:2.29.1"]
],
"linkType": "HARD",
}]
]],
["mongodb", [
["npm:3.6.4", {
"packageLocation": "./.yarn/cache/mongodb-npm-3.6.4-1ff94acb62-f2331e7cdc.zip/node_modules/mongodb/",
"packageDependencies": [
["mongodb", "npm:3.6.4"]
],
"linkType": "SOFT",
}],
["virtual:c8c80dbc4908acf95c1e1a821b5c49876cee185b8e332e282743610941a5d61447c440cfe6c497980e02c7fdad759cbcad6de962ff612d13f1297e4df9862b67#npm:3.6.4", {
"packageLocation": "./.yarn/$$virtual/mongodb-virtual-0f4a28c1dc/0/cache/mongodb-npm-3.6.4-1ff94acb62-f2331e7cdc.zip/node_modules/mongodb/",
"packageDependencies": [
["mongodb", "virtual:c8c80dbc4908acf95c1e1a821b5c49876cee185b8e332e282743610941a5d61447c440cfe6c497980e02c7fdad759cbcad6de962ff612d13f1297e4df9862b67#npm:3.6.4"],
["aws4", null],
["bl", "npm:2.2.1"],
["bson", "npm:1.1.5"],
["bson-ext", null],
["denque", "npm:1.5.0"],
["kerberos", null],
["mongodb-client-encryption", null],
["mongodb-extjson", null],
["require_optional", "npm:1.0.1"],
["safe-buffer", "npm:5.2.1"],
["saslprep", "npm:1.0.3"],
["snappy", null]
],
"packagePeers": [
"aws4",
"bson-ext",
"kerberos",
"mongodb-client-encryption",
"mongodb-extjson",
"snappy"
],
"linkType": "HARD",
}]
]],
["mongoose", [
["npm:5.11.19", {
"packageLocation": "./.yarn/cache/mongoose-npm-5.11.19-c8c80dbc49-45b01cb131.zip/node_modules/mongoose/",
"packageDependencies": [
["mongoose", "npm:5.11.19"],
["@types/mongodb", "npm:3.6.9"],
["bson", "npm:1.1.5"],
["kareem", "npm:2.3.2"],
["mongodb", "virtual:c8c80dbc4908acf95c1e1a821b5c49876cee185b8e332e282743610941a5d61447c440cfe6c497980e02c7fdad759cbcad6de962ff612d13f1297e4df9862b67#npm:3.6.4"],
["mongoose-legacy-pluralize", "virtual:c8c80dbc4908acf95c1e1a821b5c49876cee185b8e332e282743610941a5d61447c440cfe6c497980e02c7fdad759cbcad6de962ff612d13f1297e4df9862b67#npm:1.0.2"],
["mpath", "npm:0.8.3"],
["mquery", "npm:3.2.4"],
["ms", "npm:2.1.2"],
["regexp-clone", "npm:1.0.0"],
["safe-buffer", "npm:5.2.1"],
["sift", "npm:7.0.1"],
["sliced", "npm:1.0.1"]
],
"linkType": "HARD",
}]
]],
["mongoose-legacy-pluralize", [
["npm:1.0.2", {
"packageLocation": "./.yarn/cache/mongoose-legacy-pluralize-npm-1.0.2-2fbdda9a5a-a1f86450b3.zip/node_modules/mongoose-legacy-pluralize/",
"packageDependencies": [
["mongoose-legacy-pluralize", "npm:1.0.2"]
],
"linkType": "SOFT",
}],
["virtual:c8c80dbc4908acf95c1e1a821b5c49876cee185b8e332e282743610941a5d61447c440cfe6c497980e02c7fdad759cbcad6de962ff612d13f1297e4df9862b67#npm:1.0.2", {
"packageLocation": "./.yarn/$$virtual/mongoose-legacy-pluralize-virtual-578094a483/0/cache/mongoose-legacy-pluralize-npm-1.0.2-2fbdda9a5a-a1f86450b3.zip/node_modules/mongoose-legacy-pluralize/",
"packageDependencies": [
["mongoose-legacy-pluralize", "virtual:c8c80dbc4908acf95c1e1a821b5c49876cee185b8e332e282743610941a5d61447c440cfe6c497980e02c7fdad759cbcad6de962ff612d13f1297e4df9862b67#npm:1.0.2"],
["@types/mongoose", null],
["mongoose", "npm:5.11.19"]
],
"packagePeers": [
"@types/mongoose",
"mongoose"
],
"linkType": "HARD",
}]
]],
["mpath", [
["npm:0.8.3", {
"packageLocation": "./.yarn/cache/mpath-npm-0.8.3-c764f5a56c-6c129da222.zip/node_modules/mpath/",
"packageDependencies": [
["mpath", "npm:0.8.3"]
],
"linkType": "HARD",
}]
]],
["mquery", [
["npm:3.2.4", {
"packageLocation": "./.yarn/cache/mquery-npm-3.2.4-fd152ef5ea-80410d4e80.zip/node_modules/mquery/",
"packageDependencies": [
["mquery", "npm:3.2.4"],
["bluebird", "npm:3.5.1"],
["debug", "virtual:fd152ef5ea5b927af21613a3ffacbfad00494590b9686e04fe1654481f3136deac22592ee6d819887e9b3378ff79aab24e896b9bd74fc8fb363f8ddd9a495b64#npm:3.1.0"],
["regexp-clone", "npm:1.0.0"],
["safe-buffer", "npm:5.1.2"],
["sliced", "npm:1.0.1"]
],
"linkType": "HARD",
}]
]],
["ms", [
["npm:2.0.0", {
"packageLocation": "./.yarn/cache/ms-npm-2.0.0-9e1101a471-1a230340cc.zip/node_modules/ms/",
@ -4967,6 +5223,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["promise-redis", [
["npm:0.0.5", {
"packageLocation": "./.yarn/cache/promise-redis-npm-0.0.5-d6dc567e1e-0871ee02e6.zip/node_modules/promise-redis/",
"packageDependencies": [
["promise-redis", "npm:0.0.5"],
["redis", "npm:3.0.2"],
["redis-commands", "npm:1.7.0"]
],
"linkType": "HARD",
}]
]],
["prompts", [
["npm:2.4.0", {
"packageLocation": "./.yarn/cache/prompts-npm-2.4.0-44f1e10a9a-fd375679ad.zip/node_modules/prompts/",
@ -5086,6 +5353,47 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["redis", [
["npm:3.0.2", {
"packageLocation": "./.yarn/cache/redis-npm-3.0.2-488560e37e-74858b9f5a.zip/node_modules/redis/",
"packageDependencies": [
["redis", "npm:3.0.2"],
["denque", "npm:1.5.0"],
["redis-commands", "npm:1.7.0"],
["redis-errors", "npm:1.2.0"],
["redis-parser", "npm:3.0.0"]
],
"linkType": "HARD",
}]
]],
["redis-commands", [
["npm:1.7.0", {
"packageLocation": "./.yarn/cache/redis-commands-npm-1.7.0-528f61f9d8-cbf5d33768.zip/node_modules/redis-commands/",
"packageDependencies": [
["redis-commands", "npm:1.7.0"]
],
"linkType": "HARD",
}]
]],
["redis-errors", [
["npm:1.2.0", {
"packageLocation": "./.yarn/cache/redis-errors-npm-1.2.0-a81fd9b0f1-b260bb64a1.zip/node_modules/redis-errors/",
"packageDependencies": [
["redis-errors", "npm:1.2.0"]
],
"linkType": "HARD",
}]
]],
["redis-parser", [
["npm:3.0.0", {
"packageLocation": "./.yarn/cache/redis-parser-npm-3.0.0-7ebe40abcb-45dbcb05be.zip/node_modules/redis-parser/",
"packageDependencies": [
["redis-parser", "npm:3.0.0"],
["redis-errors", "npm:1.2.0"]
],
"linkType": "HARD",
}]
]],
["regex-not", [
["npm:1.0.2", {
"packageLocation": "./.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3d6d95b4fd.zip/node_modules/regex-not/",
@ -5097,6 +5405,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["regexp-clone", [
["npm:1.0.0", {
"packageLocation": "./.yarn/cache/regexp-clone-npm-1.0.0-969a61b0d1-0cb16b8806.zip/node_modules/regexp-clone/",
"packageDependencies": [
["regexp-clone", "npm:1.0.0"]
],
"linkType": "HARD",
}]
]],
["remove-trailing-separator", [
["npm:1.1.0", {
"packageLocation": "./.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-17dadf3d1f.zip/node_modules/remove-trailing-separator/",
@ -5219,6 +5536,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["require_optional", [
["npm:1.0.1", {
"packageLocation": "./.yarn/cache/require_optional-npm-1.0.1-4f914df17e-2a7cae14fc.zip/node_modules/require_optional/",
"packageDependencies": [
["require_optional", "npm:1.0.1"],
["resolve-from", "npm:2.0.0"],
["semver", "npm:5.7.1"]
],
"linkType": "HARD",
}]
]],
["resolve", [
["patch:resolve@npm%3A1.20.0#builtin<compat/resolve>::version=1.20.0&hash=3388aa", {
"packageLocation": "./.yarn/cache/resolve-patch-55fcdb097c-c4a515b760.zip/node_modules/resolve/",
@ -5241,6 +5569,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["resolve-from", [
["npm:2.0.0", {
"packageLocation": "./.yarn/cache/resolve-from-npm-2.0.0-7d5a73a272-e2cfa9d440.zip/node_modules/resolve-from/",
"packageDependencies": [
["resolve-from", "npm:2.0.0"]
],
"linkType": "HARD",
}],
["npm:5.0.0", {
"packageLocation": "./.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-0d29fc7012.zip/node_modules/resolve-from/",
"packageDependencies": [
@ -5267,6 +5602,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["retry-as-promised", [
["npm:3.2.0", {
"packageLocation": "./.yarn/cache/retry-as-promised-npm-3.2.0-292b66348b-4aab2302ba.zip/node_modules/retry-as-promised/",
"packageDependencies": [
["retry-as-promised", "npm:3.2.0"],
["any-promise", "npm:1.3.0"]
],
"linkType": "HARD",
}]
]],
["rimraf", [
["npm:3.0.2", {
"packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-f0de3e4455.zip/node_modules/rimraf/",
@ -5339,6 +5684,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["saslprep", [
["npm:1.0.3", {
"packageLocation": "./.yarn/cache/saslprep-npm-1.0.3-8db649c346-d007f50fe6.zip/node_modules/saslprep/",
"packageDependencies": [
["saslprep", "npm:1.0.3"],
["sparse-bitfield", "npm:3.0.3"]
],
"linkType": "HARD",
}]
]],
["saxes", [
["npm:5.0.1", {
"packageLocation": "./.yarn/cache/saxes-npm-5.0.1-57abf031ae-6ad14be68d.zip/node_modules/saxes/",
@ -5373,6 +5728,39 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["sequelize", [
["npm:5.22.3", {
"packageLocation": "./.yarn/cache/sequelize-npm-5.22.3-6c1eb3cfa3-6c5c265007.zip/node_modules/sequelize/",
"packageDependencies": [
["sequelize", "npm:5.22.3"],
["bluebird", "npm:3.7.2"],
["cls-bluebird", "npm:2.1.0"],
["debug", "virtual:bb5021588f7e5595fb57318130fbd71573bb1e56e36c52894c6ab92335cefc204411143fb343142c8264fb8b584b87ad650c627bf465ca1d60190627a49cbc6b#npm:4.3.2"],
["dottie", "npm:2.0.2"],
["inflection", "npm:1.12.0"],
["lodash", "npm:4.17.21"],
["moment", "npm:2.29.1"],
["moment-timezone", "npm:0.5.33"],
["retry-as-promised", "npm:3.2.0"],
["semver", "npm:6.3.0"],
["sequelize-pool", "npm:2.3.0"],
["toposort-class", "npm:1.0.1"],
["uuid", "npm:3.4.0"],
["validator", "npm:10.11.0"],
["wkx", "npm:0.4.8"]
],
"linkType": "HARD",
}]
]],
["sequelize-pool", [
["npm:2.3.0", {
"packageLocation": "./.yarn/cache/sequelize-pool-npm-2.3.0-02b5476cea-a6fc8cc5ef.zip/node_modules/sequelize-pool/",
"packageDependencies": [
["sequelize-pool", "npm:2.3.0"]
],
"linkType": "HARD",
}]
]],
["serve-my-jams", [
["workspace:.", {
"packageLocation": "./",
@ -5383,7 +5771,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["koa-body", "npm:4.2.0"],
["koa-helmet", "npm:6.0.0"],
["koa-logger", "npm:3.2.1"],
["koa-router", "npm:10.0.0"]
["koa-router", "npm:10.0.0"],
["koa2-ratelimit", "npm:0.9.0"]
],
"linkType": "SOFT",
}]
@ -5469,6 +5858,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["shimmer", [
["npm:1.2.1", {
"packageLocation": "./.yarn/cache/shimmer-npm-1.2.1-8b50bf3206-23431fc4c5.zip/node_modules/shimmer/",
"packageDependencies": [
["shimmer", "npm:1.2.1"]
],
"linkType": "HARD",
}]
]],
["sift", [
["npm:7.0.1", {
"packageLocation": "./.yarn/cache/sift-npm-7.0.1-defcf70fb3-267d30f964.zip/node_modules/sift/",
"packageDependencies": [
["sift", "npm:7.0.1"]
],
"linkType": "HARD",
}]
]],
["signal-exit", [
["npm:3.0.3", {
"packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f8f3fec95c.zip/node_modules/signal-exit/",
@ -5496,6 +5903,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["sliced", [
["npm:1.0.1", {
"packageLocation": "./.yarn/cache/sliced-npm-1.0.1-5537b02c49-af6bd9d911.zip/node_modules/sliced/",
"packageDependencies": [
["sliced", "npm:1.0.1"]
],
"linkType": "HARD",
}]
]],
["snapdragon", [
["npm:0.8.2", {
"packageLocation": "./.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-c30b63a732.zip/node_modules/snapdragon/",
@ -5592,6 +6008,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["sparse-bitfield", [
["npm:3.0.3", {
"packageLocation": "./.yarn/cache/sparse-bitfield-npm-3.0.3-cb80d0c89f-3d7ea483df.zip/node_modules/sparse-bitfield/",
"packageDependencies": [
["sparse-bitfield", "npm:3.0.3"],
["memory-pager", "npm:1.5.0"]
],
"linkType": "HARD",
}]
]],
["spdx-correct", [
["npm:3.1.1", {
"packageLocation": "./.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-f3413eb225.zip/node_modules/spdx-correct/",
@ -5967,6 +6393,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["toposort-class", [
["npm:1.0.1", {
"packageLocation": "./.yarn/cache/toposort-class-npm-1.0.1-aefabde69e-cead76d5ab.zip/node_modules/toposort-class/",
"packageDependencies": [
["toposort-class", "npm:1.0.1"]
],
"linkType": "HARD",
}]
]],
["tough-cookie", [
["npm:2.5.0", {
"packageLocation": "./.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-bf5d6fac5c.zip/node_modules/tough-cookie/",
@ -6198,6 +6633,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["validator", [
["npm:10.11.0", {
"packageLocation": "./.yarn/cache/validator-npm-10.11.0-62602d1058-07a37cd146.zip/node_modules/validator/",
"packageDependencies": [
["validator", "npm:10.11.0"]
],
"linkType": "HARD",
}]
]],
["vary", [
["npm:1.1.2", {
"packageLocation": "./.yarn/cache/vary-npm-1.1.2-b49f70ae63-591f059f72.zip/node_modules/vary/",
@ -6333,6 +6777,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["wkx", [
["npm:0.4.8", {
"packageLocation": "./.yarn/cache/wkx-npm-0.4.8-50b554d0a6-b18c150a87.zip/node_modules/wkx/",
"packageDependencies": [
["wkx", "npm:0.4.8"],
["@types/node", "npm:14.14.32"]
],
"linkType": "HARD",
}]
]],
["word-wrap", [
["npm:1.2.3", {
"packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-6526abd75d.zip/node_modules/word-wrap/",

View File

@ -20,6 +20,7 @@
"koa-body": "^4.2.0",
"koa-helmet": "^6.0.0",
"koa-logger": "^3.2.1",
"koa-router": "^10.0.0"
"koa-router": "^10.0.0",
"koa2-ratelimit": "^0.9.0"
}
}

View File

@ -5,11 +5,19 @@ const Logger = require("koa-logger");
const bodyParser = require('koa-body');
const koaRouter = require("koa-router");
const helmet = require("koa-helmet");
const { RateLimit } = require('koa2-ratelimit');
// koa docs: https://koajs.com/#application
const app = new Koa();
const router = new koaRouter();
// see https://www.npmjs.com/package/koa2-ratelimit, simple brute-force with helmet will suffice.
app.use(RateLimit.middleware({
interval: { min: 15 },
max: 100
}));
app.use(helmet());
// TODO not sure what to do on error yet
app.use(Logger());
@ -21,9 +29,8 @@ app.use(bodyParser({
// route docs: https://github.com/koajs/router/blob/HEAD/API.md#module_koa-router--Router+get%7Cput%7Cpost%7Cpatch%7Cdelete%7Cdel
require("./webmention/route").route(router)
require("./webmention/route").route(router);
app.use(helmet());
app.use(router.routes()).use(router.allowedMethods());
const port = process.env.PORT || 4000

409
yarn.lock
View File

@ -680,6 +680,15 @@ __metadata:
languageName: node
linkType: hard
"@types/bson@npm:*":
version: 4.0.3
resolution: "@types/bson@npm:4.0.3"
dependencies:
"@types/node": "*"
checksum: 73c0179851f02bd43f010db65c465b09f7c495b35b0e3820a79d36f4bb209c84a512121c1af4c1d2512e5f13cd27cc74fa8aa6f3df9b17b7cca9d37d59ece3ce
languageName: node
linkType: hard
"@types/formidable@npm:^1.0.31":
version: 1.0.32
resolution: "@types/formidable@npm:1.0.32"
@ -723,6 +732,16 @@ __metadata:
languageName: node
linkType: hard
"@types/mongodb@npm:^3.5.27":
version: 3.6.9
resolution: "@types/mongodb@npm:3.6.9"
dependencies:
"@types/bson": "*"
"@types/node": "*"
checksum: ab78a36f7d0b76359715c50dcf98e415fccbefcf38f3f5372ffed4e7d93ee5a875ad6bc8628d2568d0d039ce2ccaea550a615627d6519c8f8a3e43bcbe9758d0
languageName: node
linkType: hard
"@types/node@npm:*":
version: 14.14.32
resolution: "@types/node@npm:14.14.32"
@ -877,7 +896,7 @@ __metadata:
languageName: node
linkType: hard
"any-promise@npm:^1.1.0":
"any-promise@npm:^1.1.0, any-promise@npm:^1.3.0":
version: 1.3.0
resolution: "any-promise@npm:1.3.0"
checksum: e829425e4aef532fb9063c638de4693feaf285dae8ba84bcabd9c6d49446264650d1e16b73af8a25ae1e4480f9a4dc7cae364b4c4d4753b57dd1900cdfab8183
@ -1119,6 +1138,30 @@ __metadata:
languageName: node
linkType: hard
"bl@npm:^2.2.1":
version: 2.2.1
resolution: "bl@npm:2.2.1"
dependencies:
readable-stream: ^2.3.5
safe-buffer: ^5.1.1
checksum: 438c510aa211ec4398819ad1cb4ef1617b0ffeb0f1946c2b359fc5aefbe6f8e22dc2f6788e8746509779fabee89f1c3b34ec87ff30fb7b3d95654d8cd51e3b70
languageName: node
linkType: hard
"bluebird@npm:3.5.1":
version: 3.5.1
resolution: "bluebird@npm:3.5.1"
checksum: 11347ec6d59fdb2aca5f2507bbc5f7127bf5a7bb978da30f83469ad43a3fa6b533b24544a9b31e21fd730b77b93b0526e65c73d8fdb11b3b633f4269d75e420a
languageName: node
linkType: hard
"bluebird@npm:^3.5.0":
version: 3.7.2
resolution: "bluebird@npm:3.7.2"
checksum: 4f2288662f3d4eadbb82d4daa4a7d7976a28fa3c7eb4102c9b4033b03e5be4574ba123ac52a7c103cde4cb7b2d2afc1dbe41817ca15a29ff21ecd258d0286047
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.11
resolution: "brace-expansion@npm:1.1.11"
@ -1187,6 +1230,13 @@ __metadata:
languageName: node
linkType: hard
"bson@npm:^1.1.4":
version: 1.1.5
resolution: "bson@npm:1.1.5"
checksum: d1e6fe96baac02dacc54cc33f8accce7bd289a22f0e98804e76adbb9af463ee414f6c8aed15fa18c133330fe859a7bb750e432f39549bd823bc73c5e6dc8e1e4
languageName: node
linkType: hard
"buffer-from@npm:^1.0.0":
version: 1.1.1
resolution: "buffer-from@npm:1.1.1"
@ -1344,6 +1394,16 @@ __metadata:
languageName: node
linkType: hard
"cls-bluebird@npm:^2.1.0":
version: 2.1.0
resolution: "cls-bluebird@npm:2.1.0"
dependencies:
is-bluebird: ^1.0.2
shimmer: ^1.1.0
checksum: f3b31004a9ff9cc86eb86bd8e9287bc969670e2b60508c95e98e1bac969423c480318b224662f78e6fc0ffeaf1e1e36d1156acfeb002a67e417dd4263c270fc6
languageName: node
linkType: hard
"co-body@npm:^5.1.1":
version: 5.2.0
resolution: "co-body@npm:5.2.0"
@ -1572,6 +1632,15 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:3.1.0, debug@npm:~3.1.0":
version: 3.1.0
resolution: "debug@npm:3.1.0"
dependencies:
ms: 2.0.0
checksum: 1295acd5e0531761255661d325cd0a80ac8c5f6de8942a53bb23c2197ccb97526972de662ed0e5d9393be83f3428a298a6e7185ecb02f0da6282019cd2ffb4a8
languageName: node
linkType: hard
"debug@npm:^2.2.0, debug@npm:^2.3.3":
version: 2.6.9
resolution: "debug@npm:2.6.9"
@ -1593,15 +1662,6 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:~3.1.0":
version: 3.1.0
resolution: "debug@npm:3.1.0"
dependencies:
ms: 2.0.0
checksum: 1295acd5e0531761255661d325cd0a80ac8c5f6de8942a53bb23c2197ccb97526972de662ed0e5d9393be83f3428a298a6e7185ecb02f0da6282019cd2ffb4a8
languageName: node
linkType: hard
"decamelize@npm:^1.2.0":
version: 1.2.0
resolution: "decamelize@npm:1.2.0"
@ -1686,6 +1746,13 @@ __metadata:
languageName: node
linkType: hard
"denque@npm:^1.4.1":
version: 1.5.0
resolution: "denque@npm:1.5.0"
checksum: 3564778cda60c7dee3f1d71e397e50e6b39a8c06118aab9843b9396cb621b3191ab56d13de5237b8beee2b87bec485e8239c58ca3133472d2d1eaa3d2d518022
languageName: node
linkType: hard
"depd@npm:^2.0.0, depd@npm:~2.0.0":
version: 2.0.0
resolution: "depd@npm:2.0.0"
@ -1730,6 +1797,13 @@ __metadata:
languageName: node
linkType: hard
"dottie@npm:^2.0.0":
version: 2.0.2
resolution: "dottie@npm:2.0.2"
checksum: 91e855305849b75934d78c5b061f6551f1e866e592ee3a30f97669bdc136061432c4d30205b0bb86909f5495d2c88cecc69d28f0d73b84a27e0cf66caeb749a7
languageName: node
linkType: hard
"ecc-jsbn@npm:~0.1.1":
version: 0.1.2
resolution: "ecc-jsbn@npm:0.1.2"
@ -2470,6 +2544,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"inflection@npm:1.12.0":
version: 1.12.0
resolution: "inflection@npm:1.12.0"
checksum: b08d8b92fcc3a3860995a00605f56eac3964829ca6061fd7b0a1c06f888536c734b685f620fff6b694a8c9ed3e3b7a40fc79c3c6f2cc31bf58dee7eb8244c955
languageName: node
linkType: hard
"inflight@npm:^1.0.4":
version: 1.0.6
resolution: "inflight@npm:1.0.6"
@ -2519,6 +2600,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"is-bluebird@npm:^1.0.2":
version: 1.0.2
resolution: "is-bluebird@npm:1.0.2"
checksum: 88981b25d84294916cdfb2e5ea081a21ffbc9a9e325f38d3330991413306c638e4813fe2a336fa98e37d9a0b2b3ba59179034306af072a4459b2102d62538cf4
languageName: node
linkType: hard
"is-buffer@npm:^1.1.5":
version: 1.1.6
resolution: "is-buffer@npm:1.1.6"
@ -3377,6 +3465,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"kareem@npm:2.3.2":
version: 2.3.2
resolution: "kareem@npm:2.3.2"
checksum: de7225607b86280e5c39c00d564e1cb4daee9f0a75076fa0c096af75069681ca9a97ea39d8d48ce58ff8dd4d3a738942b1b43101aa95982c4599284ec36e02b4
languageName: node
linkType: hard
"keygrip@npm:~1.1.0":
version: 1.1.0
resolution: "keygrip@npm:1.1.0"
@ -3496,6 +3591,17 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"koa2-ratelimit@npm:^0.9.0":
version: 0.9.0
resolution: "koa2-ratelimit@npm:0.9.0"
dependencies:
mongoose: ^5.5.13
promise-redis: 0.0.5
sequelize: ^5.8.7
checksum: 768e80f77ac72fbdb327f911c38e4d5defdb7ce69a5b06e929317ade235ec252da78006988d17039b359fc981671e154d06afaa1e6270e1f00ec6ad64046f35e
languageName: node
linkType: hard
"koa@npm:^2.13.1":
version: 2.13.1
resolution: "koa@npm:2.13.1"
@ -3567,7 +3673,7 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"lodash@npm:^4.17.19":
"lodash@npm:^4.17.15, lodash@npm:^4.17.19":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: 4983720b9abca930a4a46f18db163d7dad8dd00dbed6db0cc7b499b33b717cce69f80928b27bbb1ff2cbd3b19d251ee90669a8b5ea466072ca81c2ebe91e7468
@ -3624,6 +3730,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"memory-pager@npm:^1.0.2":
version: 1.5.0
resolution: "memory-pager@npm:1.5.0"
checksum: 6812af8165a31e729df25af125ba91b7ea7f3cacaf73a1c139b755be640cab9dfa4bb05b9acfc5d5f1f540b334203f26dac0662576033dd351e0a798abc4d72a
languageName: node
linkType: hard
"merge-stream@npm:^2.0.0":
version: 2.0.0
resolution: "merge-stream@npm:2.0.0"
@ -3746,6 +3859,101 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"moment-timezone@npm:^0.5.21":
version: 0.5.33
resolution: "moment-timezone@npm:0.5.33"
dependencies:
moment: ">= 2.9.0"
checksum: d4e72a3514a2885ab26b1cbc640e2f4785c997f9de28bb48bf3994ef137b0a560ca8f07eb07f11121e1223eef0c3bce4bc647b911111481a6a066bbc61285f99
languageName: node
linkType: hard
"moment@npm:>= 2.9.0, moment@npm:^2.24.0":
version: 2.29.1
resolution: "moment@npm:2.29.1"
checksum: 86729013febf7160de5b93da69273dd304d674b0224f9544b3abd09a87671ddd2cdd57598261ce57588910d63747ffd5590965e83c790d8bf327083c0e0a06e0
languageName: node
linkType: hard
"mongodb@npm:3.6.4":
version: 3.6.4
resolution: "mongodb@npm:3.6.4"
dependencies:
bl: ^2.2.1
bson: ^1.1.4
denque: ^1.4.1
require_optional: ^1.0.1
safe-buffer: ^5.1.2
saslprep: ^1.0.0
dependenciesMeta:
saslprep:
optional: true
peerDependenciesMeta:
aws4:
optional: true
bson-ext:
optional: true
kerberos:
optional: true
mongodb-client-encryption:
optional: true
mongodb-extjson:
optional: true
snappy:
optional: true
checksum: f2331e7cdce7694b033346f898af9429bab53505ffc1175cb66e370eecc26eb3ae08d950f57ee6ca0be1a4d24f735c40ac758f3e8f0f68826b43e7a36ed5f5bf
languageName: node
linkType: hard
"mongoose-legacy-pluralize@npm:1.0.2":
version: 1.0.2
resolution: "mongoose-legacy-pluralize@npm:1.0.2"
peerDependencies:
mongoose: "*"
checksum: a1f86450b3540a1883cfb093001846806d14cd3a8b80f6681fdac13afcfd4a1f57875fb79009aceacf2e80e3ffd2d5ab7e289ba873c586958ce536eff270dc0a
languageName: node
linkType: hard
"mongoose@npm:5.11.19, mongoose@npm:^5.5.13":
version: 5.11.19
resolution: "mongoose@npm:5.11.19"
dependencies:
"@types/mongodb": ^3.5.27
bson: ^1.1.4
kareem: 2.3.2
mongodb: 3.6.4
mongoose-legacy-pluralize: 1.0.2
mpath: 0.8.3
mquery: 3.2.4
ms: 2.1.2
regexp-clone: 1.0.0
safe-buffer: 5.2.1
sift: 7.0.1
sliced: 1.0.1
checksum: 45b01cb1310ecb27d02c489f170298dc219f0225f98f10318b9d1577f62a42a0c85e0682f17e06a37ab164dcb5d9aedfc8982b30c2ac507f365754c531ca211d
languageName: node
linkType: hard
"mpath@npm:0.8.3":
version: 0.8.3
resolution: "mpath@npm:0.8.3"
checksum: 6c129da222169bcf2eb28ae73abca2a8a32c3c659748efd496308aed21c7dca7a9a923de53a5a1df3d898f5eba74c704fdf352ca68e5ecb602d2352a9d5ab90e
languageName: node
linkType: hard
"mquery@npm:3.2.4":
version: 3.2.4
resolution: "mquery@npm:3.2.4"
dependencies:
bluebird: 3.5.1
debug: 3.1.0
regexp-clone: ^1.0.0
safe-buffer: 5.1.2
sliced: 1.0.1
checksum: 80410d4e80b40730b0121315e34b33a37a7e468b9c9d517072b7b5e7f6fd00f04a42b3cffa458f5b4b71433f2313e9e227d4a507f3c66a7646fe153e153158fb
languageName: node
linkType: hard
"ms@npm:2.0.0":
version: 2.0.0
resolution: "ms@npm:2.0.0"
@ -4215,6 +4423,16 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"promise-redis@npm:0.0.5":
version: 0.0.5
resolution: "promise-redis@npm:0.0.5"
dependencies:
redis: "*"
redis-commands: "*"
checksum: 0871ee02e6e52511654872c27001568eb9366971bb30e305d07d1d3cd5ee28aed8e4bcf14a299c92b1bb12ba67e59f8664255750a6dad8135c98f662c018d9fa
languageName: node
linkType: hard
"prompts@npm:^2.0.1":
version: 2.4.0
resolution: "prompts@npm:2.4.0"
@ -4305,7 +4523,7 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"readable-stream@npm:^2.0.6":
"readable-stream@npm:^2.0.6, readable-stream@npm:^2.3.5":
version: 2.3.7
resolution: "readable-stream@npm:2.3.7"
dependencies:
@ -4320,6 +4538,41 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"redis-commands@npm:*, redis-commands@npm:^1.5.0":
version: 1.7.0
resolution: "redis-commands@npm:1.7.0"
checksum: cbf5d33768b1c8e1001e2a7ffdaeb6ef830c538ef812d803a1c5e6038cf03482cf0a22b29eadf1182aa02a522331826e3af0967ae75fa7883da8a139ad2fc77b
languageName: node
linkType: hard
"redis-errors@npm:^1.0.0, redis-errors@npm:^1.2.0":
version: 1.2.0
resolution: "redis-errors@npm:1.2.0"
checksum: b260bb64a1c8523d32a56701681ac3e5cc6bb0a4eb09f1d30729ebba397021d274216ff189909c08fe3c6b706ec8b74948e20ea410b6f69d31b35bda3fb82a59
languageName: node
linkType: hard
"redis-parser@npm:^3.0.0":
version: 3.0.0
resolution: "redis-parser@npm:3.0.0"
dependencies:
redis-errors: ^1.0.0
checksum: 45dbcb05bed2c80a4aac288bbefed2347ecf3508c24d542ab42efa21fd63b5aaca4208b206f05818835a2ac43abe09250c2638c11c3b0b66a5d67e83985e350f
languageName: node
linkType: hard
"redis@npm:*":
version: 3.0.2
resolution: "redis@npm:3.0.2"
dependencies:
denque: ^1.4.1
redis-commands: ^1.5.0
redis-errors: ^1.2.0
redis-parser: ^3.0.0
checksum: 74858b9f5ae3859ed55435d413315ab3f911aa483a3817c0d1ebe46b966c7061f43ea0d3d5170b540ff4a1f15edd5ea2bc0e107d0e6e516c4d61ea489460f5dc
languageName: node
linkType: hard
"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2":
version: 1.0.2
resolution: "regex-not@npm:1.0.2"
@ -4330,6 +4583,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"regexp-clone@npm:1.0.0, regexp-clone@npm:^1.0.0":
version: 1.0.0
resolution: "regexp-clone@npm:1.0.0"
checksum: 0cb16b8806a0a4e3e0f8887c1465d03ff25371fde03d03ab3b2fe7bc521faaabaac36feabcdcdf63bcbce05a7d0eca113eb5b4d3b9a9efc77dc1c0fa87a2811d
languageName: node
linkType: hard
"remove-trailing-separator@npm:^1.0.1":
version: 1.1.0
resolution: "remove-trailing-separator@npm:1.1.0"
@ -4417,6 +4677,16 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"require_optional@npm:^1.0.1":
version: 1.0.1
resolution: "require_optional@npm:1.0.1"
dependencies:
resolve-from: ^2.0.0
semver: ^5.1.0
checksum: 2a7cae14fcb0f7aac9e1837bde2edc1e95b2cf635376df09e973151ea735b77f2069e6bf9e1a1c5dd27f052e0b00a477db15807302a1ceeb487307ea61416bee
languageName: node
linkType: hard
"resolve-cwd@npm:^3.0.0":
version: 3.0.0
resolution: "resolve-cwd@npm:3.0.0"
@ -4426,6 +4696,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"resolve-from@npm:^2.0.0":
version: 2.0.0
resolution: "resolve-from@npm:2.0.0"
checksum: e2cfa9d4402ceb731ce14f639248c8a8a364db8710ba3360a4492046c6688084235645a4f4004ac7d9acf40bc0644fac6d8c24f9012c7e5773234a7c09d57cb4
languageName: node
linkType: hard
"resolve-from@npm:^5.0.0":
version: 5.0.0
resolution: "resolve-from@npm:5.0.0"
@ -4467,6 +4744,15 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"retry-as-promised@npm:^3.2.0":
version: 3.2.0
resolution: "retry-as-promised@npm:3.2.0"
dependencies:
any-promise: ^1.3.0
checksum: 4aab2302ba9c101844ed2439aeb99c794f4b0d34e1b6386d838cf9528f1de2b902ab38ebc2d79cc5d3d01e37bfeb688956e5b86bd8362fee7f932de0081bdc02
languageName: node
linkType: hard
"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2":
version: 3.0.2
resolution: "rimraf@npm:3.0.2"
@ -4492,7 +4778,7 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2":
"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: 0bb57f0d8f9d1fa4fe35ad8a2db1f83a027d48f2822d59ede88fd5cd4ddad83c0b497213feb7a70fbf90597a70c5217f735b0eb1850df40ce9b4ae81dd22b3f9
@ -4534,6 +4820,15 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"saslprep@npm:^1.0.0":
version: 1.0.3
resolution: "saslprep@npm:1.0.3"
dependencies:
sparse-bitfield: ^3.0.3
checksum: d007f50fe6578814d7b6c06f528cf7b08f1e12292b1c7d671a29a7a709cec29527d85352d1de3e020b3ee30017a9abd58252ff27b5042b889acd4a67b089c38c
languageName: node
linkType: hard
"saxes@npm:^5.0.0":
version: 5.0.1
resolution: "saxes@npm:5.0.1"
@ -4543,7 +4838,7 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0":
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.1.0, semver@npm:^5.5.0":
version: 5.7.1
resolution: "semver@npm:5.7.1"
bin:
@ -4572,6 +4867,36 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"sequelize-pool@npm:^2.3.0":
version: 2.3.0
resolution: "sequelize-pool@npm:2.3.0"
checksum: a6fc8cc5ef189671efb9964c702796fc00d49092e764d79d1f79a02673b3a6c006721e724d3a1f78baab9eb2605539e3e389841407c199631b82a0c6fd6187f4
languageName: node
linkType: hard
"sequelize@npm:^5.8.7":
version: 5.22.3
resolution: "sequelize@npm:5.22.3"
dependencies:
bluebird: ^3.5.0
cls-bluebird: ^2.1.0
debug: ^4.1.1
dottie: ^2.0.0
inflection: 1.12.0
lodash: ^4.17.15
moment: ^2.24.0
moment-timezone: ^0.5.21
retry-as-promised: ^3.2.0
semver: ^6.3.0
sequelize-pool: ^2.3.0
toposort-class: ^1.0.1
uuid: ^3.3.3
validator: ^10.11.0
wkx: ^0.4.8
checksum: 6c5c2650072da71f76197dfb26a93c992b79453002621c1575c7627422eb2e7ba84fd84f57c29e74fcc6bb6964aee2a021564ada143d11b8b9e063aa5d4655b1
languageName: node
linkType: hard
"serve-my-jams@workspace:.":
version: 0.0.0-use.local
resolution: "serve-my-jams@workspace:."
@ -4582,6 +4907,7 @@ fsevents@^2.1.2:
koa-helmet: ^6.0.0
koa-logger: ^3.2.1
koa-router: ^10.0.0
koa2-ratelimit: ^0.9.0
languageName: unknown
linkType: soft
@ -4657,6 +4983,20 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"shimmer@npm:^1.1.0":
version: 1.2.1
resolution: "shimmer@npm:1.2.1"
checksum: 23431fc4c5cf2df4c4ffca20a415ac18fbc989bdec595b97b541c65b08cf04da55c5b4e1d7b7ea73d17fc92d4c33bd6e97e4da356adbf0349e06813068263d87
languageName: node
linkType: hard
"sift@npm:7.0.1":
version: 7.0.1
resolution: "sift@npm:7.0.1"
checksum: 267d30f964324df4e55152d977cdca8da0a04e24f82c0ae0737d0dc771f613a415f5d26ad97ed5bcedbb032be2dfd78da9e4060b6131b4ee7cb0bd09e1095cf8
languageName: node
linkType: hard
"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2":
version: 3.0.3
resolution: "signal-exit@npm:3.0.3"
@ -4678,6 +5018,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"sliced@npm:1.0.1":
version: 1.0.1
resolution: "sliced@npm:1.0.1"
checksum: af6bd9d9116298828d84a0c4ad417f941c61b72ed16cc289b97ad3669c2c41d13763b79385f3ac44c40a1e82f8c0774d18587b3b7125034fa6f80d10363a234c
languageName: node
linkType: hard
"snapdragon-node@npm:^2.0.1":
version: 2.1.1
resolution: "snapdragon-node@npm:2.1.1"
@ -4765,6 +5112,15 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"sparse-bitfield@npm:^3.0.3":
version: 3.0.3
resolution: "sparse-bitfield@npm:3.0.3"
dependencies:
memory-pager: ^1.0.2
checksum: 3d7ea483df832df45c1a9b4905b2e2ffb9107b6b43db664ffaf03371000f9ec0db664c8d94600443e344c91be36c52a299ba627f2d15c7f2bcd2c2b7ded6f3b0
languageName: node
linkType: hard
"spdx-correct@npm:^3.0.0":
version: 3.1.1
resolution: "spdx-correct@npm:3.1.1"
@ -5106,6 +5462,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"toposort-class@npm:^1.0.1":
version: 1.0.1
resolution: "toposort-class@npm:1.0.1"
checksum: cead76d5abf1090ba903f36f42fbd69c78dd417593bce8d0f64c0f4226a34fa8c6ac92e7be358da90fdae800dd8b3c069eaf07ef6fac4cd53016575b9a100871
languageName: node
linkType: hard
"tough-cookie@npm:^2.3.3, tough-cookie@npm:~2.5.0":
version: 2.5.0
resolution: "tough-cookie@npm:2.5.0"
@ -5274,7 +5637,7 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"uuid@npm:^3.3.2":
"uuid@npm:^3.3.2, uuid@npm:^3.3.3":
version: 3.4.0
resolution: "uuid@npm:3.4.0"
bin:
@ -5313,6 +5676,13 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"validator@npm:^10.11.0":
version: 10.11.0
resolution: "validator@npm:10.11.0"
checksum: 07a37cd1469001b121696c2aa5494e9a4e416feabad31d849c02dfa414ae39c7885acb08d81d50d45e0ec63a1269bd8169937acf76202a79dc1ae53e909186b5
languageName: node
linkType: hard
"vary@npm:^1.1.2":
version: 1.1.2
resolution: "vary@npm:1.1.2"
@ -5437,6 +5807,15 @@ fsevents@^2.1.2:
languageName: node
linkType: hard
"wkx@npm:^0.4.8":
version: 0.4.8
resolution: "wkx@npm:0.4.8"
dependencies:
"@types/node": "*"
checksum: b18c150a870dc62a6e4cb35666698a9ae1ffc6e629d8ae2a09e5c2dc65ab1f7df3075c91b8d8291091895fef6e8f8df853e214c14b6d27263508f7e6364844ef
languageName: node
linkType: hard
"word-wrap@npm:~1.2.3":
version: 1.2.3
resolution: "word-wrap@npm:1.2.3"