From 3b0f57c2e8129879fb814fdfebb701d7f16eebce Mon Sep 17 00:00:00 2001 From: I Gusti Ngurah Satya Wikananda <33148052+satyawikananda@users.noreply.github.com> Date: Fri, 14 May 2021 10:01:42 +0800 Subject: [PATCH] feat(API): Add search title API feature (#7) * feat(API): Add search title API feature * docs: Update docs --- README-ID.md | 2 +- README.md | 6 +- api/controllers/newshandler/AntaraNews.ts | 26 +- api/controllers/newshandler/BbcNews.ts | 39 +- api/controllers/newshandler/CnbcNews.ts | 44 +- api/controllers/newshandler/CnnNews.ts | 47 +- api/controllers/newshandler/KumparanNews.ts | 27 +- api/controllers/newshandler/Liputan6News.ts | 5 + api/controllers/newshandler/OkezoneNews.ts | 43 +- api/controllers/newshandler/RepublikaNews.ts | 45 +- api/controllers/newshandler/TempoNews.ts | 43 +- api/controllers/newshandler/TribunNews.ts | 42 +- package.json | 1 + pnpm-lock.yaml | 1220 ++++++++---------- utils/useSearch.ts | 12 + 15 files changed, 921 insertions(+), 681 deletions(-) create mode 100644 utils/useSearch.ts diff --git a/README-ID.md b/README-ID.md index aa54407..fd7e57d 100644 --- a/README-ID.md +++ b/README-ID.md @@ -42,7 +42,7 @@ Berita Indo API adalah sebuah API yang menampilkan banyak berita di Indonesia se - [x] Berita Antara - [x] Berita Kumparan - [x] Berita Okezone - - [x] Berita Liputan 6 + - [x] ~~Berita Liputan 6~~ (API berita ini mungkin tidak tersedia lagi, dikarenakan ada isu RSS dari Liputan6) - [x] Berita BBC - [x] Berita Tribun - Tingkatkan API diff --git a/README.md b/README.md index 917c4b5..f9d20b0 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ Berita Indo API (or in English is Indonesian News API) is an API to display many - `/v1/tribun-news`: Get all news data of Tribun News - `/v1/tribun-news/:type` : Get specific news data by type news of Tribun News +> Each API Endpoint have a query paramaters named 'title', and this query parameters will be usefull if you want to search the API data by the title. + ## To-do List - News @@ -44,11 +46,11 @@ Berita Indo API (or in English is Indonesian News API) is an API to display many - [x] Antara News - [x] Kumparan News - [x] Okezone News - - [x] Liputan 6 News + - [x] ~~Liputan 6 News~~ (This RSS feed maybe isn't available again) - [x] BBC News - [x] Tribun News - Improve API - - [ ] Search data news + - [x] Search data news - [ ] Paginate data ## Installation diff --git a/api/controllers/newshandler/AntaraNews.ts b/api/controllers/newshandler/AntaraNews.ts index c4256a0..81166b8 100644 --- a/api/controllers/newshandler/AntaraNews.ts +++ b/api/controllers/newshandler/AntaraNews.ts @@ -2,17 +2,21 @@ import { Request, Response } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_ANTARA_NEWS } from '../../../const' import { TypeAntara, DataResponse } from '../../../types/common' - +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeAntara } +interface Title { + title: string +} + class AntaraNews { static async getNews(req: Request, res: Response) { try { const { type }: Partial = req.params - let url = `${RSS_ANTARA_NEWS}${type}` - + const { title }: Partial = req.query + const url = `${RSS_ANTARA_NEWS}${type}` const result = await parserRss(url) const data = result.items.map((items) => { const image = items.content.match(/\<img.+src\=(?:\"|\')(.+?)(?:\"|\')(?:.+?)\>/)[1] @@ -24,6 +28,22 @@ class AntaraNews { delete items.content return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in Antara News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/BbcNews.ts b/api/controllers/newshandler/BbcNews.ts index 187f41b..c7108c6 100644 --- a/api/controllers/newshandler/BbcNews.ts +++ b/api/controllers/newshandler/BbcNews.ts @@ -2,15 +2,21 @@ import { Request, Response } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_BBC } from '../../../const' import { TypeBbc, DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeBbc } +interface Title { + title: string +} + class BbcNews { static async getNews(req: Request, res: Response) { try { const { type }: Partial<Params> = req.params + const { title }: Partial<Title> = req.query const url = RSS_BBC.replace('{type}', type) const result = await parserRss(url, { item: ['description'] @@ -22,6 +28,21 @@ class BbcNews { delete items.guid return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in BBC News with title search: ${title}`, + total: search.length, + data: dataSearch + } + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -37,8 +58,9 @@ class BbcNews { } } - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { + const { title }: Partial<Title> = req.query const url = RSS_BBC.replace('{type}', '') const result = await parserRss(url, { item: ['description'] @@ -50,6 +72,21 @@ class BbcNews { delete items.guid return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in BBC News with title: ${title}`, + total: search.length, + data: dataSearch + } + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/CnbcNews.ts b/api/controllers/newshandler/CnbcNews.ts index 9d6e278..fd9ac3a 100644 --- a/api/controllers/newshandler/CnbcNews.ts +++ b/api/controllers/newshandler/CnbcNews.ts @@ -3,17 +3,22 @@ import { parserRss } from '../../../utils/parser' import { replaceQueryParams } from '../../../utils/replaceQueryParams' import { RSS_CNBC_NEWS } from '../../../const' import { TypeCnbc, DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeCnbc } +interface Title { + title: string +} + class CnbcNews { static async getNews(req: Request, res: Response) { try { const { type }: Partial<Params> = req.params + const { title }: Partial<Title> = req.query let url = RSS_CNBC_NEWS.replace('{type}', type) - const result = await parserRss(url) const data = result.items.map((items) => { const image = replaceQueryParams(items.enclosure.url, 'q', '100') @@ -29,6 +34,21 @@ class CnbcNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in CNBC News with title search: ${title}`, + total: search.length, + data: dataSearch + } + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -44,10 +64,10 @@ class CnbcNews { } } - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { - let url = RSS_CNBC_NEWS.replace('/{type}', '') - + const url = RSS_CNBC_NEWS.replace('/{type}', '') + const { title }: Partial<Title> = req.query const result = await parserRss(url) const data = result.items.map((items) => { const image = replaceQueryParams(items.enclosure.url, 'q', '100') @@ -63,6 +83,22 @@ class CnbcNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in CNBC News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/CnnNews.ts b/api/controllers/newshandler/CnnNews.ts index 18eeba6..c7e67bc 100644 --- a/api/controllers/newshandler/CnnNews.ts +++ b/api/controllers/newshandler/CnnNews.ts @@ -3,16 +3,21 @@ import { parserRss } from '../../../utils/parser' import { replaceQueryParams } from '../../../utils/replaceQueryParams' import { RSS_CNN_NEWS } from '../../../const' import { TypeCnn, DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeCnn } + +interface Title { + title: string +} class CnnNews { static async getNews(req: Request, res: Response) { try { const { type }: Partial<Params> = req.params - let url = RSS_CNN_NEWS.replace('{type}', type) - + const { title }: Partial<Title> = req.query + const url = RSS_CNN_NEWS.replace('{type}', type) const result = await parserRss(url) const data = result.items.map((items) => { const image = replaceQueryParams(items.enclosure.url, 'q', '100') @@ -28,6 +33,22 @@ class CnnNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in CNN News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -43,10 +64,10 @@ class CnnNews { } } - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { - let url = RSS_CNN_NEWS.replace('/{type}', '') - + const { title }: Partial<Title> = req.query + const url = RSS_CNN_NEWS.replace('/{type}', '') const result = await parserRss(url) const data = result.items.map((items) => { const image = replaceQueryParams(items.enclosure.url, 'q', '100') @@ -62,6 +83,22 @@ class CnnNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in CNN News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/KumparanNews.ts b/api/controllers/newshandler/KumparanNews.ts index 5159531..46a9522 100644 --- a/api/controllers/newshandler/KumparanNews.ts +++ b/api/controllers/newshandler/KumparanNews.ts @@ -1,12 +1,17 @@ -import { Response } from 'express' +import { Response, Request } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_KUMPARAN_NEWS } from '../../../const' import { DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' +interface Title { + title: string +} class KumparanNews { - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { - let url = RSS_KUMPARAN_NEWS + const { title }: Partial<Title> = req.query + const url = RSS_KUMPARAN_NEWS const result = await parserRss(url) const data = result.items.map((items) => { items.description = items.contentSnippet @@ -27,6 +32,22 @@ class KumparanNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in Kumaparan News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/Liputan6News.ts b/api/controllers/newshandler/Liputan6News.ts index d90373c..2547add 100644 --- a/api/controllers/newshandler/Liputan6News.ts +++ b/api/controllers/newshandler/Liputan6News.ts @@ -1,3 +1,8 @@ +/* + This RSS feed maybe isn't available again + and this API will be unused +*/ + import { Response } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_LIPUTAN6 } from '../../../const' diff --git a/api/controllers/newshandler/OkezoneNews.ts b/api/controllers/newshandler/OkezoneNews.ts index 936b199..e7db8b3 100644 --- a/api/controllers/newshandler/OkezoneNews.ts +++ b/api/controllers/newshandler/OkezoneNews.ts @@ -3,14 +3,20 @@ import { replaceQueryParams } from '../../../utils/replaceQueryParams' import { parserRss } from '../../../utils/parser' import { RSS_OKEZONE } from '../../../const' import { TypeOkezone, DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeOkezone } +interface Title { + title: string +} + class OkezoneNews { - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { + const { title }: Partial<Title> = req.query const url: string = RSS_OKEZONE.news const result = await parserRss(url, { item: ['imglink'] @@ -27,6 +33,22 @@ class OkezoneNews { delete items.imglink return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in Okezone News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -44,7 +66,8 @@ class OkezoneNews { static async getNews(req: Request, res: Response) { try { - let { type }: Partial<Params> = req.params + const { type }: Partial<Params> = req.params + const { title }: Partial<Title> = req.query let url: string switch (type) { case 'bola': url = RSS_OKEZONE.bola @@ -77,6 +100,22 @@ class OkezoneNews { delete items.imglink return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in Okezone News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/RepublikaNews.ts b/api/controllers/newshandler/RepublikaNews.ts index 74e372a..49730a2 100644 --- a/api/controllers/newshandler/RepublikaNews.ts +++ b/api/controllers/newshandler/RepublikaNews.ts @@ -2,16 +2,22 @@ import { Request, Response } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_REPUBLIKA_NEWS } from '../../../const' import { TypeRepublika, DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeRepublika } +interface Title { + title: string +} + class RepublikaNews { static async getNews(req: Request, res: Response) { try { const { type }: Partial<Params> = req.params - let url = `${RSS_REPUBLIKA_NEWS}${type}` + const { title }: Partial<Title> = req.query + const url = `${RSS_REPUBLIKA_NEWS}${type}` const result = await parserRss(url, { item: ['media:content'] }) @@ -32,6 +38,22 @@ class RepublikaNews { delete items['content:encodedSnippet'] return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in Republika News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -47,9 +69,10 @@ class RepublikaNews { } } - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { - let url = RSS_REPUBLIKA_NEWS + const { title }: Partial<Title> = req.query + const url = RSS_REPUBLIKA_NEWS const result = await parserRss(url, { item: ['media:content'] }) @@ -70,6 +93,22 @@ class RepublikaNews { delete items['content:encodedSnippet'] return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in Republika News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/TempoNews.ts b/api/controllers/newshandler/TempoNews.ts index 9131e91..e150585 100644 --- a/api/controllers/newshandler/TempoNews.ts +++ b/api/controllers/newshandler/TempoNews.ts @@ -2,21 +2,43 @@ import { Request, Response } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_TEMPO_NEWS } from '../../../const' import { TypeTempo, DataResponse } from '../../../types/common' +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeTempo } +interface Title { + title: string +} + class TempoNews { static async getNews(req: Request, res: Response) { try { const { type }: Partial<Params> = req.params + const { title }: Partial<Title> = req.query let url = `${RSS_TEMPO_NEWS}${type}` const result = await parserRss(url) const data = result.items.map((items) => { delete items.contentSnippet return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in Tempo News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -31,15 +53,32 @@ class TempoNews { }) } } - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try { - let url = RSS_TEMPO_NEWS + const url = RSS_TEMPO_NEWS + const { title }: Partial<Title> = req.query const result = await parserRss(url) const data = result.items.map((items) => { delete items.contentSnippet delete items.pubDate return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in Tempo News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/api/controllers/newshandler/TribunNews.ts b/api/controllers/newshandler/TribunNews.ts index 51e7b94..8288b74 100644 --- a/api/controllers/newshandler/TribunNews.ts +++ b/api/controllers/newshandler/TribunNews.ts @@ -2,15 +2,20 @@ import { Request, Response } from 'express' import { parserRss } from '../../../utils/parser' import { RSS_TRIBUN } from '../../../const' import { TypeTribun, DataResponse } from '../../../types/common' - +import { useSearch } from '../../../utils/useSearch' interface Params { type?: TypeTribun } +interface Title { + title: string +} + class TribunNews { static async getNews(req: Request, res: Response){ try{ const { type }: Partial<Params> = req.params + const { title }: Partial<Title> = req.query const url = `${RSS_TRIBUN}${type}` const result = await parserRss(url) const data = result.items.map((items) => { @@ -21,6 +26,22 @@ class TribunNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of type ${type} news in Tribun News with title search: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", @@ -36,8 +57,9 @@ class TribunNews { } } - static async getAllNews(_, res: Response) { + static async getAllNews(req: Request, res: Response) { try{ + const { title }: Partial<Title> = req.query const url = RSS_TRIBUN const result = await parserRss(url) const data = result.items.map((items) => { @@ -48,6 +70,22 @@ class TribunNews { delete items.enclosure return items }) + if(title !== undefined) { + const search = useSearch(data, title) + let dataSearch:any = [] + search.map((items) => { + dataSearch.push(items.item) + }) + const dataResponse: DataResponse = { + code: 200, + status: "OK", + messages: `Result of all news in Tribun News with title: ${title}`, + total: search.length, + data: dataSearch + } + + return res.status(200).send(dataResponse) + } const dataResponse: DataResponse = { code: 200, status: "OK", diff --git a/package.json b/package.json index 2a1ca13..018a3ae 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@types/express": "^4.17.11", "@types/node": "^14.14.22", "@vercel/node": "^1.9.0", + "fuse.js": "^6.4.6", "ts-node": "^9.1.1", "typescript": "^4.1.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7089b2..d4a3770 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,19 +1,41 @@ +lockfileVersion: 5.3 + +specifiers: + '@types/cors': ^2.8.9 + '@types/express': ^4.17.11 + '@types/node': ^14.14.22 + '@vercel/node': ^1.9.0 + apollo-server-express: ^2.23.0 + cors: ^2.8.5 + express: ^4.17.1 + fuse.js: ^6.4.6 + graphql: ^15.5.0 + rss-parser: ^3.10.0 + ts-node: ^9.1.1 + typescript: ^4.1.3 + dependencies: apollo-server-express: 2.24.0_graphql@15.5.0 cors: 2.8.5 express: 4.17.1 graphql: 15.5.0 rss-parser: 3.12.0 + devDependencies: '@types/cors': 2.8.10 '@types/express': 4.17.11 '@types/node': 14.14.44 '@vercel/node': 1.10.0 + fuse.js: 6.4.6 ts-node: 9.1.1_typescript@4.2.4 typescript: 4.2.4 -lockfileVersion: 5.2 + packages: + /@apollo/protobufjs/1.2.2: + resolution: {integrity: sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==} + hasBin: true + requiresBuild: true dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -29,26 +51,25 @@ packages: '@types/node': 10.17.59 long: 4.0.0 dev: false - hasBin: true - requiresBuild: true - resolution: - integrity: sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== + /@apollographql/apollo-tools/0.5.0: + resolution: {integrity: sha512-7IOZHVaKjBq44StXFJEITl4rxgZCsZFSWogAvIErKR9DYV20rt9bJ2mY5lCn+zghfGrweykjLb9g4TDxLg750w==} + engines: {node: '>=8', npm: '>=6'} dependencies: apollo-env: 0.10.0 dev: false - engines: - node: '>=8' - npm: '>=6' - resolution: - integrity: sha512-7IOZHVaKjBq44StXFJEITl4rxgZCsZFSWogAvIErKR9DYV20rt9bJ2mY5lCn+zghfGrweykjLb9g4TDxLg750w== + /@apollographql/graphql-playground-html/1.6.27: + resolution: {integrity: sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==} dependencies: xss: 1.0.9 dev: false - resolution: - integrity: sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw== + /@apollographql/graphql-upload-8-fork/8.1.3_graphql@15.5.0: + resolution: {integrity: sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==} + engines: {node: '>=8.5'} + peerDependencies: + graphql: 0.13.1 - 15 dependencies: '@types/express': 4.17.11 '@types/fs-capacitor': 2.0.0 @@ -59,132 +80,128 @@ packages: http-errors: 1.8.0 object-path: 0.11.5 dev: false - engines: - node: '>=8.5' - peerDependencies: - graphql: 0.13.1 - 15 - resolution: - integrity: sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g== + /@josephg/resolvable/1.0.1: + resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} dev: false - resolution: - integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== + /@protobufjs/aspromise/1.1.2: + resolution: {integrity: sha1-m4sMxmPWaafY9vXQiToU00jzD78=} dev: false - resolution: - integrity: sha1-m4sMxmPWaafY9vXQiToU00jzD78= + /@protobufjs/base64/1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} dev: false - resolution: - integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + /@protobufjs/codegen/2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} dev: false - resolution: - integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + /@protobufjs/eventemitter/1.1.0: + resolution: {integrity: sha1-NVy8mLr61ZePntCV85diHx0Ga3A=} dev: false - resolution: - integrity: sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + /@protobufjs/fetch/1.1.0: + resolution: {integrity: sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=} dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/inquire': 1.1.0 dev: false - resolution: - integrity: sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + /@protobufjs/float/1.0.2: + resolution: {integrity: sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=} dev: false - resolution: - integrity: sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + /@protobufjs/inquire/1.1.0: + resolution: {integrity: sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=} dev: false - resolution: - integrity: sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + /@protobufjs/path/1.1.2: + resolution: {integrity: sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=} dev: false - resolution: - integrity: sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + /@protobufjs/pool/1.1.0: + resolution: {integrity: sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=} dev: false - resolution: - integrity: sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + /@protobufjs/utf8/1.1.0: + resolution: {integrity: sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=} dev: false - resolution: - integrity: sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + /@types/accepts/1.3.5: + resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} dependencies: '@types/node': 14.14.44 dev: false - resolution: - integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + /@types/body-parser/1.19.0: + resolution: {integrity: sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==} dependencies: '@types/connect': 3.4.34 '@types/node': 14.14.44 - resolution: - integrity: sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + /@types/connect/3.4.34: + resolution: {integrity: sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==} dependencies: '@types/node': 14.14.44 - resolution: - integrity: sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== + /@types/content-disposition/0.5.3: + resolution: {integrity: sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==} dev: false - resolution: - integrity: sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== + /@types/cookies/0.7.6: + resolution: {integrity: sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==} dependencies: '@types/connect': 3.4.34 '@types/express': 4.17.11 '@types/keygrip': 1.0.2 '@types/node': 14.14.44 dev: false - resolution: - integrity: sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w== + /@types/cors/2.8.10: - resolution: - integrity: sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== + resolution: {integrity: sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==} + /@types/express-serve-static-core/4.17.19: + resolution: {integrity: sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==} dependencies: '@types/node': 14.14.44 '@types/qs': 6.9.6 '@types/range-parser': 1.2.3 - resolution: - integrity: sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== + /@types/express/4.17.11: + resolution: {integrity: sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==} dependencies: '@types/body-parser': 1.19.0 '@types/express-serve-static-core': 4.17.19 '@types/qs': 6.9.6 '@types/serve-static': 1.13.9 - resolution: - integrity: sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== + /@types/fs-capacitor/2.0.0: + resolution: {integrity: sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==} dependencies: '@types/node': 14.14.44 dev: false - resolution: - integrity: sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== + /@types/http-assert/1.5.1: + resolution: {integrity: sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==} dev: false - resolution: - integrity: sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== + /@types/http-errors/1.8.0: + resolution: {integrity: sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==} dev: false - resolution: - integrity: sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== + /@types/keygrip/1.0.2: + resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==} dev: false - resolution: - integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + /@types/koa-compose/3.2.5: + resolution: {integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==} dependencies: '@types/koa': 2.13.1 dev: false - resolution: - integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + /@types/koa/2.13.1: + resolution: {integrity: sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q==} dependencies: '@types/accepts': 1.3.5 '@types/content-disposition': 0.5.3 @@ -195,116 +212,113 @@ packages: '@types/koa-compose': 3.2.5 '@types/node': 14.14.44 dev: false - resolution: - integrity: sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q== + /@types/long/4.0.1: + resolution: {integrity: sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==} dev: false - resolution: - integrity: sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + /@types/mime/1.3.2: - resolution: - integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} + /@types/node-fetch/2.5.10: + resolution: {integrity: sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==} dependencies: '@types/node': 14.14.44 form-data: 3.0.1 dev: false - resolution: - integrity: sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ== + /@types/node/10.17.59: + resolution: {integrity: sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==} dev: false - resolution: - integrity: sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg== + /@types/node/14.14.44: - resolution: - integrity: sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA== + resolution: {integrity: sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==} + /@types/qs/6.9.6: - resolution: - integrity: sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== + resolution: {integrity: sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==} + /@types/range-parser/1.2.3: - resolution: - integrity: sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + resolution: {integrity: sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==} + /@types/serve-static/1.13.9: + resolution: {integrity: sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==} dependencies: '@types/mime': 1.3.2 '@types/node': 14.14.44 - resolution: - integrity: sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== + /@types/ws/7.4.2: + resolution: {integrity: sha512-PbeN0Eydl7LQl4OIav29YmkO2LxbVuz3nZD/kb19lOS+wLgIkRbWMNmU/QQR7ABpOJ7D7xDOU8co7iohObewrw==} dependencies: '@types/node': 14.14.44 dev: false - resolution: - integrity: sha512-PbeN0Eydl7LQl4OIav29YmkO2LxbVuz3nZD/kb19lOS+wLgIkRbWMNmU/QQR7ABpOJ7D7xDOU8co7iohObewrw== + /@vercel/node/1.10.0: + resolution: {integrity: sha512-11FIFoF4v9m/jAOSamwBDMsS2yIDa0fSnVhR70bbcUdBcu3BGGMCpg+jpA6rvkQSOa/WbTRvvu9hFh5bOsZxrw==} dependencies: '@types/node': 14.14.44 ts-node: 8.9.1_typescript@3.9.3 typescript: 3.9.3 dev: true - resolution: - integrity: sha512-11FIFoF4v9m/jAOSamwBDMsS2yIDa0fSnVhR70bbcUdBcu3BGGMCpg+jpA6rvkQSOa/WbTRvvu9hFh5bOsZxrw== + /@wry/equality/0.1.11: + resolution: {integrity: sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==} dependencies: tslib: 1.14.1 dev: false - resolution: - integrity: sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + /accepts/1.3.7: + resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.30 negotiator: 0.6.2 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + /apollo-cache-control/0.13.0_graphql@15.5.0: + resolution: {integrity: sha512-ImUXwVc/8K9QA3mQiKbKw8bOS4lMNL4DoP4hldIx+gwna8dgh3gBChgxW5guMOhcvH/55ximS7ZNWUglFmQY4Q==} + engines: {node: '>=6.0'} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: apollo-server-env: 3.1.0 apollo-server-plugin-base: 0.12.0_graphql@15.5.0 graphql: 15.5.0 dev: false - engines: - node: '>=6.0' - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-ImUXwVc/8K9QA3mQiKbKw8bOS4lMNL4DoP4hldIx+gwna8dgh3gBChgxW5guMOhcvH/55ximS7ZNWUglFmQY4Q== + /apollo-datasource/0.9.0: + resolution: {integrity: sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==} + engines: {node: '>=6'} dependencies: apollo-server-caching: 0.7.0 apollo-server-env: 3.1.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA== + /apollo-env/0.10.0: + resolution: {integrity: sha512-7Geot+eyOl4jzPi9beiszeDmEEVZOVT11LSlkQluF5eaCNaIvld+xklZxITZGI/Wr+PQX380YJgQt1ndR2GtOg==} + engines: {node: '>=8'} dependencies: '@types/node-fetch': 2.5.10 core-js: 3.12.1 node-fetch: 2.6.1 sha.js: 2.4.11 dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-7Geot+eyOl4jzPi9beiszeDmEEVZOVT11LSlkQluF5eaCNaIvld+xklZxITZGI/Wr+PQX380YJgQt1ndR2GtOg== + /apollo-graphql/0.9.2_graphql@15.5.0: + resolution: {integrity: sha512-+c/vqC2LPq3e5kO7MfBxDDiljzLog/THZr9Pd46HVaKAhHUxFL0rJEbT17VhjdOoZGWFWLYG7x9hiN6EQD1xZQ==} + engines: {node: '>=6'} + peerDependencies: + graphql: ^14.2.1 || ^15.0.0 dependencies: core-js-pure: 3.12.1 graphql: 15.5.0 lodash.sortby: 4.7.0 sha.js: 2.4.11 dev: false - engines: - node: '>=6' - peerDependencies: - graphql: ^14.2.1 || ^15.0.0 - resolution: - integrity: sha512-+c/vqC2LPq3e5kO7MfBxDDiljzLog/THZr9Pd46HVaKAhHUxFL0rJEbT17VhjdOoZGWFWLYG7x9hiN6EQD1xZQ== + /apollo-link/1.2.14_graphql@15.5.0: + resolution: {integrity: sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==} + peerDependencies: + graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: apollo-utilities: 1.3.4_graphql@15.5.0 graphql: 15.5.0 @@ -312,25 +326,25 @@ packages: tslib: 1.14.1 zen-observable-ts: 0.8.21 dev: false - peerDependencies: - graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + /apollo-reporting-protobuf/0.7.0: + resolution: {integrity: sha512-PC+zDqPPJcseemqmvUEqFiDi45pz6UaPWt6czgmrrbcQ+9VWp6IEkm08V5xBKk7V1WGUw19YwiJ7kqXpcgVNyw==} dependencies: '@apollo/protobufjs': 1.2.2 dev: false - resolution: - integrity: sha512-PC+zDqPPJcseemqmvUEqFiDi45pz6UaPWt6czgmrrbcQ+9VWp6IEkm08V5xBKk7V1WGUw19YwiJ7kqXpcgVNyw== + /apollo-server-caching/0.7.0: + resolution: {integrity: sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==} + engines: {node: '>=6'} dependencies: lru-cache: 6.0.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw== + /apollo-server-core/2.24.0_graphql@15.5.0: + resolution: {integrity: sha512-uW7gykPzhin9fLgSvciN8tX7098mHnUM79W3+fWfK5J415JidIqW9O+JhYmEPo6BCgosu0cKSdYe7NB+FP4lFQ==} + engines: {node: '>=6'} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: '@apollographql/apollo-tools': 0.5.0 '@apollographql/graphql-playground-html': 1.6.27 @@ -360,32 +374,29 @@ packages: uuid: 8.3.2 ws: 6.2.1 dev: false - engines: - node: '>=6' - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-uW7gykPzhin9fLgSvciN8tX7098mHnUM79W3+fWfK5J415JidIqW9O+JhYmEPo6BCgosu0cKSdYe7NB+FP4lFQ== + /apollo-server-env/3.1.0: + resolution: {integrity: sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==} + engines: {node: '>=6'} dependencies: node-fetch: 2.6.1 util.promisify: 1.1.1 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ== + /apollo-server-errors/2.5.0_graphql@15.5.0: + resolution: {integrity: sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==} + engines: {node: '>=6'} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: graphql: 15.5.0 dev: false - engines: - node: '>=6' + + /apollo-server-express/2.24.0_graphql@15.5.0: + resolution: {integrity: sha512-wVoD53azxqVZt/i4yAm6cDDCXpbzr0AJpzOdNXVFW/KivInWEMF5ekCc80uMOawPeu78U7Skoc20akyvZKc+YA==} + engines: {node: '>=6'} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA== - /apollo-server-express/2.24.0_graphql@15.5.0: dependencies: '@apollographql/graphql-playground-html': 1.6.27 '@types/accepts': 1.3.5 @@ -406,49 +417,44 @@ packages: subscriptions-transport-ws: 0.9.18_graphql@15.5.0 type-is: 1.6.18 dev: false - engines: - node: '>=6' + + /apollo-server-plugin-base/0.12.0_graphql@15.5.0: + resolution: {integrity: sha512-jnNIztYz34ImE7off0t9LwseGCR/J0H1wlbiBGvdXvQY+ZiMfVF2oF8KdSAPxG2vT6scvWP4GFS/FsZcOyP1Xw==} + engines: {node: '>=6'} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-wVoD53azxqVZt/i4yAm6cDDCXpbzr0AJpzOdNXVFW/KivInWEMF5ekCc80uMOawPeu78U7Skoc20akyvZKc+YA== - /apollo-server-plugin-base/0.12.0_graphql@15.5.0: dependencies: apollo-server-types: 0.8.0_graphql@15.5.0 graphql: 15.5.0 dev: false - engines: - node: '>=6' + + /apollo-server-types/0.8.0_graphql@15.5.0: + resolution: {integrity: sha512-adHJnHbRV2kWUY0VQY1M2KpSdGfm+4mX4w+2lROPExqOnkyTI7CGfpJCdEwYMKrIn3aH8HIcOH0SnpWRet6TNw==} + engines: {node: '>=6'} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-jnNIztYz34ImE7off0t9LwseGCR/J0H1wlbiBGvdXvQY+ZiMfVF2oF8KdSAPxG2vT6scvWP4GFS/FsZcOyP1Xw== - /apollo-server-types/0.8.0_graphql@15.5.0: dependencies: apollo-reporting-protobuf: 0.7.0 apollo-server-caching: 0.7.0 apollo-server-env: 3.1.0 graphql: 15.5.0 dev: false - engines: - node: '>=6' + + /apollo-tracing/0.14.0_graphql@15.5.0: + resolution: {integrity: sha512-KH4mOoicZ2CQkEYVuNP9avJth59LwNqku3fKZ4S0UYE1RfxzIoLLsEyuY8MuJEgNdtKKfkX5G5Kn5Rp4LCJ4RQ==} + engines: {node: '>=4.0'} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-adHJnHbRV2kWUY0VQY1M2KpSdGfm+4mX4w+2lROPExqOnkyTI7CGfpJCdEwYMKrIn3aH8HIcOH0SnpWRet6TNw== - /apollo-tracing/0.14.0_graphql@15.5.0: dependencies: apollo-server-env: 3.1.0 apollo-server-plugin-base: 0.12.0_graphql@15.5.0 graphql: 15.5.0 dev: false - engines: - node: '>=4.0' - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-KH4mOoicZ2CQkEYVuNP9avJth59LwNqku3fKZ4S0UYE1RfxzIoLLsEyuY8MuJEgNdtKKfkX5G5Kn5Rp4LCJ4RQ== + /apollo-utilities/1.3.4_graphql@15.5.0: + resolution: {integrity: sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: '@wry/equality': 0.1.11 fast-json-stable-stringify: 2.1.0 @@ -456,37 +462,36 @@ packages: ts-invariant: 0.4.4 tslib: 1.14.1 dev: false - peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true - resolution: - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + /array-flatten/1.1.1: + resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} dev: false - resolution: - integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + /async-limiter/1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} dev: false - resolution: - integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + /async-retry/1.3.1: + resolution: {integrity: sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==} dependencies: retry: 0.12.0 dev: false - resolution: - integrity: sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== + /asynckit/0.4.0: + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} dev: false - resolution: - integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /backo2/1.0.2: + resolution: {integrity: sha1-MasayLEpNjRj41s+u2n038+6eUc=} dev: false - resolution: - integrity: sha1-MasayLEpNjRj41s+u2n038+6eUc= + /body-parser/1.19.0: + resolution: {integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.0 content-type: 1.0.4 @@ -499,161 +504,147 @@ packages: raw-body: 2.4.0 type-is: 1.6.18 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + /buffer-from/1.1.1: + resolution: {integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==} dev: true - resolution: - integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + /busboy/0.3.1: + resolution: {integrity: sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==} + engines: {node: '>=4.5.0'} dependencies: dicer: 0.3.0 dev: false - engines: - node: '>=4.5.0' - resolution: - integrity: sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== + /bytes/3.1.0: + resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} + engines: {node: '>= 0.8'} dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.1 dev: false - resolution: - integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: false - resolution: - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + /content-disposition/0.5.3: + resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.1.2 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + /content-type/1.0.4: + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + /cookie-signature/1.0.6: + resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} dev: false - resolution: - integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + /cookie/0.4.0: + resolution: {integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + /core-js-pure/3.12.1: - dev: false + resolution: {integrity: sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ==} requiresBuild: true - resolution: - integrity: sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ== - /core-js/3.12.1: dev: false + + /core-js/3.12.1: + resolution: {integrity: sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==} requiresBuild: true - resolution: - integrity: sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw== + dev: false + /cors/2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} dependencies: object-assign: 4.1.1 vary: 1.1.2 dev: false - engines: - node: '>= 0.10' - resolution: - integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - resolution: - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + /cssfilter/0.0.10: + resolution: {integrity: sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=} dev: false - resolution: - integrity: sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: ms: 2.0.0 dev: false - resolution: - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /define-properties/1.1.3: + resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + engines: {node: '>= 0.4'} dependencies: object-keys: 1.1.1 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + /delayed-stream/1.0.0: + resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} + engines: {node: '>=0.4.0'} dev: false - engines: - node: '>=0.4.0' - resolution: - integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /depd/1.1.2: + resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + /deprecated-decorator/0.1.6: + resolution: {integrity: sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=} dev: false - resolution: - integrity: sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= + /destroy/1.0.4: + resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=} dev: false - resolution: - integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + /dicer/0.3.0: + resolution: {integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==} + engines: {node: '>=4.5.0'} dependencies: streamsearch: 0.1.2 dev: false - engines: - node: '>=4.5.0' - resolution: - integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} dev: true - engines: - node: '>=0.3.1' - resolution: - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + /ee-first/1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: false - resolution: - integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + /encodeurl/1.0.2: + resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} + engines: {node: '>= 0.8'} dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: false - resolution: - integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + /es-abstract/1.18.0: + resolution: {integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 @@ -672,35 +663,32 @@ packages: string.prototype.trimstart: 1.0.4 unbox-primitive: 1.0.1 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.3 is-date-object: 1.0.4 is-symbol: 1.0.4 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + /escape-html/1.0.3: + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} dev: false - resolution: - integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + /etag/1.8.1: + resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + /eventemitter3/3.1.2: + resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} dev: false - resolution: - integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + /express/4.17.1: + resolution: {integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.7 array-flatten: 1.1.1 @@ -733,15 +721,14 @@ packages: utils-merge: 1.0.1 vary: 1.1.2 dev: false - engines: - node: '>= 0.10.0' - resolution: - integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: false - resolution: - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + /finalhandler/1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -751,90 +738,89 @@ packages: statuses: 1.5.0 unpipe: 1.0.0 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + /for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.3 dev: false - resolution: - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.30 dev: false - engines: - node: '>= 6' - resolution: - integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + /forwarded/0.1.2: + resolution: {integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + /fresh/0.5.2: + resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + /fs-capacitor/2.0.4: + resolution: {integrity: sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==} + engines: {node: '>=8.5'} dev: false - engines: - node: '>=8.5' - resolution: - integrity: sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: false - resolution: - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + + /fuse.js/6.4.6: + resolution: {integrity: sha512-/gYxR/0VpXmWSfZOIPS3rWwU8SHgsRTwWuXhyb2O6s7aRuVtHtxCkR33bNYu3wyLyNx/Wpv0vU7FZy8Vj53VNw==} + engines: {node: '>=10'} + dev: true + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.2 dev: false - resolution: - integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + /graphql-extensions/0.14.0_graphql@15.5.0: + resolution: {integrity: sha512-DFtD8G+6rSj/Xhtb0IPh4A/sB/qcSEm9MTS221ESCx+axrsME92wGEsr7ihVjn1/tEEIy+9V5lUQOH/dHkCb0A==} + engines: {node: '>=6.0'} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: '@apollographql/apollo-tools': 0.5.0 apollo-server-env: 3.1.0 apollo-server-types: 0.8.0_graphql@15.5.0 graphql: 15.5.0 dev: false - engines: - node: '>=6.0' - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-DFtD8G+6rSj/Xhtb0IPh4A/sB/qcSEm9MTS221ESCx+axrsME92wGEsr7ihVjn1/tEEIy+9V5lUQOH/dHkCb0A== + /graphql-subscriptions/1.2.1_graphql@15.5.0: + resolution: {integrity: sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==} + peerDependencies: + graphql: ^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: graphql: 15.5.0 iterall: 1.3.0 dev: false - peerDependencies: - graphql: ^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== + /graphql-tag/2.12.4_graphql@15.5.0: + resolution: {integrity: sha512-VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww==} + 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 dependencies: graphql: 15.5.0 tslib: 2.2.0 dev: false - 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 - resolution: - integrity: sha512-VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww== + /graphql-tools/4.0.8_graphql@15.5.0: + resolution: {integrity: sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==} + peerDependencies: + graphql: ^0.13.0 || ^14.0.0 || ^15.0.0 dependencies: apollo-link: 1.2.14_graphql@15.5.0 apollo-utilities: 1.3.4_graphql@15.5.0 @@ -843,35 +829,31 @@ packages: iterall: 1.3.0 uuid: 3.4.0 dev: false - peerDependencies: - graphql: ^0.13.0 || ^14.0.0 || ^15.0.0 - resolution: - integrity: sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== + /graphql/15.5.0: + resolution: {integrity: sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==} + engines: {node: '>= 10.x'} dev: false - engines: - node: '>= 10.x' - resolution: - integrity: sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== + /has-bigints/1.0.1: + resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} dev: false - resolution: - integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + /has-symbols/1.0.2: + resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 dev: false - engines: - node: '>= 0.4.0' - resolution: - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + /http-errors/1.7.2: + resolution: {integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.3 @@ -879,11 +861,10 @@ packages: statuses: 1.5.0 toidentifier: 1.0.0 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + /http-errors/1.7.3: + resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.4 @@ -891,11 +872,10 @@ packages: statuses: 1.5.0 toidentifier: 1.0.0 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + /http-errors/1.8.0: + resolution: {integrity: sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.4 @@ -903,301 +883,269 @@ packages: statuses: 1.5.0 toidentifier: 1.0.0 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + /inherits/2.0.3: + resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} dev: false - resolution: - integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: false - resolution: - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /ipaddr.js/1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} dev: false - engines: - node: '>= 0.10' - resolution: - integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + /is-bigint/1.0.2: + resolution: {integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==} dev: false - resolution: - integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + /is-boolean-object/1.1.1: + resolution: {integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + /is-callable/1.2.3: + resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + /is-date-object/1.0.4: + resolution: {integrity: sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + /is-negative-zero/2.0.1: + resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + /is-number-object/1.0.5: + resolution: {integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + /is-regex/1.1.3: + resolution: {integrity: sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-symbols: 1.0.2 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + /is-string/1.0.6: + resolution: {integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.2 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + /iterall/1.3.0: + resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} dev: false - resolution: - integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + /lodash.sortby/4.7.0: + resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} dev: false - resolution: - integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + /loglevel/1.7.1: + resolution: {integrity: sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==} + engines: {node: '>= 0.6.0'} dev: false - engines: - node: '>= 0.6.0' - resolution: - integrity: sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + /long/4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: false - resolution: - integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: false - engines: - node: '>=10' - resolution: - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true - resolution: - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + /media-typer/0.3.0: + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + /merge-descriptors/1.0.1: + resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} dev: false - resolution: - integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + /methods/1.1.2: + resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + /mime-db/1.47.0: + resolution: {integrity: sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + /mime-types/2.1.30: + resolution: {integrity: sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.47.0 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + /mime/1.6.0: - dev: false - engines: - node: '>=4' + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} hasBin: true - resolution: - integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + dev: false + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} dev: false - resolution: - integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /ms/2.1.1: + resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} dev: false - resolution: - integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + /negotiator/0.6.2: + resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + /node-fetch/2.6.1: + resolution: {integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==} + engines: {node: 4.x || >=6.0.0} dev: false - engines: - node: 4.x || >=6.0.0 - resolution: - integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /object-inspect/1.10.3: + resolution: {integrity: sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==} dev: false - resolution: - integrity: sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + /object-path/0.11.5: + resolution: {integrity: sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==} + engines: {node: '>= 10.12.0'} dev: false - engines: - node: '>= 10.12.0' - resolution: - integrity: sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg== + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 has-symbols: 1.0.2 object-keys: 1.1.1 dev: false - engines: - node: '>= 0.4' - resolution: - integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + /object.getownpropertydescriptors/2.1.2: + resolution: {integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==} + engines: {node: '>= 0.8'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + /on-finished/2.3.0: + resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + /parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + /path-to-regexp/0.1.7: + resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} dev: false - resolution: - integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + /proxy-addr/2.0.6: + resolution: {integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.1.2 ipaddr.js: 1.9.1 dev: false - engines: - node: '>= 0.10' - resolution: - integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + /qs/6.7.0: + resolution: {integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==} + engines: {node: '>=0.6'} dev: false - engines: - node: '>=0.6' - resolution: - integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + /range-parser/1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + /raw-body/2.4.0: + resolution: {integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.0 http-errors: 1.7.2 iconv-lite: 0.4.24 unpipe: 1.0.0 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + /retry/0.12.0: + resolution: {integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=} + engines: {node: '>= 4'} dev: false - engines: - node: '>= 4' - resolution: - integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + /rss-parser/3.12.0: + resolution: {integrity: sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A==} dependencies: entities: 2.2.0 xml2js: 0.4.23 dev: false - resolution: - integrity: sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A== + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: false - resolution: - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: false - resolution: - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false - resolution: - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + /sax/1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false - resolution: - integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + /send/0.17.1: + resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 1.1.2 @@ -1213,77 +1161,73 @@ packages: range-parser: 1.2.1 statuses: 1.5.0 dev: false - engines: - node: '>= 0.8.0' - resolution: - integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + /serve-static/1.14.1: + resolution: {integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 parseurl: 1.3.3 send: 0.17.1 dev: false - engines: - node: '>= 0.8.0' - resolution: - integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + /setprototypeof/1.1.1: + resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} dev: false - resolution: - integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: false - resolution: - integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + /sha.js/2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 dev: false - hasBin: true - resolution: - integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + /source-map-support/0.5.19: + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} dependencies: buffer-from: 1.1.1 source-map: 0.6.1 dev: true - resolution: - integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + /statuses/1.5.0: + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} + engines: {node: '>= 0.6'} dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + /streamsearch/0.1.2: + resolution: {integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=} + engines: {node: '>=0.8.0'} dev: false - engines: - node: '>=0.8.0' - resolution: - integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 dev: false - resolution: - integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 dev: false - resolution: - integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + /subscriptions-transport-ws/0.9.18_graphql@15.5.0: + resolution: {integrity: sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==} + peerDependencies: + graphql: '>=0.10.0' dependencies: backo2: 1.0.2 eventemitter3: 3.1.2 @@ -1292,29 +1236,29 @@ packages: symbol-observable: 1.2.0 ws: 5.2.2 dev: false - peerDependencies: - graphql: '>=0.10.0' - resolution: - integrity: sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA== + /symbol-observable/1.2.0: + resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} + engines: {node: '>=0.10.0'} dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + /toidentifier/1.0.0: + resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} + engines: {node: '>=0.6'} dev: false - engines: - node: '>=0.6' - resolution: - integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + /ts-invariant/0.4.4: + resolution: {integrity: sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==} dependencies: tslib: 1.14.1 dev: false - resolution: - integrity: sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + /ts-node/8.9.1_typescript@3.9.3: + resolution: {integrity: sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==} + engines: {node: '>=6.0.0'} + hasBin: true + peerDependencies: + typescript: '>=2.7' dependencies: arg: 4.1.3 diff: 4.0.2 @@ -1323,14 +1267,13 @@ packages: typescript: 3.9.3 yn: 3.1.1 dev: true - engines: - node: '>=6.0.0' + + /ts-node/9.1.1_typescript@4.2.4: + resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} + engines: {node: '>=10.0.0'} hasBin: true peerDependencies: typescript: '>=2.7' - resolution: - integrity: sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ== - /ts-node/9.1.1_typescript@4.2.4: dependencies: arg: 4.1.3 create-require: 1.1.1 @@ -1340,60 +1283,51 @@ packages: typescript: 4.2.4 yn: 3.1.1 dev: true - engines: - node: '>=10.0.0' - hasBin: true - peerDependencies: - typescript: '>=2.7' - resolution: - integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false - resolution: - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + /tslib/2.2.0: + resolution: {integrity: sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==} dev: false - resolution: - integrity: sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.30 dev: false - engines: - node: '>= 0.6' - resolution: - integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + /typescript/3.9.3: - dev: true - engines: - node: '>=4.2.0' + resolution: {integrity: sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==} + engines: {node: '>=4.2.0'} hasBin: true - resolution: - integrity: sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== - /typescript/4.2.4: dev: true - engines: - node: '>=4.2.0' + + /typescript/4.2.4: + resolution: {integrity: sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==} + engines: {node: '>=4.2.0'} hasBin: true - resolution: - integrity: sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== + dev: true + /unbox-primitive/1.0.1: + resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} dependencies: function-bind: 1.1.1 has-bigints: 1.0.1 has-symbols: 1.0.2 which-boxed-primitive: 1.0.2 dev: false - resolution: - integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + /unpipe/1.0.0: + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} + engines: {node: '>= 0.8'} dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + /util.promisify/1.1.1: + resolution: {integrity: sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -1401,31 +1335,29 @@ packages: has-symbols: 1.0.2 object.getownpropertydescriptors: 2.1.2 dev: false - resolution: - integrity: sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== + /utils-merge/1.0.1: + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + engines: {node: '>= 0.4.0'} dev: false - engines: - node: '>= 0.4.0' - resolution: - integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + /uuid/3.4.0: - dev: false + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} hasBin: true - resolution: - integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - /uuid/8.3.2: dev: false + + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - resolution: - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + dev: false + /vary/1.1.2: + resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} + engines: {node: '>= 0.8'} dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.2 is-boolean-object: 1.1.1 @@ -1433,75 +1365,57 @@ packages: is-string: 1.0.6 is-symbol: 1.0.4 dev: false - resolution: - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + /ws/5.2.2: + resolution: {integrity: sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==} dependencies: async-limiter: 1.0.1 dev: false - resolution: - integrity: sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + /ws/6.2.1: + resolution: {integrity: sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==} dependencies: async-limiter: 1.0.1 dev: false - resolution: - integrity: sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + /xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} dependencies: sax: 1.2.4 xmlbuilder: 11.0.1 dev: false - engines: - node: '>=4.0.0' - resolution: - integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + /xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} dev: false - engines: - node: '>=4.0' - resolution: - integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + /xss/1.0.9: + resolution: {integrity: sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==} + engines: {node: '>= 0.10.0'} + hasBin: true dependencies: commander: 2.20.3 cssfilter: 0.0.10 dev: false - engines: - node: '>= 0.10.0' - hasBin: true - resolution: - integrity: sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ== + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: false - resolution: - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + /zen-observable-ts/0.8.21: + resolution: {integrity: sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==} dependencies: tslib: 1.14.1 zen-observable: 0.8.15 dev: false - resolution: - integrity: sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + /zen-observable/0.8.15: + resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} dev: false - resolution: - integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== -specifiers: - '@types/cors': ^2.8.9 - '@types/express': ^4.17.11 - '@types/node': ^14.14.22 - '@vercel/node': ^1.9.0 - apollo-server-express: ^2.23.0 - cors: ^2.8.5 - express: ^4.17.1 - graphql: ^15.5.0 - rss-parser: ^3.10.0 - ts-node: ^9.1.1 - typescript: ^4.1.3 diff --git a/utils/useSearch.ts b/utils/useSearch.ts new file mode 100644 index 0000000..79eb190 --- /dev/null +++ b/utils/useSearch.ts @@ -0,0 +1,12 @@ +// This function use fuse library, see more in https://github.com/krisk/Fuse + +import Fuse from 'fuse.js' + +export const useSearch = (list: any, search: string) => { + const options = { + keys: ['title'] + } + const fuse = new Fuse(list, options) + const result = fuse.search(search) + return result +} \ No newline at end of file