diff --git a/package-lock.json b/package-lock.json
index 7bbad12..61a2470 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,7 @@
"": {
"version": "0.1.0",
"dependencies": {
+ "@apollo/client": "^3.3.18",
"@headlessui/react": "^1.1.1",
"@rehooks/component-size": "^1.0.3",
"@types/faker": "^5.5.3",
@@ -19,6 +20,7 @@
"clsx": "^1.1.1",
"cross-env": "^7.0.3",
"faker": "^5.5.3",
+ "graphql": "^15.5.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"prop-types": "^15.7.2",
@@ -55,6 +57,7 @@
"@types/react": "^17.0.4",
"@types/react-dom": "^17.0.3",
"@types/store": "^2.0.2",
+ "apollo-server": "^2.24.0",
"autoprefixer": "^9.8.6",
"babel-loader": "^8.1.0",
"concurrently": "^6.1.0",
@@ -74,6 +77,149 @@
"ts-loader": "^9.1.1"
}
},
+ "node_modules/@apollo/client": {
+ "version": "3.3.18",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.18.tgz",
+ "integrity": "sha512-SaJSda4V36/pnv7jkCBROBPwd3w/3TnG/Bd8oLESuNqm6ruXDHt067ow00Y2zz1AOL8SuOI9LXjmkr+FcTqnIQ==",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.0.0",
+ "@types/zen-observable": "^0.8.0",
+ "@wry/context": "^0.6.0",
+ "@wry/equality": "^0.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graphql-tag": "^2.12.0",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.16.0",
+ "prop-types": "^15.7.2",
+ "symbol-observable": "^2.0.0",
+ "ts-invariant": "^0.7.0",
+ "tslib": "^1.10.0",
+ "zen-observable": "^0.8.14"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0",
+ "react": "^16.8.0 || ^17.0.0",
+ "subscriptions-transport-ws": "^0.9.0"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ },
+ "subscriptions-transport-ws": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@apollo/client/node_modules/symbol-observable": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz",
+ "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/@apollo/client/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@apollo/protobufjs": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz",
+ "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.0",
+ "@types/node": "^10.1.0",
+ "long": "^4.0.0"
+ },
+ "bin": {
+ "apollo-pbjs": "bin/pbjs",
+ "apollo-pbts": "bin/pbts"
+ }
+ },
+ "node_modules/@apollo/protobufjs/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "node_modules/@apollographql/apollo-tools": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.0.tgz",
+ "integrity": "sha512-7IOZHVaKjBq44StXFJEITl4rxgZCsZFSWogAvIErKR9DYV20rt9bJ2mY5lCn+zghfGrweykjLb9g4TDxLg750w==",
+ "dev": true,
+ "dependencies": {
+ "apollo-env": "^0.10.0"
+ },
+ "engines": {
+ "node": ">=8",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/@apollographql/graphql-playground-html": {
+ "version": "1.6.27",
+ "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz",
+ "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==",
+ "dev": true,
+ "dependencies": {
+ "xss": "^1.0.8"
+ }
+ },
+ "node_modules/@apollographql/graphql-upload-8-fork": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz",
+ "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/express": "*",
+ "@types/fs-capacitor": "*",
+ "@types/koa": "*",
+ "busboy": "^0.3.1",
+ "fs-capacitor": "^2.0.4",
+ "http-errors": "^1.7.3",
+ "object-path": "^0.11.4"
+ },
+ "engines": {
+ "node": ">=8.5"
+ },
+ "peerDependencies": {
+ "graphql": "0.13.1 - 15"
+ }
+ },
+ "node_modules/@apollographql/graphql-upload-8-fork/node_modules/http-errors": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
+ "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
+ "dev": true,
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@apollographql/graphql-upload-8-fork/node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true
+ },
"node_modules/@babel/code-frame": {
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
@@ -2135,6 +2281,14 @@
"purgecss": "^3.1.3"
}
},
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz",
+ "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
"node_modules/@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
@@ -2772,6 +2926,12 @@
"node": ">=8"
}
},
+ "node_modules/@josephg/resolvable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz",
+ "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==",
+ "dev": true
+ },
"node_modules/@mdx-js/loader": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz",
@@ -3062,6 +3222,70 @@
"url": "https://opencollective.com/popperjs"
}
},
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "dev": true
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "dev": true
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "dev": true,
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=",
+ "dev": true
+ },
"node_modules/@reach/router": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz",
@@ -5760,6 +5984,15 @@
"react-dom": "*"
}
},
+ "node_modules/@types/accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/anymatch": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
@@ -5808,6 +6041,16 @@
"@babel/types": "^7.3.0"
}
},
+ "node_modules/@types/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/braces": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz",
@@ -5829,12 +6072,45 @@
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
"dev": true
},
+ "node_modules/@types/connect": {
+ "version": "3.4.34",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
+ "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==",
+ "dev": true
+ },
"node_modules/@types/cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==",
"dev": true
},
+ "node_modules/@types/cookies": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz",
+ "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==",
+ "dev": true,
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/express": "*",
+ "@types/keygrip": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/cors": {
+ "version": "2.8.10",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
+ "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==",
+ "dev": true
+ },
"node_modules/@types/eslint": {
"version": "7.2.10",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz",
@@ -5849,11 +6125,43 @@
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz",
"integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg=="
},
+ "node_modules/@types/express": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz",
+ "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==",
+ "dev": true,
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz",
+ "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
"node_modules/@types/faker": {
"version": "5.5.3",
"resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.3.tgz",
"integrity": "sha512-InxkM6sCFQTI6YQl29M/XGlO19ecv/EHH5X5zLEFdge2/qya8oIT0XkJUKTqheVYWJtGi+FBAfP7hbbunDiOmg=="
},
+ "node_modules/@types/fs-capacitor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz",
+ "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
@@ -5905,6 +6213,18 @@
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
"integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA=="
},
+ "node_modules/@types/http-assert": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz",
+ "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==",
+ "dev": true
+ },
+ "node_modules/@types/http-errors": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz",
+ "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==",
+ "dev": true
+ },
"node_modules/@types/inquirer": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.1.tgz",
@@ -5968,11 +6288,48 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
},
+ "node_modules/@types/keygrip": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz",
+ "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==",
+ "dev": true
+ },
+ "node_modules/@types/koa": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.1.tgz",
+ "integrity": "sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/accepts": "*",
+ "@types/content-disposition": "*",
+ "@types/cookies": "*",
+ "@types/http-assert": "*",
+ "@types/http-errors": "*",
+ "@types/keygrip": "*",
+ "@types/koa-compose": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/koa-compose": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
+ "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/koa": "*"
+ }
+ },
"node_modules/@types/lodash": {
"version": "4.14.168",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz",
"integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q=="
},
+ "node_modules/@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==",
+ "dev": true
+ },
"node_modules/@types/markdown-to-jsx": {
"version": "6.11.3",
"resolved": "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz",
@@ -6000,6 +6357,12 @@
"@types/braces": "*"
}
},
+ "node_modules/@types/mime": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
+ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
+ "dev": true
+ },
"node_modules/@types/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz",
@@ -6075,6 +6438,12 @@
"integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==",
"dev": true
},
+ "node_modules/@types/range-parser": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
+ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==",
+ "dev": true
+ },
"node_modules/@types/reach__router": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.7.tgz",
@@ -6149,6 +6518,16 @@
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
"integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
},
+ "node_modules/@types/serve-static": {
+ "version": "1.13.9",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz",
+ "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
+ "dev": true,
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/set-cookie-parser": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.0.tgz",
@@ -6281,6 +6660,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/@types/ws": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.4.tgz",
+ "integrity": "sha512-d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/yargs": {
"version": "15.0.13",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz",
@@ -6294,6 +6682,11 @@
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="
},
+ "node_modules/@types/zen-observable": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz",
+ "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg=="
+ },
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "4.22.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz",
@@ -6699,6 +7092,39 @@
"@xtuc/long": "4.2.2"
}
},
+ "node_modules/@wry/context": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.0.tgz",
+ "integrity": "sha512-sAgendOXR8dM7stJw3FusRxFHF/ZinU0lffsA2YTyyIOfic86JX02qlPqPVqJNZJPAxFt+2EE8bvq6ZlS0Kf+Q==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/equality": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.4.0.tgz",
+ "integrity": "sha512-DxN/uawWfhRbgYE55zVCPOoe+jvsQ4m7PT1Wlxjyb/LCCLuU1UsucV2BbCxFAX8bjcSueFBbB5Qfj1Zfe8e7Fw==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wry/trie": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.0.tgz",
+ "integrity": "sha512-Yw1akIogPhAT6XPYsRHlZZIS0tIGmAl9EYXHi2scf7LPKKqdqmow/Hu4kEqP2cJR3EjaU/9L0ZlAjFf3hFxmug==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -7046,6 +7472,327 @@
"node": ">= 8"
}
},
+ "node_modules/apollo-cache-control": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.13.0.tgz",
+ "integrity": "sha512-ImUXwVc/8K9QA3mQiKbKw8bOS4lMNL4DoP4hldIx+gwna8dgh3gBChgxW5guMOhcvH/55ximS7ZNWUglFmQY4Q==",
+ "dev": true,
+ "dependencies": {
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-plugin-base": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-datasource": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz",
+ "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==",
+ "dev": true,
+ "dependencies": {
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/apollo-env": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.10.0.tgz",
+ "integrity": "sha512-7Geot+eyOl4jzPi9beiszeDmEEVZOVT11LSlkQluF5eaCNaIvld+xklZxITZGI/Wr+PQX380YJgQt1ndR2GtOg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node-fetch": "^2.5.10",
+ "core-js": "^3.0.1",
+ "node-fetch": "^2.6.1",
+ "sha.js": "^2.4.11"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/apollo-graphql": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.2.tgz",
+ "integrity": "sha512-+c/vqC2LPq3e5kO7MfBxDDiljzLog/THZr9Pd46HVaKAhHUxFL0rJEbT17VhjdOoZGWFWLYG7x9hiN6EQD1xZQ==",
+ "dev": true,
+ "dependencies": {
+ "core-js-pure": "^3.10.2",
+ "lodash.sortby": "^4.7.0",
+ "sha.js": "^2.4.11"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "graphql": "^14.2.1 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-link": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
+ "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
+ "dev": true,
+ "dependencies": {
+ "apollo-utilities": "^1.3.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.9.3",
+ "zen-observable-ts": "^0.8.21"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-link/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-link/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/apollo-reporting-protobuf": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.7.0.tgz",
+ "integrity": "sha512-PC+zDqPPJcseemqmvUEqFiDi45pz6UaPWt6czgmrrbcQ+9VWp6IEkm08V5xBKk7V1WGUw19YwiJ7kqXpcgVNyw==",
+ "dev": true,
+ "dependencies": {
+ "@apollo/protobufjs": "1.2.2"
+ }
+ },
+ "node_modules/apollo-server": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.24.0.tgz",
+ "integrity": "sha512-KYYyBRLvqJaXFk64HfdgPilm8bqc2ON3hwhWmWx2Apsy4PC7paVK4gYFAUh9piPpeVZfF3t7zm+2J+9R47otjA==",
+ "dev": true,
+ "dependencies": {
+ "apollo-server-core": "^2.24.0",
+ "apollo-server-express": "^2.24.0",
+ "express": "^4.0.0",
+ "graphql-subscriptions": "^1.0.0",
+ "graphql-tools": "^4.0.8",
+ "stoppable": "^1.1.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-server-caching": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz",
+ "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/apollo-server-core": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.24.0.tgz",
+ "integrity": "sha512-uW7gykPzhin9fLgSvciN8tX7098mHnUM79W3+fWfK5J415JidIqW9O+JhYmEPo6BCgosu0cKSdYe7NB+FP4lFQ==",
+ "dev": true,
+ "dependencies": {
+ "@apollographql/apollo-tools": "^0.5.0",
+ "@apollographql/graphql-playground-html": "1.6.27",
+ "@apollographql/graphql-upload-8-fork": "^8.1.3",
+ "@josephg/resolvable": "^1.0.0",
+ "@types/ws": "^7.0.0",
+ "apollo-cache-control": "^0.13.0",
+ "apollo-datasource": "^0.9.0",
+ "apollo-graphql": "^0.9.0",
+ "apollo-reporting-protobuf": "^0.7.0",
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-errors": "^2.5.0",
+ "apollo-server-plugin-base": "^0.12.0",
+ "apollo-server-types": "^0.8.0",
+ "apollo-tracing": "^0.14.0",
+ "async-retry": "^1.2.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graphql-extensions": "^0.14.0",
+ "graphql-tag": "^2.11.0",
+ "graphql-tools": "^4.0.8",
+ "loglevel": "^1.6.7",
+ "lru-cache": "^6.0.0",
+ "sha.js": "^2.4.11",
+ "subscriptions-transport-ws": "^0.9.11",
+ "uuid": "^8.0.0",
+ "ws": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-server-core/node_modules/ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "dev": true,
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/apollo-server-env": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
+ "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
+ "dev": true,
+ "dependencies": {
+ "node-fetch": "^2.6.1",
+ "util.promisify": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/apollo-server-errors": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz",
+ "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-server-express": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.24.0.tgz",
+ "integrity": "sha512-wVoD53azxqVZt/i4yAm6cDDCXpbzr0AJpzOdNXVFW/KivInWEMF5ekCc80uMOawPeu78U7Skoc20akyvZKc+YA==",
+ "dev": true,
+ "dependencies": {
+ "@apollographql/graphql-playground-html": "1.6.27",
+ "@types/accepts": "^1.3.5",
+ "@types/body-parser": "1.19.0",
+ "@types/cors": "2.8.10",
+ "@types/express": "4.17.11",
+ "@types/express-serve-static-core": "4.17.19",
+ "accepts": "^1.3.5",
+ "apollo-server-core": "^2.24.0",
+ "apollo-server-types": "^0.8.0",
+ "body-parser": "^1.18.3",
+ "cors": "^2.8.5",
+ "express": "^4.17.1",
+ "graphql-subscriptions": "^1.0.0",
+ "graphql-tools": "^4.0.8",
+ "parseurl": "^1.3.2",
+ "subscriptions-transport-ws": "^0.9.16",
+ "type-is": "^1.6.16"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-server-plugin-base": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.12.0.tgz",
+ "integrity": "sha512-jnNIztYz34ImE7off0t9LwseGCR/J0H1wlbiBGvdXvQY+ZiMfVF2oF8KdSAPxG2vT6scvWP4GFS/FsZcOyP1Xw==",
+ "dev": true,
+ "dependencies": {
+ "apollo-server-types": "^0.8.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-server-types": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.8.0.tgz",
+ "integrity": "sha512-adHJnHbRV2kWUY0VQY1M2KpSdGfm+4mX4w+2lROPExqOnkyTI7CGfpJCdEwYMKrIn3aH8HIcOH0SnpWRet6TNw==",
+ "dev": true,
+ "dependencies": {
+ "apollo-reporting-protobuf": "^0.7.0",
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-tracing": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.14.0.tgz",
+ "integrity": "sha512-KH4mOoicZ2CQkEYVuNP9avJth59LwNqku3fKZ4S0UYE1RfxzIoLLsEyuY8MuJEgNdtKKfkX5G5Kn5Rp4LCJ4RQ==",
+ "dev": true,
+ "dependencies": {
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-plugin-base": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-utilities": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
+ "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
+ "dev": true,
+ "dependencies": {
+ "@wry/equality": "^0.1.2",
+ "fast-json-stable-stringify": "^2.0.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/apollo-utilities/node_modules/@wry/equality": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
+ "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-utilities/node_modules/ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "node_modules/apollo-utilities/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
"node_modules/app-root-dir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz",
@@ -7356,6 +8103,15 @@
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
+ "node_modules/async-retry": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
+ "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
+ "dev": true,
+ "dependencies": {
+ "retry": "0.12.0"
+ }
+ },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -8133,6 +8889,12 @@
"babylon": "bin/babylon.js"
}
},
+ "node_modules/backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+ "devOptional": true
+ },
"node_modules/bail": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
@@ -8643,6 +9405,18 @@
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
},
+ "node_modules/busboy": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
+ "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
+ "dev": true,
+ "dependencies": {
+ "dicer": "0.3.0"
+ },
+ "engines": {
+ "node": ">=4.5.0"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
@@ -9804,6 +10578,19 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
@@ -10222,6 +11009,12 @@
"node": ">=4"
}
},
+ "node_modules/cssfilter": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
+ "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=",
+ "dev": true
+ },
"node_modules/cssfontparser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz",
@@ -10989,6 +11782,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/deprecated-decorator": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz",
+ "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=",
+ "dev": true
+ },
"node_modules/des.js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
@@ -11107,6 +11906,18 @@
"node": ">=0.8.0"
}
},
+ "node_modules/dicer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
+ "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
+ "dev": true,
+ "dependencies": {
+ "streamsearch": "0.1.2"
+ },
+ "engines": {
+ "node": ">=4.5.0"
+ }
+ },
"node_modules/didyoumean": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz",
@@ -14130,6 +14941,15 @@
"readable-stream": "^2.0.0"
}
},
+ "node_modules/fs-capacitor": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz",
+ "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.5"
+ }
+ },
"node_modules/fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -14820,11 +15640,78 @@
"version": "15.5.0",
"resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz",
"integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==",
- "dev": true,
"engines": {
"node": ">= 10.x"
}
},
+ "node_modules/graphql-extensions": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.14.0.tgz",
+ "integrity": "sha512-DFtD8G+6rSj/Xhtb0IPh4A/sB/qcSEm9MTS221ESCx+axrsME92wGEsr7ihVjn1/tEEIy+9V5lUQOH/dHkCb0A==",
+ "dev": true,
+ "dependencies": {
+ "@apollographql/apollo-tools": "^0.5.0",
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-types": "^0.8.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/graphql-subscriptions": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz",
+ "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==",
+ "dev": true,
+ "dependencies": {
+ "iterall": "^1.3.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/graphql-tag": {
+ "version": "2.12.4",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.4.tgz",
+ "integrity": "sha512-VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/graphql-tools": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
+ "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
+ "dev": true,
+ "dependencies": {
+ "apollo-link": "^1.2.14",
+ "apollo-utilities": "^1.0.1",
+ "deprecated-decorator": "^0.1.6",
+ "iterall": "^1.1.3",
+ "uuid": "^3.1.0"
+ },
+ "peerDependencies": {
+ "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0"
+ }
+ },
+ "node_modules/graphql-tools/node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true,
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
"node_modules/growly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -16790,6 +17677,12 @@
"node": ">=8"
}
},
+ "node_modules/iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
+ "devOptional": true
+ },
"node_modules/iterate-iterator": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
@@ -19113,6 +20006,12 @@
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
"dev": true
},
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
"node_modules/lodash.template": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
@@ -19314,6 +20213,12 @@
"node": ">= 6"
}
},
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true
+ },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -20551,6 +21456,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/object-path": {
+ "version": "0.11.5",
+ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz",
+ "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.12.0"
+ }
+ },
"node_modules/object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
@@ -20740,6 +21654,15 @@
"node": ">=4"
}
},
+ "node_modules/optimism": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz",
+ "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==",
+ "dependencies": {
+ "@wry/context": "^0.6.0",
+ "@wry/trie": "^0.3.0"
+ }
+ },
"node_modules/optimize-css-assets-webpack-plugin": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz",
@@ -27040,6 +27963,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/stoppable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4",
+ "npm": ">=6"
+ }
+ },
"node_modules/store": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/store/-/store-2.0.12.tgz",
@@ -27089,6 +28022,15 @@
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
},
+ "node_modules/streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/strict-event-emitter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.0.tgz",
@@ -27382,6 +28324,37 @@
"node": ">=8"
}
},
+ "node_modules/subscriptions-transport-ws": {
+ "version": "0.9.18",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz",
+ "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==",
+ "devOptional": true,
+ "dependencies": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0"
+ },
+ "peerDependencies": {
+ "graphql": ">=0.10.0"
+ }
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+ "devOptional": true
+ },
+ "node_modules/subscriptions-transport-ws/node_modules/ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "devOptional": true,
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -27459,7 +28432,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
- "dev": true,
+ "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -28226,6 +29199,17 @@
"integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==",
"dev": true
},
+ "node_modules/ts-invariant": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.3.tgz",
+ "integrity": "sha512-UWDDeovyUTIMWj+45g5nhnl+8oo+GhxL5leTaHn5c8FkQWfh8v66gccLd2/YzVmV5hoQUjCEjhrXnQqVDJdvKA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/ts-loader": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.1.1.tgz",
@@ -31103,6 +32087,28 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
+ "node_modules/xss": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz",
+ "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==",
+ "dev": true,
+ "dependencies": {
+ "commander": "^2.20.3",
+ "cssfilter": "0.0.10"
+ },
+ "bin": {
+ "xss": "bin/xss"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/xss/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -31193,6 +32199,27 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "0.8.21",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
+ "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.3",
+ "zen-observable": "^0.8.0"
+ }
+ },
+ "node_modules/zen-observable-ts/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
"node_modules/zwitch": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
@@ -31205,6 +32232,121 @@
}
},
"dependencies": {
+ "@apollo/client": {
+ "version": "3.3.18",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.18.tgz",
+ "integrity": "sha512-SaJSda4V36/pnv7jkCBROBPwd3w/3TnG/Bd8oLESuNqm6ruXDHt067ow00Y2zz1AOL8SuOI9LXjmkr+FcTqnIQ==",
+ "requires": {
+ "@graphql-typed-document-node/core": "^3.0.0",
+ "@types/zen-observable": "^0.8.0",
+ "@wry/context": "^0.6.0",
+ "@wry/equality": "^0.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graphql-tag": "^2.12.0",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.16.0",
+ "prop-types": "^15.7.2",
+ "symbol-observable": "^2.0.0",
+ "ts-invariant": "^0.7.0",
+ "tslib": "^1.10.0",
+ "zen-observable": "^0.8.14"
+ },
+ "dependencies": {
+ "symbol-observable": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz",
+ "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA=="
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@apollo/protobufjs": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz",
+ "integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==",
+ "dev": true,
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.0",
+ "@types/node": "^10.1.0",
+ "long": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ }
+ }
+ },
+ "@apollographql/apollo-tools": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.0.tgz",
+ "integrity": "sha512-7IOZHVaKjBq44StXFJEITl4rxgZCsZFSWogAvIErKR9DYV20rt9bJ2mY5lCn+zghfGrweykjLb9g4TDxLg750w==",
+ "dev": true,
+ "requires": {
+ "apollo-env": "^0.10.0"
+ }
+ },
+ "@apollographql/graphql-playground-html": {
+ "version": "1.6.27",
+ "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz",
+ "integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==",
+ "dev": true,
+ "requires": {
+ "xss": "^1.0.8"
+ }
+ },
+ "@apollographql/graphql-upload-8-fork": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz",
+ "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==",
+ "dev": true,
+ "requires": {
+ "@types/express": "*",
+ "@types/fs-capacitor": "*",
+ "@types/koa": "*",
+ "busboy": "^0.3.1",
+ "fs-capacitor": "^2.0.4",
+ "http-errors": "^1.7.3",
+ "object-path": "^0.11.4"
+ },
+ "dependencies": {
+ "http-errors": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
+ "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true
+ }
+ }
+ },
"@babel/code-frame": {
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
@@ -32854,6 +33996,12 @@
"purgecss": "^3.1.3"
}
},
+ "@graphql-typed-document-node/core": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz",
+ "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==",
+ "requires": {}
+ },
"@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
@@ -33334,6 +34482,12 @@
}
}
},
+ "@josephg/resolvable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz",
+ "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==",
+ "dev": true
+ },
"@mdx-js/loader": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz",
@@ -33537,6 +34691,70 @@
"integrity": "sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==",
"dev": true
},
+ "@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=",
+ "dev": true
+ },
+ "@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "dev": true
+ },
+ "@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "dev": true
+ },
+ "@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=",
+ "dev": true
+ },
+ "@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "dev": true,
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=",
+ "dev": true
+ },
+ "@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=",
+ "dev": true
+ },
+ "@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=",
+ "dev": true
+ },
+ "@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=",
+ "dev": true
+ },
+ "@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=",
+ "dev": true
+ },
"@reach/router": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz",
@@ -35554,6 +36772,15 @@
"@testing-library/dom": "^7.28.1"
}
},
+ "@types/accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/anymatch": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
@@ -35602,6 +36829,16 @@
"@babel/types": "^7.3.0"
}
},
+ "@types/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
"@types/braces": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz",
@@ -35623,12 +36860,45 @@
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
"dev": true
},
+ "@types/connect": {
+ "version": "3.4.34",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
+ "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==",
+ "dev": true
+ },
"@types/cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==",
"dev": true
},
+ "@types/cookies": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz",
+ "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/express": "*",
+ "@types/keygrip": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/cors": {
+ "version": "2.8.10",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
+ "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==",
+ "dev": true
+ },
"@types/eslint": {
"version": "7.2.10",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz",
@@ -35643,11 +36913,43 @@
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz",
"integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg=="
},
+ "@types/express": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz",
+ "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==",
+ "dev": true,
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz",
+ "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
"@types/faker": {
"version": "5.5.3",
"resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.3.tgz",
"integrity": "sha512-InxkM6sCFQTI6YQl29M/XGlO19ecv/EHH5X5zLEFdge2/qya8oIT0XkJUKTqheVYWJtGi+FBAfP7hbbunDiOmg=="
},
+ "@types/fs-capacitor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz",
+ "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
@@ -35699,6 +37001,18 @@
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
"integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA=="
},
+ "@types/http-assert": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz",
+ "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==",
+ "dev": true
+ },
+ "@types/http-errors": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz",
+ "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==",
+ "dev": true
+ },
"@types/inquirer": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.1.tgz",
@@ -35762,11 +37076,48 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
},
+ "@types/keygrip": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz",
+ "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==",
+ "dev": true
+ },
+ "@types/koa": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.1.tgz",
+ "integrity": "sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q==",
+ "dev": true,
+ "requires": {
+ "@types/accepts": "*",
+ "@types/content-disposition": "*",
+ "@types/cookies": "*",
+ "@types/http-assert": "*",
+ "@types/http-errors": "*",
+ "@types/keygrip": "*",
+ "@types/koa-compose": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/koa-compose": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
+ "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==",
+ "dev": true,
+ "requires": {
+ "@types/koa": "*"
+ }
+ },
"@types/lodash": {
"version": "4.14.168",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz",
"integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q=="
},
+ "@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==",
+ "dev": true
+ },
"@types/markdown-to-jsx": {
"version": "6.11.3",
"resolved": "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz",
@@ -35794,6 +37145,12 @@
"@types/braces": "*"
}
},
+ "@types/mime": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
+ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
+ "dev": true
+ },
"@types/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz",
@@ -35869,6 +37226,12 @@
"integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==",
"dev": true
},
+ "@types/range-parser": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
+ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==",
+ "dev": true
+ },
"@types/reach__router": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.7.tgz",
@@ -35945,6 +37308,16 @@
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
"integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
},
+ "@types/serve-static": {
+ "version": "1.13.9",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz",
+ "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
+ "dev": true,
+ "requires": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
"@types/set-cookie-parser": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.0.tgz",
@@ -36074,6 +37447,15 @@
}
}
},
+ "@types/ws": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.4.tgz",
+ "integrity": "sha512-d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/yargs": {
"version": "15.0.13",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz",
@@ -36087,6 +37469,11 @@
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="
},
+ "@types/zen-observable": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz",
+ "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg=="
+ },
"@typescript-eslint/eslint-plugin": {
"version": "4.22.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz",
@@ -36389,6 +37776,30 @@
"@xtuc/long": "4.2.2"
}
},
+ "@wry/context": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.0.tgz",
+ "integrity": "sha512-sAgendOXR8dM7stJw3FusRxFHF/ZinU0lffsA2YTyyIOfic86JX02qlPqPVqJNZJPAxFt+2EE8bvq6ZlS0Kf+Q==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "@wry/equality": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.4.0.tgz",
+ "integrity": "sha512-DxN/uawWfhRbgYE55zVCPOoe+jvsQ4m7PT1Wlxjyb/LCCLuU1UsucV2BbCxFAX8bjcSueFBbB5Qfj1Zfe8e7Fw==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "@wry/trie": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.0.tgz",
+ "integrity": "sha512-Yw1akIogPhAT6XPYsRHlZZIS0tIGmAl9EYXHi2scf7LPKKqdqmow/Hu4kEqP2cJR3EjaU/9L0ZlAjFf3hFxmug==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
"@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -36657,6 +38068,265 @@
"picomatch": "^2.0.4"
}
},
+ "apollo-cache-control": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.13.0.tgz",
+ "integrity": "sha512-ImUXwVc/8K9QA3mQiKbKw8bOS4lMNL4DoP4hldIx+gwna8dgh3gBChgxW5guMOhcvH/55ximS7ZNWUglFmQY4Q==",
+ "dev": true,
+ "requires": {
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-plugin-base": "^0.12.0"
+ }
+ },
+ "apollo-datasource": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz",
+ "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==",
+ "dev": true,
+ "requires": {
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0"
+ }
+ },
+ "apollo-env": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.10.0.tgz",
+ "integrity": "sha512-7Geot+eyOl4jzPi9beiszeDmEEVZOVT11LSlkQluF5eaCNaIvld+xklZxITZGI/Wr+PQX380YJgQt1ndR2GtOg==",
+ "dev": true,
+ "requires": {
+ "@types/node-fetch": "^2.5.10",
+ "core-js": "^3.0.1",
+ "node-fetch": "^2.6.1",
+ "sha.js": "^2.4.11"
+ }
+ },
+ "apollo-graphql": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.2.tgz",
+ "integrity": "sha512-+c/vqC2LPq3e5kO7MfBxDDiljzLog/THZr9Pd46HVaKAhHUxFL0rJEbT17VhjdOoZGWFWLYG7x9hiN6EQD1xZQ==",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.10.2",
+ "lodash.sortby": "^4.7.0",
+ "sha.js": "^2.4.11"
+ }
+ },
+ "apollo-link": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
+ "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
+ "dev": true,
+ "requires": {
+ "apollo-utilities": "^1.3.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.9.3",
+ "zen-observable-ts": "^0.8.21"
+ },
+ "dependencies": {
+ "ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "apollo-reporting-protobuf": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.7.0.tgz",
+ "integrity": "sha512-PC+zDqPPJcseemqmvUEqFiDi45pz6UaPWt6czgmrrbcQ+9VWp6IEkm08V5xBKk7V1WGUw19YwiJ7kqXpcgVNyw==",
+ "dev": true,
+ "requires": {
+ "@apollo/protobufjs": "1.2.2"
+ }
+ },
+ "apollo-server": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.24.0.tgz",
+ "integrity": "sha512-KYYyBRLvqJaXFk64HfdgPilm8bqc2ON3hwhWmWx2Apsy4PC7paVK4gYFAUh9piPpeVZfF3t7zm+2J+9R47otjA==",
+ "dev": true,
+ "requires": {
+ "apollo-server-core": "^2.24.0",
+ "apollo-server-express": "^2.24.0",
+ "express": "^4.0.0",
+ "graphql-subscriptions": "^1.0.0",
+ "graphql-tools": "^4.0.8",
+ "stoppable": "^1.1.0"
+ }
+ },
+ "apollo-server-caching": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz",
+ "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "apollo-server-core": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.24.0.tgz",
+ "integrity": "sha512-uW7gykPzhin9fLgSvciN8tX7098mHnUM79W3+fWfK5J415JidIqW9O+JhYmEPo6BCgosu0cKSdYe7NB+FP4lFQ==",
+ "dev": true,
+ "requires": {
+ "@apollographql/apollo-tools": "^0.5.0",
+ "@apollographql/graphql-playground-html": "1.6.27",
+ "@apollographql/graphql-upload-8-fork": "^8.1.3",
+ "@josephg/resolvable": "^1.0.0",
+ "@types/ws": "^7.0.0",
+ "apollo-cache-control": "^0.13.0",
+ "apollo-datasource": "^0.9.0",
+ "apollo-graphql": "^0.9.0",
+ "apollo-reporting-protobuf": "^0.7.0",
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-errors": "^2.5.0",
+ "apollo-server-plugin-base": "^0.12.0",
+ "apollo-server-types": "^0.8.0",
+ "apollo-tracing": "^0.14.0",
+ "async-retry": "^1.2.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graphql-extensions": "^0.14.0",
+ "graphql-tag": "^2.11.0",
+ "graphql-tools": "^4.0.8",
+ "loglevel": "^1.6.7",
+ "lru-cache": "^6.0.0",
+ "sha.js": "^2.4.11",
+ "subscriptions-transport-ws": "^0.9.11",
+ "uuid": "^8.0.0",
+ "ws": "^6.0.0"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "apollo-server-env": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
+ "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
+ "dev": true,
+ "requires": {
+ "node-fetch": "^2.6.1",
+ "util.promisify": "^1.0.0"
+ }
+ },
+ "apollo-server-errors": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz",
+ "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==",
+ "dev": true,
+ "requires": {}
+ },
+ "apollo-server-express": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.24.0.tgz",
+ "integrity": "sha512-wVoD53azxqVZt/i4yAm6cDDCXpbzr0AJpzOdNXVFW/KivInWEMF5ekCc80uMOawPeu78U7Skoc20akyvZKc+YA==",
+ "dev": true,
+ "requires": {
+ "@apollographql/graphql-playground-html": "1.6.27",
+ "@types/accepts": "^1.3.5",
+ "@types/body-parser": "1.19.0",
+ "@types/cors": "2.8.10",
+ "@types/express": "4.17.11",
+ "@types/express-serve-static-core": "4.17.19",
+ "accepts": "^1.3.5",
+ "apollo-server-core": "^2.24.0",
+ "apollo-server-types": "^0.8.0",
+ "body-parser": "^1.18.3",
+ "cors": "^2.8.5",
+ "express": "^4.17.1",
+ "graphql-subscriptions": "^1.0.0",
+ "graphql-tools": "^4.0.8",
+ "parseurl": "^1.3.2",
+ "subscriptions-transport-ws": "^0.9.16",
+ "type-is": "^1.6.16"
+ }
+ },
+ "apollo-server-plugin-base": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.12.0.tgz",
+ "integrity": "sha512-jnNIztYz34ImE7off0t9LwseGCR/J0H1wlbiBGvdXvQY+ZiMfVF2oF8KdSAPxG2vT6scvWP4GFS/FsZcOyP1Xw==",
+ "dev": true,
+ "requires": {
+ "apollo-server-types": "^0.8.0"
+ }
+ },
+ "apollo-server-types": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.8.0.tgz",
+ "integrity": "sha512-adHJnHbRV2kWUY0VQY1M2KpSdGfm+4mX4w+2lROPExqOnkyTI7CGfpJCdEwYMKrIn3aH8HIcOH0SnpWRet6TNw==",
+ "dev": true,
+ "requires": {
+ "apollo-reporting-protobuf": "^0.7.0",
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0"
+ }
+ },
+ "apollo-tracing": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.14.0.tgz",
+ "integrity": "sha512-KH4mOoicZ2CQkEYVuNP9avJth59LwNqku3fKZ4S0UYE1RfxzIoLLsEyuY8MuJEgNdtKKfkX5G5Kn5Rp4LCJ4RQ==",
+ "dev": true,
+ "requires": {
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-plugin-base": "^0.12.0"
+ }
+ },
+ "apollo-utilities": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
+ "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
+ "dev": true,
+ "requires": {
+ "@wry/equality": "^0.1.2",
+ "fast-json-stable-stringify": "^2.0.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0"
+ },
+ "dependencies": {
+ "@wry/equality": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
+ "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
"app-root-dir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz",
@@ -36897,6 +38567,15 @@
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
+ "async-retry": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
+ "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
+ "dev": true,
+ "requires": {
+ "retry": "0.12.0"
+ }
+ },
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -37525,6 +39204,12 @@
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
},
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+ "devOptional": true
+ },
"bail": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
@@ -37942,6 +39627,15 @@
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
},
+ "busboy": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
+ "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
+ "dev": true,
+ "requires": {
+ "dicer": "0.3.0"
+ }
+ },
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
@@ -38845,6 +40539,16 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
"cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
@@ -39165,6 +40869,12 @@
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
},
+ "cssfilter": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
+ "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=",
+ "dev": true
+ },
"cssfontparser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz",
@@ -39774,6 +41484,12 @@
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
+ "deprecated-decorator": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz",
+ "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=",
+ "dev": true
+ },
"des.js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
@@ -39869,6 +41585,15 @@
"minimist": "^1.1.1"
}
},
+ "dicer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
+ "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
+ "dev": true,
+ "requires": {
+ "streamsearch": "0.1.2"
+ }
+ },
"didyoumean": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz",
@@ -42241,6 +43966,12 @@
"readable-stream": "^2.0.0"
}
},
+ "fs-capacitor": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz",
+ "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==",
+ "dev": true
+ },
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -42782,8 +44513,56 @@
"graphql": {
"version": "15.5.0",
"resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz",
- "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==",
- "dev": true
+ "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA=="
+ },
+ "graphql-extensions": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.14.0.tgz",
+ "integrity": "sha512-DFtD8G+6rSj/Xhtb0IPh4A/sB/qcSEm9MTS221ESCx+axrsME92wGEsr7ihVjn1/tEEIy+9V5lUQOH/dHkCb0A==",
+ "dev": true,
+ "requires": {
+ "@apollographql/apollo-tools": "^0.5.0",
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-types": "^0.8.0"
+ }
+ },
+ "graphql-subscriptions": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz",
+ "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==",
+ "dev": true,
+ "requires": {
+ "iterall": "^1.3.0"
+ }
+ },
+ "graphql-tag": {
+ "version": "2.12.4",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.4.tgz",
+ "integrity": "sha512-VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "graphql-tools": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
+ "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
+ "dev": true,
+ "requires": {
+ "apollo-link": "^1.2.14",
+ "apollo-utilities": "^1.0.1",
+ "deprecated-decorator": "^0.1.6",
+ "iterall": "^1.1.3",
+ "uuid": "^3.1.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ }
+ }
},
"growly": {
"version": "1.3.0",
@@ -44248,6 +46027,12 @@
"istanbul-lib-report": "^3.0.0"
}
},
+ "iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
+ "devOptional": true
+ },
"iterate-iterator": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
@@ -45977,6 +47762,12 @@
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
"dev": true
},
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
"lodash.template": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
@@ -46134,6 +47925,12 @@
"object.assign": "^4.1.0"
}
},
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true
+ },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -47117,6 +48914,12 @@
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
+ "object-path": {
+ "version": "0.11.5",
+ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz",
+ "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==",
+ "dev": true
+ },
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
@@ -47251,6 +49054,15 @@
}
}
},
+ "optimism": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz",
+ "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==",
+ "requires": {
+ "@wry/context": "^0.6.0",
+ "@wry/trie": "^0.3.0"
+ }
+ },
"optimize-css-assets-webpack-plugin": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz",
@@ -52228,6 +54040,12 @@
"resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
},
+ "stoppable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
+ "dev": true
+ },
"store": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/store/-/store-2.0.12.tgz",
@@ -52274,6 +54092,12 @@
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
},
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
+ "dev": true
+ },
"strict-event-emitter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.0.tgz",
@@ -52492,6 +54316,36 @@
}
}
},
+ "subscriptions-transport-ws": {
+ "version": "0.9.18",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz",
+ "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==",
+ "devOptional": true,
+ "requires": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+ "devOptional": true
+ },
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "devOptional": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -52553,7 +54407,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
- "dev": true
+ "devOptional": true
},
"symbol-tree": {
"version": "3.2.4",
@@ -53142,6 +54996,14 @@
"integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==",
"dev": true
},
+ "ts-invariant": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.3.tgz",
+ "integrity": "sha512-UWDDeovyUTIMWj+45g5nhnl+8oo+GhxL5leTaHn5c8FkQWfh8v66gccLd2/YzVmV5hoQUjCEjhrXnQqVDJdvKA==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
"ts-loader": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.1.1.tgz",
@@ -55430,6 +57292,24 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
+ "xss": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz",
+ "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.20.3",
+ "cssfilter": "0.0.10"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ }
+ }
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -55498,6 +57378,29 @@
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
},
+ "zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
+ },
+ "zen-observable-ts": {
+ "version": "0.8.21",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
+ "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3",
+ "zen-observable": "^0.8.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
"zwitch": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
diff --git a/package.json b/package.json
index 9a158bf..5bacecf 100644
--- a/package.json
+++ b/package.json
@@ -24,6 +24,7 @@
},
"homepage": "http://modular-admin-tailwind-react.modularcode.io",
"dependencies": {
+ "@apollo/client": "^3.3.18",
"@headlessui/react": "^1.1.1",
"@rehooks/component-size": "^1.0.3",
"@types/faker": "^5.5.3",
@@ -36,6 +37,7 @@
"clsx": "^1.1.1",
"cross-env": "^7.0.3",
"faker": "^5.5.3",
+ "graphql": "^15.5.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"prop-types": "^15.7.2",
@@ -72,6 +74,7 @@
"@types/react": "^17.0.4",
"@types/react-dom": "^17.0.3",
"@types/store": "^2.0.2",
+ "apollo-server": "^2.24.0",
"autoprefixer": "^9.8.6",
"babel-loader": "^8.1.0",
"concurrently": "^6.1.0",
diff --git a/src/App.tsx b/src/App.tsx
index c515e6c..67c9eff 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,14 +1,10 @@
import React, { useLayoutEffect } from 'react'
import { IntlProvider } from 'react-intl'
-import {
- HashRouter,
- BrowserRouter,
- Route,
- Switch,
- useLocation,
-} from 'react-router-dom' //
+import { HashRouter, BrowserRouter, Route, Switch, useLocation } from 'react-router-dom' //
+import { ApolloProvider } from '@apollo/client/react'
import config from './_config'
+import clientGraphQL from '_api/clientGraphQL'
import { Auth } from './Auth'
import { Administration } from './Administration'
@@ -47,11 +43,13 @@ const AppRouterComponent: React.FC = ({ children }) => {
}
const AppWithPrividers: React.FC = () => (
-
Loading...
+if (error) returnError :( {JSON.stringify(error)}
+ +*/ + +const QUERY_ORGANIZATIONS = gql` + query GetOrganizations { + organizations { + test + test2 + } + } +` + +const QUERY_VALOD = gql` + query Valod { + isHere + } +` + const Dashboard: React.FC{content}
{content2}
{content3}
diff --git a/src/_api/_data/organizationsData.ts b/src/_api/_data/organizationsData.ts new file mode 100644 index 0000000..3c77320 --- /dev/null +++ b/src/_api/_data/organizationsData.ts @@ -0,0 +1,30 @@ +import { keyBy } from 'lodash' +import Organization from '../_types/Organization' +import subscriptionPlansData from './subscriptionPlansData' + +const list: Organization[] = [ + { + id: 1, + name: 'ModularCode', + subscriptionPlanId: subscriptionPlansData.list[1].id, + }, + { + id: 2, + name: 'Cool LLC', + subscriptionPlanId: subscriptionPlansData.list[1].id, + }, + { + id: 3, + name: 'Other LLC', + subscriptionPlanId: subscriptionPlansData.list[3].id, + }, +] + +const byId: { [key: number]: Organization } = keyBy(list, 'id') + +const organizationsData = { + list, + byId, +} + +export default organizationsData diff --git a/src/_api/_data/subscriptionPaymentsData.ts b/src/_api/_data/subscriptionPaymentsData.ts new file mode 100644 index 0000000..134a4a7 --- /dev/null +++ b/src/_api/_data/subscriptionPaymentsData.ts @@ -0,0 +1,13 @@ +import { /* get as _get, */ keyBy as _keyBy } from 'lodash' +import SubscriptionPayment from '../_types/SubscriptionPayment' + +const list: SubscriptionPayment[] = [] + +const byId: { [key: number]: SubscriptionPayment } = _keyBy(list, 'id') + +const subscriptionPlansData = { + list, + byId, +} + +export default subscriptionPlansData diff --git a/src/_api/_data/subscriptionPlansData.ts b/src/_api/_data/subscriptionPlansData.ts new file mode 100644 index 0000000..fef1c4d --- /dev/null +++ b/src/_api/_data/subscriptionPlansData.ts @@ -0,0 +1,38 @@ +import { keyBy as _keyBy } from 'lodash' +import SubscriptionPlan from '../_types/SubscriptionPlan' + +const list: SubscriptionPlan[] = [ + { + id: 1, + name: 'Trial', + price: 0, + status: 'active', + }, + { + id: 2, + name: 'Pro', + price: 30, + status: 'active', + }, + { + id: 3, + name: 'Silver', + price: 59, + status: 'active', + }, + { + id: 4, + name: 'Gold', + price: 99, + status: 'active', + }, +] + +const byId: { [key: number]: SubscriptionPlan } = _keyBy(list, 'id') + +const subscriptionPlansData = { + list, + byId, +} + +export default subscriptionPlansData diff --git a/src/_api/_data/subscriptionsData.ts b/src/_api/_data/subscriptionsData.ts new file mode 100644 index 0000000..160db82 --- /dev/null +++ b/src/_api/_data/subscriptionsData.ts @@ -0,0 +1,19 @@ +import { keyBy as _keyBy } from 'lodash' +import Subscription from '../_types/Subscription' + +const list: Subscription[] = [ + { + id: 1, + organizationId: 1, + subscriptionPlanId: 1, + }, +] + +const byId: { [key: number]: Subscription } = _keyBy(list, 'id') + +const subscriptionPlansData = { + list, + byId, +} + +export default subscriptionPlansData diff --git a/src/_api/_mocks/_data/usersData.ts b/src/_api/_data/usersData.ts similarity index 97% rename from src/_api/_mocks/_data/usersData.ts rename to src/_api/_data/usersData.ts index c54f3ed..a06421b 100644 --- a/src/_api/_mocks/_data/usersData.ts +++ b/src/_api/_data/usersData.ts @@ -1,7 +1,7 @@ import { get as _get, keyBy as _keyBy } from 'lodash' import moment from 'moment' -import User from '../../_types/User' -import UserToOrganization from '../../_types/UserToOrganization' +import User from '../_types/User' +import UserToOrganization from '../_types/UserToOrganization' import usersToOrganizationsData from './usersToOrganizationsData' import organizationsData from './organizationsData' diff --git a/src/_api/_mocks/_data/usersToOrganizationsData.ts b/src/_api/_data/usersToOrganizationsData.ts similarity index 95% rename from src/_api/_mocks/_data/usersToOrganizationsData.ts rename to src/_api/_data/usersToOrganizationsData.ts index 59e03b9..91bd2e1 100644 --- a/src/_api/_mocks/_data/usersToOrganizationsData.ts +++ b/src/_api/_data/usersToOrganizationsData.ts @@ -1,5 +1,5 @@ import _groupBy from 'lodash/groupBy' -import UserToOrganization from '../../_types/UserToOrganization' +import UserToOrganization from '../_types/UserToOrganization' // import organizationsData from './organizationsData' // import usersData from './usersData' diff --git a/src/_api/_mocks/_data/notificationsData.ts b/src/_api/_mocks/_data/notificationsData.ts deleted file mode 100644 index 7fc9af7..0000000 --- a/src/_api/_mocks/_data/notificationsData.ts +++ /dev/null @@ -1,3 +0,0 @@ -const notificationsData = {} - -export default notificationsData diff --git a/src/_api/_mocks/_data/organizationsData.ts b/src/_api/_mocks/_data/organizationsData.ts deleted file mode 100644 index e1db7fa..0000000 --- a/src/_api/_mocks/_data/organizationsData.ts +++ /dev/null @@ -1,41 +0,0 @@ -import _keyBy from 'lodash/keyBy' -import Organization from '../../_types/Organization' -// import organizationsToUsersData from './organizationsToUsersData' - -const list: Organization[] = [ - { - id: 1, - name: 'ModularCode', - plan: { - id: 'silver', - name: 'Silver', - }, - }, - { - id: 2, - name: 'Cool LLC', - plan: { - id: 'gold', - name: 'Gold', - }, - // organizationToUsers: organizationsToUsersData.byOrganizationId[2], - }, - { - id: 3, - name: 'Other LLC', - plan: { - id: 'trial', - name: 'Trial', - }, - // organizationToUsers: organizationsToUsersData.byOrganizationId[3], - }, -] - -const byId: { [key: number]: Organization } = _keyBy(list, 'id') - -const organizationsData = { - list, - byId, -} - -export default organizationsData diff --git a/src/_api/_mocks/_data/subscriptionPlansData.ts b/src/_api/_mocks/_data/subscriptionPlansData.ts deleted file mode 100644 index bbb5eb5..0000000 --- a/src/_api/_mocks/_data/subscriptionPlansData.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { get as _get, keyBy as _keyBy } from 'lodash' -import moment from 'moment' -import Plan from '../../_types/SubscriptionPlan' - -const list: Plan[] = [ - { - id: 1, - name: 'Trial', - price: 0, - status: 'active', - }, - { - id: 2, - name: 'Pro', - price: 0, - status: 'active', - }, - { - id: 2, - name: 'Gold', - price: 0, - status: 'active', - }, -] - -const byId: { [key: number]: Plan } = _keyBy(list, 'id') - -const subscriptionPlansData = { - list, - byId, - current: byId[1], -} - -export default subscriptionPlansData diff --git a/src/_api/_mocks/_ref/index.ts b/src/_api/_mocks/_ref/index.ts deleted file mode 100644 index e63c114..0000000 --- a/src/_api/_mocks/_ref/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -console.log('hello mocks!') - -export default {} - -// import { AxiosInstance } from 'axios' -// import MockAdapter from 'axios-mock-adapter' - -// import usersMocks from './usersMocks' -// import organizationsMocks from './organizationsMocks' - -// const init = (instance: AxiosInstance) => { -// const mockAdapter = new MockAdapter(instance, { delayResponse: 200 }) - -// usersMocks.init(mockAdapter, instance) -// organizationsMocks.init(mockAdapter, instance) - -// return mockAdapter -// } - -// export default { -// init, -// } diff --git a/src/_api/_mocks/_ref/organizationsMocksAxios.ts b/src/_api/_mocks/_ref/organizationsMocksAxios.ts deleted file mode 100644 index 0045e05..0000000 --- a/src/_api/_mocks/_ref/organizationsMocksAxios.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { AxiosInstance } from 'axios' -import MockAdapter from 'axios-mock-adapter' -import organizationsData from './../_data/organizationsData' - -export default { - init(mock: MockAdapter, instance: AxiosInstance) { - mock.onGet('/organizations').reply(200, { - organizations: { - ...organizationsData.list, - }, - count: organizationsData.list.length, - }) - - // - mock.onGet(/\/organizations\/\d+/).reply((config: any) => { - // console.log(config) - const urlPaths = config.url.split('/') - const organizationId = urlPaths[urlPaths.length - 1] - const organization = organizationsData.byId[organizationId] - - if (organization) { - return [200, { ...organization }] - } else { - return [404, { message: 'Organization not found ' }] - } - }) - - mock.onPut(/\/organizations\/\d+/).reply((config: any) => { - const urlPaths = config.url.split('/') - const organizationId = urlPaths[urlPaths.length - 1] - const organizationData = JSON.parse(config.data) - const organization = organizationsData.byId[organizationId] - - if (organization) { - return [200, { ...organization, ...organizationData }] - } else { - return [403, { message: 'Update not permitted' }] - } - }) - - mock.onPost(/\/organizations/).reply((config: any) => { - const organizationData = JSON.parse(config.data) - - return [200, { id: 100, ...organizationData }] - }) - - mock.onDelete(/\/organizations\/\d+/).reply((config: any) => { - return [200, { message: 'Organization deleted' }] - }) - }, -} diff --git a/src/_api/_mocks/_ref/usersMocksAxios.ts b/src/_api/_mocks/_ref/usersMocksAxios.ts deleted file mode 100644 index b407c0d..0000000 --- a/src/_api/_mocks/_ref/usersMocksAxios.ts +++ /dev/null @@ -1,80 +0,0 @@ -import _ from 'lodash' -import { AxiosInstance } from 'axios' -import MockAdapter from 'axios-mock-adapter' -import usersData from '../_data/usersData' - -export default { - init(mock: MockAdapter, instance: AxiosInstance) { - mock.onGet('/users/profile').reply(200, { - ...usersData.current, - }) - - mock.onGet('/users').reply(config => { - const { limit = 10, offset = 0, order = {}, customResponse } = config.params - - if (customResponse) { - return [ - customResponse.status || 403, - { - message: customResponse.message || 'Something went wrong...', - }, - ] - } - - const usersAll = order - ? _.orderBy(usersData.list, [order.orderBy], [order.order]) - : usersData.list - - if (order) { - } - - return [ - 200, - { - users: usersAll.slice(offset, offset + limit), - count: usersAll.length, - }, - ] - }) - - // - mock.onGet(/\/users\/\d+/).reply((config: any) => { - // console.log(config) - const urlPaths = config.url.split('/') - const userId = urlPaths[urlPaths.length - 1] - const user = usersData.byId[userId] - - if (user) { - return [200, { ...user }] - } else { - return [404, { message: 'User not found ' }] - } - }) - - mock.onPut(/\/users\/\d+/).reply((config: any) => { - const urlPaths = config.url.split('/') - const userId = urlPaths[urlPaths.length - 1] - const userData = JSON.parse(config.data) - const user = usersData.byId[userId] - - if (user) { - return [200, { ...user, ...userData }] - } else { - return [403, { message: 'Update not permitted' }] - } - }) - - mock.onPost(/\/users/).reply((config: any) => { - const userData = JSON.parse(config.data) - - console.log('config', config) - console.log('userData', userData) - - return [200, { id: 100, ...userData }] - }) - - mock.onDelete(/\/users\/\d+/).reply((config: any) => { - return [200, { message: 'User removed' }] - }) - }, -} diff --git a/src/_api/_mocksGraphQL/README.md b/src/_api/_mocksGraphQL/README.md new file mode 100644 index 0000000..c994fb5 --- /dev/null +++ b/src/_api/_mocksGraphQL/README.md @@ -0,0 +1,4 @@ +GraphQL design ref: + + +https://atheros.ai/blog/graphql-best-practices-for-graphql-schema-design diff --git a/src/_api/_mocksGraphQL/authMocks.ts b/src/_api/_mocksGraphQL/authMocks.ts new file mode 100644 index 0000000..7289715 --- /dev/null +++ b/src/_api/_mocksGraphQL/authMocks.ts @@ -0,0 +1,42 @@ +import { graphql } from 'msw' + +const authMocks = [ + // Handles a "Login" mutation + graphql.mutation('Login', (req, res, ctx) => { + const { username } = req.variables + sessionStorage.setItem('is-authenticated', username) + return res( + ctx.data({ + login: { + username, + }, + }), + ) + }), + // Handles a "GetUserInfo" query + graphql.query('GetUserInfo', (req, res, ctx) => { + const authenticatedUser = sessionStorage.getItem('is-authenticated') + if (!authenticatedUser) { + // When not authenticated, respond with an error + return res( + ctx.errors([ + { + message: 'Not authenticated', + errorType: 'AuthenticationError', + }, + ]), + ) + } + // When authenticated, respond with a query payload + return res( + ctx.data({ + user: { + username: authenticatedUser, + firstName: 'John', + }, + }), + ) + }), +] + +export default authMocks diff --git a/src/_api/_mocksGraphQL/index.ts b/src/_api/_mocksGraphQL/index.ts new file mode 100644 index 0000000..226bcc1 --- /dev/null +++ b/src/_api/_mocksGraphQL/index.ts @@ -0,0 +1,17 @@ +import { setupWorker } from 'msw' +import { setupServer } from 'msw/node' +import authMocks from './authMocks' +import organizationsMocks from './organizationsMocks' +// import { ApolloServer, gql } from 'apollo-server' + +const start = () => { + if (process.env.NODE_ENV !== 'test') { + setupWorker(...authMocks, ...organizationsMocks).start() + } else { + setupServer(...authMocks, ...organizationsMocks) + } +} + +export default { + init: start, +} diff --git a/src/_api/_mocksGraphQL/organizationsMocks.ts b/src/_api/_mocksGraphQL/organizationsMocks.ts new file mode 100644 index 0000000..704c1b3 --- /dev/null +++ b/src/_api/_mocksGraphQL/organizationsMocks.ts @@ -0,0 +1,20 @@ +import { graphql } from 'msw' + +const organizationsMocks = [ + graphql.query('GetOrganizations', (req, res, ctx) => { + console.log('req', req) + + return res( + ctx.data({ + organizations: [ + { + test: 'test', + test2: 'test2', + }, + ], + }), + ) + }), +] + +export default organizationsMocks diff --git a/src/_api/_mocks/index.ts b/src/_api/_mocksREST/index.ts similarity index 50% rename from src/_api/_mocks/index.ts rename to src/_api/_mocksREST/index.ts index fc35592..9181f4f 100644 --- a/src/_api/_mocks/index.ts +++ b/src/_api/_mocksREST/index.ts @@ -1,11 +1,12 @@ import { setupWorker } from 'msw' import { setupServer } from 'msw/node' import usersMocks from './usersMocks' +import subscriptionPlansMocks from './subscriptionPlansMocks' const start = process.env.NODE_ENV !== 'test' - ? setupWorker(...usersMocks).start - : setupServer(...usersMocks) + ? setupWorker(...usersMocks, ...subscriptionPlansMocks).start + : setupServer(...usersMocks, ...subscriptionPlansMocks) export default { init: start, diff --git a/src/_api/_mocks/organizationsMocks.ts b/src/_api/_mocksREST/organizationsMocks.ts similarity index 97% rename from src/_api/_mocks/organizationsMocks.ts rename to src/_api/_mocksREST/organizationsMocks.ts index d8bfb12..e793ffa 100644 --- a/src/_api/_mocks/organizationsMocks.ts +++ b/src/_api/_mocksREST/organizationsMocks.ts @@ -2,7 +2,7 @@ import _ from 'lodash' import { rest } from 'msw' import config from '_config' -import organizationsData from './_data/organizationsData' +import organizationsData from '../_data/organizationsData' const apiUrl = config.api.url diff --git a/src/_api/_mocksREST/subscriptionPaymentsMocks.ts b/src/_api/_mocksREST/subscriptionPaymentsMocks.ts new file mode 100644 index 0000000..f4c4385 --- /dev/null +++ b/src/_api/_mocksREST/subscriptionPaymentsMocks.ts @@ -0,0 +1,35 @@ +import _ from 'lodash' +import { rest } from 'msw' + +import config from '_config' + +const apiUrl = config.api.url +const subscriptionPaymentsData = { list: [] } + +const userMocks = [ + rest.get(`${apiUrl}/subscriptionPayments`, async (req, res, ctx) => { + let limit = parseInt(req.params.get('limit') || '0') + let offset = parseInt(req.params.get('offset') || '10') + let order = JSON.parse(req.params.get('order') || '{}') + + const subscriptionPayments = order + ? _.orderBy(subscriptionPaymentsData.list, [order.orderBy], [order.order]) + : subscriptionPaymentsData.list + + const result = { + subscriptionPayments: subscriptionPayments.slice(offset, offset + limit), + count: subscriptionPayments.length, + } + + return res( + // Set custom status + ctx.status(200), + // Delay the response + ctx.delay(500), + // send JSON response body + ctx.json(result), + ) + }), +] + +export default userMocks diff --git a/src/_api/_mocks/plansMocks.ts b/src/_api/_mocksREST/subscriptionPlansMocks.ts similarity index 96% rename from src/_api/_mocks/plansMocks.ts rename to src/_api/_mocksREST/subscriptionPlansMocks.ts index b5f00a4..417d797 100644 --- a/src/_api/_mocks/plansMocks.ts +++ b/src/_api/_mocksREST/subscriptionPlansMocks.ts @@ -2,7 +2,7 @@ import _ from 'lodash' import { rest } from 'msw' import config from '_config' -import subscriptionPlansData from './_data/subscriptionPlansData' +import subscriptionPlansData from '../_data/subscriptionPlansData' const apiUrl = config.api.url diff --git a/src/_api/_mocks/usersMocks.ts b/src/_api/_mocksREST/usersMocks.ts similarity index 98% rename from src/_api/_mocks/usersMocks.ts rename to src/_api/_mocksREST/usersMocks.ts index 84ebb8a..3ff0bc2 100644 --- a/src/_api/_mocks/usersMocks.ts +++ b/src/_api/_mocksREST/usersMocks.ts @@ -2,7 +2,7 @@ import _ from 'lodash' import { rest } from 'msw' import config from '_config' -import usersData from './_data/usersData' +import usersData from '../_data/usersData' const apiUrl = config.api.url diff --git a/src/_api/_types/Organization.ts b/src/_api/_types/Organization.ts index 86d7081..cde5dae 100644 --- a/src/_api/_types/Organization.ts +++ b/src/_api/_types/Organization.ts @@ -1,13 +1,9 @@ import Entity, { EntityId } from './Entity' import User from './User' +import { SubscriptionPlanId } from './SubscriptionPlan' import UserToOrganization from './UserToOrganization' export type OrganizationId = EntityId -export interface OrganizationPlan { - id: number | string - name: string - features?: {} -} export interface OrganizationSubmissionData { name: string @@ -16,7 +12,7 @@ export interface OrganizationSubmissionData { export default interface Organization extends OrganizationSubmissionData, Entity { id: OrganizationId - plan: OrganizationPlan users?: User[] organizationUsers?: UserToOrganization[] + subscriptionPlanId: SubscriptionPlanId } diff --git a/src/_api/_types/Subscription.ts b/src/_api/_types/Subscription.ts new file mode 100644 index 0000000..ab4e22c --- /dev/null +++ b/src/_api/_types/Subscription.ts @@ -0,0 +1,17 @@ +import Entity, { EntityId } from './Entity' +import { OrganizationId } from './Organization' +import { SubscriptionPlanId } from './SubscriptionPlan' + +export type SubscriptionId = EntityId + +export interface SubscriptionPlanSubmissionData { + name?: string + price: number + status?: 'active' | 'disabled' +} + +export default interface Subscription extends Entity { + id: SubscriptionId + organizationId: OrganizationId + subscriptionPlanId: SubscriptionPlanId +} diff --git a/src/_api/_types/SubscriptionPayment.ts b/src/_api/_types/SubscriptionPayment.ts new file mode 100644 index 0000000..815a59b --- /dev/null +++ b/src/_api/_types/SubscriptionPayment.ts @@ -0,0 +1,14 @@ +import Entity, { EntityId } from './Entity' +import { SubscriptionPlanId } from './SubscriptionPlan' +import { OrganizationId } from './Organization' + +export type SubscriptionPaymentId = EntityId + +export default interface SubscriptionPayment extends Entity { + id: SubscriptionPaymentId + name?: string + amount: number + status?: 'processed' | 'rejected' + subscriptionPlanId: SubscriptionPlanId + organizationId: OrganizationId +} diff --git a/src/_api/clientGraphQL.ts b/src/_api/clientGraphQL.ts new file mode 100644 index 0000000..515e79b --- /dev/null +++ b/src/_api/clientGraphQL.ts @@ -0,0 +1,48 @@ +import { ApolloClient, HttpLink, InMemoryCache, gql } from '@apollo/client' + +import config from '_config' + +const typeDefs = gql` + type Valod { + isHere: Boolean! + } + extend type Query { + greeting: String! + valod: Valod! + numberSix: Int! + numberSeven: Int! + } +` + +const client = new ApolloClient({ + // uri: `${config.api.url}/graphql`, + link: new HttpLink({ + uri: `${config.api.url}/graphql`, + + // Use explicit `window.fetch` so tha outgoing requests + // are captured and deferred until the Service Worker is ready. + fetch: (...args) => fetch(...args), + }), + cache: new InMemoryCache(), + typeDefs, + resolvers: { + Query: { + greeting() { + return 'hello from TutorialsPoint !!!' + }, + valod() { + return { + isHere: true, + } + }, + numberSix() { + return 6 + }, + numberSeven() { + return 7 + }, + }, + }, +}) + +export default client diff --git a/src/_api/index.ts b/src/_api/index.ts index 5d72dea..d4fd0be 100644 --- a/src/_api/index.ts +++ b/src/_api/index.ts @@ -3,20 +3,25 @@ import organizations from './organizations' import users from './users' import config from '_config' -let apiMocks: any +// let apiMocksREST: any +let apiMocksGraphQL: any -if (config.api.useMocks || process.env.NODE_ENV === 'test') { - apiMocks = require('./_mocks/') +const useMocks = config.api.useMocks || process.env.NODE_ENV === 'test' + +if (useMocks) { + // apiMocksREST = require('./_mocksREST/') + apiMocksGraphQL = require('./_mocksGraphQL/') } const init = async () => { - if (apiMocks) { + if (useMocks) { // Remove all SW caches const cachesNames = await caches.keys() await Promise.all(cachesNames.map((name) => caches.delete(name))) - await apiMocks.default.init() + // await apiMocksREST.default.init() + await apiMocksGraphQL.default.init() } return instance diff --git a/src/_common/TheSidebar/SidebarNav/SidebarNav.tsx b/src/_common/TheSidebar/SidebarNav/SidebarNav.tsx index 1872c97..59ffb14 100644 --- a/src/_common/TheSidebar/SidebarNav/SidebarNav.tsx +++ b/src/_common/TheSidebar/SidebarNav/SidebarNav.tsx @@ -28,8 +28,7 @@ const itemsMisc = [ }, { name: 'Discuss', - link: - 'https://github.com/modularcode/modular-admin-tailwind-react/discussions', + link: 'https://github.com/modularcode/modular-admin-tailwind-react/discussions', }, { name: 'View on GitHub', @@ -83,17 +82,15 @@ const SidebarNav = () => {