From e5e2151eeb5e0c3b51e01df549d67f571520840f Mon Sep 17 00:00:00 2001 From: ceddybi Date: Sun, 31 Mar 2024 11:05:10 -0400 Subject: [PATCH] init --- .eslintrc.js | 4 +- README.md | 37 +- docs/wallet.jpg | Bin 167071 -> 0 bytes package.json | 18 +- src/badge/Badge.methods.ts | 100 + src/badge/Badge.model.ts | 29 + src/badge/Badge.resolver.ts | 30 + src/badge/index.ts | 1 + src/client/query/btcpayserver.query.ts | 15 - src/client/query/index.ts | 11 +- src/client/query/notification.fragment.ts | 13 + src/client/query/notification.query.ts | 49 + src/client/query/nowpayments.fragment.ts | 84 - src/client/query/nowpayments.mutation.ts | 18 - src/client/query/nowpayments.query.ts | 18 - src/client/query/resType.ts | 15 - src/client/query/transaction.fragment.ts | 50 - src/client/query/transaction.query.ts | 42 - src/client/query/wallet.fragment.ts | 69 - src/client/query/wallet.mutation.ts | 11 - src/client/query/wallet.query.ts | 11 - src/index.ts | 20 +- src/notification/index.ts | 3 + src/notification/notification.methods.ts | 92 + src/notification/notification.model.ts | 47 + src/notification/notification.resolver.ts | 157 + src/postbuild.ts | 4 +- src/prebuild.txt | 35 - src/processors/README.md | 9 - src/processors/btcpayserver/blockchain.ts | 76 - .../btcpayserver/btcpayserver.config.ts | 19 - .../btcpayserver/btcpayserver.cron.ts | 34 - .../btcpayserver/btcpayserver.queue.ts | 23 - .../btcpayserver/btcpayserver.test.ts | 60 - src/processors/btcpayserver/btcpayserver.ts | 363 -- src/processors/btcpayserver/index.ts | 30 - src/processors/btcpayserver/rates/index.ts | 81 - src/processors/coinbase/rest/app.webhook.ts | 53 - .../coinbase/rest/coinbase.methods.ts | 22 - src/processors/coinbase/rest/coinbase.test.ts | 12 - src/processors/coinbase/rest/config.ts | 7 - src/processors/coinbase/rest/index.ts | 2 - src/processors/coinbase/rest/interface.ts | 93 - src/processors/index.ts | 4 - src/processors/kraken/rates/index.ts | 102 - src/processors/kraken/rates/kraken.test.ts | 14 - src/processors/monerox/index.ts | 26 - src/processors/monerox/monerox.config.ts | 7 - src/processors/monerox/monerox.cron.ts | 21 - src/processors/monerox/monerox.queue.ts | 23 - src/processors/monerox/monerox.ts | 357 -- src/processors/nowpayments/app.webhook.ts | 149 - src/processors/nowpayments/config.ts | 13 - src/processors/nowpayments/index.ts | 24 - .../nowpayments/nowpayments.methods.ts | 203 - .../nowpayments/nowpayments.modal.ts | 85 - .../nowpayments/nowpayments.resolver.ts | 104 - .../nowpayments/nowpayments.test.ts | 11 - .../nowpayments/wrapper/api.test.ts | 41 - src/processors/nowpayments/wrapper/api.ts | 50 - src/processors/shared.ts | 41 - src/processors/stripe/app.checkout.ts | 147 - src/processors/stripe/app.test.ts | 29 - src/processors/stripe/config.ts | 7 - src/processors/stripe/index.ts | 22 - src/processors/stripe/response.interface.ts | 60 - src/processors/stripe/stripe.methods.ts | 34 - src/shared/enums.ts | 7 - src/transactions/Transaction.model.ts | 55 - .../Transaction.resolver.admin.ts | 49 - src/transactions/Transaction.resolver.ts | 133 - src/transactions/index.ts | 3 - src/wallet/Wallet.methods.ts | 237 - src/wallet/Wallet.model.ts | 77 - src/wallet/Wallet.resolver.ts | 91 - src/wallet/index.ts | 3 - src/wallet/wallet.rates.resolver.ts | 34 - src/wallet/withdrawRequest.model.ts | 97 - test.js | 14 - yarn-error.log | 4526 ----------------- yarn.lock | 2944 +++++------ 81 files changed, 1911 insertions(+), 9800 deletions(-) delete mode 100644 docs/wallet.jpg create mode 100644 src/badge/Badge.methods.ts create mode 100644 src/badge/Badge.model.ts create mode 100644 src/badge/Badge.resolver.ts create mode 100644 src/badge/index.ts delete mode 100644 src/client/query/btcpayserver.query.ts create mode 100644 src/client/query/notification.fragment.ts create mode 100644 src/client/query/notification.query.ts delete mode 100644 src/client/query/nowpayments.fragment.ts delete mode 100644 src/client/query/nowpayments.mutation.ts delete mode 100644 src/client/query/nowpayments.query.ts delete mode 100644 src/client/query/resType.ts delete mode 100644 src/client/query/transaction.fragment.ts delete mode 100644 src/client/query/transaction.query.ts delete mode 100644 src/client/query/wallet.fragment.ts delete mode 100644 src/client/query/wallet.mutation.ts delete mode 100644 src/client/query/wallet.query.ts create mode 100644 src/notification/index.ts create mode 100644 src/notification/notification.methods.ts create mode 100644 src/notification/notification.model.ts create mode 100644 src/notification/notification.resolver.ts delete mode 100644 src/prebuild.txt delete mode 100644 src/processors/README.md delete mode 100644 src/processors/btcpayserver/blockchain.ts delete mode 100644 src/processors/btcpayserver/btcpayserver.config.ts delete mode 100644 src/processors/btcpayserver/btcpayserver.cron.ts delete mode 100644 src/processors/btcpayserver/btcpayserver.queue.ts delete mode 100644 src/processors/btcpayserver/btcpayserver.test.ts delete mode 100644 src/processors/btcpayserver/btcpayserver.ts delete mode 100644 src/processors/btcpayserver/index.ts delete mode 100644 src/processors/btcpayserver/rates/index.ts delete mode 100644 src/processors/coinbase/rest/app.webhook.ts delete mode 100644 src/processors/coinbase/rest/coinbase.methods.ts delete mode 100644 src/processors/coinbase/rest/coinbase.test.ts delete mode 100644 src/processors/coinbase/rest/config.ts delete mode 100644 src/processors/coinbase/rest/index.ts delete mode 100644 src/processors/coinbase/rest/interface.ts delete mode 100644 src/processors/index.ts delete mode 100644 src/processors/kraken/rates/index.ts delete mode 100644 src/processors/kraken/rates/kraken.test.ts delete mode 100644 src/processors/monerox/index.ts delete mode 100644 src/processors/monerox/monerox.config.ts delete mode 100644 src/processors/monerox/monerox.cron.ts delete mode 100644 src/processors/monerox/monerox.queue.ts delete mode 100644 src/processors/monerox/monerox.ts delete mode 100644 src/processors/nowpayments/app.webhook.ts delete mode 100644 src/processors/nowpayments/config.ts delete mode 100644 src/processors/nowpayments/index.ts delete mode 100644 src/processors/nowpayments/nowpayments.methods.ts delete mode 100644 src/processors/nowpayments/nowpayments.modal.ts delete mode 100644 src/processors/nowpayments/nowpayments.resolver.ts delete mode 100644 src/processors/nowpayments/nowpayments.test.ts delete mode 100644 src/processors/nowpayments/wrapper/api.test.ts delete mode 100644 src/processors/nowpayments/wrapper/api.ts delete mode 100644 src/processors/shared.ts delete mode 100644 src/processors/stripe/app.checkout.ts delete mode 100644 src/processors/stripe/app.test.ts delete mode 100644 src/processors/stripe/config.ts delete mode 100644 src/processors/stripe/index.ts delete mode 100644 src/processors/stripe/response.interface.ts delete mode 100644 src/processors/stripe/stripe.methods.ts delete mode 100644 src/shared/enums.ts delete mode 100644 src/transactions/Transaction.model.ts delete mode 100644 src/transactions/Transaction.resolver.admin.ts delete mode 100644 src/transactions/Transaction.resolver.ts delete mode 100644 src/transactions/index.ts delete mode 100644 src/wallet/Wallet.methods.ts delete mode 100644 src/wallet/Wallet.model.ts delete mode 100644 src/wallet/Wallet.resolver.ts delete mode 100644 src/wallet/index.ts delete mode 100644 src/wallet/wallet.rates.resolver.ts delete mode 100644 src/wallet/withdrawRequest.model.ts delete mode 100644 test.js delete mode 100644 yarn-error.log diff --git a/.eslintrc.js b/.eslintrc.js index e90fbf8..de4ffdf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,7 +16,7 @@ module.exports = { 'prettier/prettier': 'error', '@typescript-eslint/array-type': 'off', '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-unused-vars': 'error', + '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/ban-types': 'off', '@typescript-eslint/no-empty-function': 'off', @@ -34,7 +34,7 @@ module.exports = { 'import/named': 'off', 'import/namespace': 'off', 'simple-import-sort/sort': 'off', - 'sort-imports': 'off', + 'sort-imports': 'off' }, settings: {}, }; diff --git a/README.md b/README.md index 83e61a6..b879e75 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,4 @@

-

RoadmanJS Wallet - a very wallet

+

RoadmanJS Notification

- -
- -
- - - -## A Roadman for wallet that supports, coinbase, stripe, nowpayments .e.t.c ... - -env - -```sh - -# to enable stripe -STRIPE_PAYMENT_DESC=mycompany -STRIPE_SECRET=xxxxxx -STRIPE_ENDPOINT_SECRET=xxxxxx - -# to enable nowpayments for crypto -NOWPAYMENTS_KEY= -NOWPAYMENTS_SECRET_IPN=xxxxx # for verifying the webhooks -NOWPAYMENTS_CALLBACK_URL=xxxxxx # for webhooks -``` - -How to use - -```ts -import roadman from "roadman"; -import { stripeRoadman, nowPaymentsRoadman, getWalletResolvers, getNowPaymentsResolvers} from "@roadmanjs/wallet" - -roadman({ - roadmen: [stripeRoadman, nowPaymentsRoadman], - resolvers: [...myresolvers, ...getWalletResolvers(), ...getNowPaymentsResolvers()] -}); -``` diff --git a/docs/wallet.jpg b/docs/wallet.jpg deleted file mode 100644 index 07ced159001f1412d164f9c3357ebdcef3a1fc5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167071 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.0" }, "dependencies": { - "@nowpaymentsio/nowpayments-api-js": "^1.0.5", "@roadmanjs/auth": "^0.0.32", - "@roadmanjs/auth-client": "^0.0.32", "@roadmanjs/logs": "^0.0.1", "@roadmanjs/utils": "^0.0.12", - "bull": "^4.11.3", - "chalk": "^4.1.0", - "coinbase": "^2.0.8", "couchset": "^0.0.17", "debug": "^4.3.1", "dotenv": "^8.2.0", "lodash": "^4.17.20", - "node-cron": "^3.0.2", "reflect-metadata": "^0.1.13", - "roadman": "^0.3.12", - "stripe": "^10.17.0" + "roadman": "^0.3.12" } } diff --git a/src/badge/Badge.methods.ts b/src/badge/Badge.methods.ts new file mode 100644 index 0000000..9a52a61 --- /dev/null +++ b/src/badge/Badge.methods.ts @@ -0,0 +1,100 @@ +// createBadgeByModel {owner, model} +// updateBadgeCount {id or owner + model, count+-} + +import {Badge, BadgeModel} from './Badge.model'; + +import {CouchbaseConnection} from 'couchset'; +import {awaitTo} from 'couchset/dist/utils'; +import {isEmpty} from 'lodash'; + +export const createBadgeByModel = async ( + owner: string, + model: string = owner +): Promise => { + try { + const [, existingBadge] = await awaitTo( + BadgeModel.pagination({ + where: { + owner, + model, + }, + }) + ); + + if (isEmpty(existingBadge) || !existingBadge) { + return await BadgeModel.create({ + owner, + model, + count: 0, + }); + } + return existingBadge && existingBadge[0]; + } catch (error) { + console.log('error creating badge', error); + return null; + } +}; + +export const getBadges = async (owner: string, models: string[]): Promise => { + try { + const bucket = CouchbaseConnection.Instance.bucketName; + + const query = ` + SELECT * + FROM \`${bucket}\` badge + WHERE badge._type = "${Badge.name}" + AND badge.owner = "${owner}" + AND badge.model in ${JSON.stringify(models)}; + `; + + const [errorFetching, data] = await awaitTo( + BadgeModel.customQuery({ + query: query, + params: [owner, models], + limit: 1000, + }) + ); + + if (errorFetching) { + throw errorFetching; + } + + const [existingBadge = []] = data; + /** + const createNewBadges = models.map(async (model) => { + return await createBadgeByModel(owner, model); + } + const badges = await Promise.all(createNewBadges); + */ + + if (isEmpty(existingBadge) || !existingBadge) { + return null; + } + + return existingBadge.map((x: any) => BadgeModel.parse(x.badge)); + } catch (error) { + console.log('error getting badge', error); + return null; + } +}; + +export const updateBadgeCount = async (owner: string, model: string, count: number) => { + try { + // find badge + const [errorBadge, badge] = await awaitTo(createBadgeByModel(owner, model)); + if (errorBadge) { + throw errorBadge; + } + if (!badge || isEmpty(badge)) { + throw new Error('error updating badge count'); + } + const currentCount = badge.count || 0; + const newBadgeCount = currentCount + count; + badge.count = newBadgeCount < 0 ? 0 : newBadgeCount; + + return await BadgeModel.updateById(badge.id, badge); + } catch (error) { + console.log('error updating badge count', error); + return null; + } +}; diff --git a/src/badge/Badge.model.ts b/src/badge/Badge.model.ts new file mode 100644 index 0000000..8dff34b --- /dev/null +++ b/src/badge/Badge.model.ts @@ -0,0 +1,29 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import {Field, InputType, Model, ObjectType} from 'couchset'; + +@InputType('BadgeInput') +@ObjectType() +export class Badge { + @Field(() => String, {nullable: true, description: 'ID of the badge'}) + id = ''; + + @Field(() => String, {nullable: true, description: 'The owner of the account'}) + owner = ''; + + @Field(() => String, {nullable: true, description: 'The model for this badge'}) + model = ''; + + @Field(() => Number, {nullable: true, description: 'Counts'}) + count = 0; +} + +export const BadgeModel = new Model(Badge.name, {graphqlType: Badge}); + +// automatic + +export const { + resolver: BadgeDefaultResolver, // there's going to be other custom resolvers + pagination: BadgePagination, + client: BadgeClient, + modelKeys: BadgeModelKeys, +} = BadgeModel.automate(); diff --git a/src/badge/Badge.resolver.ts b/src/badge/Badge.resolver.ts new file mode 100644 index 0000000..c12470c --- /dev/null +++ b/src/badge/Badge.resolver.ts @@ -0,0 +1,30 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import {Resolver, Query, Arg, UseMiddleware, Ctx} from 'couchset'; +import {log} from 'roadman'; +import {Badge} from './Badge.model'; +import {getBadges} from './Badge.methods'; +import {ContextType, isAuth} from '@roadmanjs/auth'; +import _get from 'lodash/get'; +import {isEmpty} from 'lodash'; + +@Resolver() +export class BadgeResolver { + @Query(() => [Badge]) + @UseMiddleware(isAuth) + async getBadges( + @Ctx() ctx: ContextType, + @Arg('models', () => [String], {nullable: false}) models: string[] + ): Promise { + try { + const owner = _get(ctx, 'payload.userId', ''); + const badges = await getBadges(owner, models); + if (!badges || isEmpty(badges)) { + throw new Error('not found'); + } + return badges; + } catch (error) { + log('error getting Ad category', error); + return null; + } + } +} diff --git a/src/badge/index.ts b/src/badge/index.ts new file mode 100644 index 0000000..9e0e9a5 --- /dev/null +++ b/src/badge/index.ts @@ -0,0 +1 @@ +export * from './Badge.model'; diff --git a/src/client/query/btcpayserver.query.ts b/src/client/query/btcpayserver.query.ts deleted file mode 100644 index a8ebb7d..0000000 --- a/src/client/query/btcpayserver.query.ts +++ /dev/null @@ -1,15 +0,0 @@ -import gql from 'graphql-tag'; - -export interface BtcpayserverRate { - pair: string; - rate: number; -} - -export const FETCH_RATES_QUERY = gql` - query FetchRates($pairs: String!) { - data: fetchRates(pairs: $pairs) { - pair - rate - } - } -`; diff --git a/src/client/query/index.ts b/src/client/query/index.ts index 2ef2a1a..43c9e31 100644 --- a/src/client/query/index.ts +++ b/src/client/query/index.ts @@ -1,9 +1,2 @@ -export * from './transaction.fragment'; -export * from './wallet.fragment'; -export * from './wallet.query'; -export * from './wallet.mutation'; -export * from './transaction.query'; -export * from './nowpayments.fragment'; -export * from './nowpayments.query'; -export * from './nowpayments.mutation'; -export * from './btcpayserver.query'; +export * from './notification.fragment'; +export * from './notification.query'; diff --git a/src/client/query/notification.fragment.ts b/src/client/query/notification.fragment.ts new file mode 100644 index 0000000..f9e7c2d --- /dev/null +++ b/src/client/query/notification.fragment.ts @@ -0,0 +1,13 @@ +import gql from 'graphql-tag'; +export const NotificationFragment = gql` + fragment NotificationFragment on Notification { + id + owner + createdAt + updatedAt + message + read + source + sourceId + } +`; diff --git a/src/client/query/notification.query.ts b/src/client/query/notification.query.ts new file mode 100644 index 0000000..a2b0833 --- /dev/null +++ b/src/client/query/notification.query.ts @@ -0,0 +1,49 @@ +import gql from 'graphql-tag'; + +import {NotificationFragment} from './notification.fragment'; + +export const GET_BADGES = gql` + query GetBadges($models: [String!]!) { + data: getBadges(models: $models) { + id + model + count + } + } +`; + +export const GET_NOTIFICATIONS = gql` + query GetNotifications( + $read: Boolean + $filter: String + $sort: String + $before: DateTime + $after: DateTime + $limit: Float + ) { + data: notifications( + read: $read + filter: $filter + sort: $sort + before: $before + after: $after + limit: $limit + ) { + items { + ...NotificationFragment + } + hasNext + params + } + } + ${NotificationFragment} +`; + +export const READ_NOTIFICATIONS = gql` + query ReadNotification($id: String, $before: DateTime, $limit: Float) { + data: readNotifications(id: $id, before: $before, limit: $limit) { + ...NotificationFragment + } + } + ${NotificationFragment} +`; diff --git a/src/client/query/nowpayments.fragment.ts b/src/client/query/nowpayments.fragment.ts deleted file mode 100644 index 5c9e777..0000000 --- a/src/client/query/nowpayments.fragment.ts +++ /dev/null @@ -1,84 +0,0 @@ -import {Transaction} from './transaction.fragment'; -import gql from 'graphql-tag'; - -export interface NowPaymentsCreatePayment { - payment_id: number; - payment_status: string; - pay_address: string; - price_amount: number; - price_currency: string; - pay_amount: number; - pay_currency: string; - order_id: string; - order_description: string; - ipn_callback_url: string; - created_at: string; - updated_at: string; - purchase_id: number; -} - -export const NowPaymentsCreatePaymentFragment = gql` - fragment NowPaymentsCreatePaymentFragment on NowPaymentsCreatePayment { - payment_id - payment_status - pay_address - price_amount - price_currency - pay_amount - pay_currency - order_id - order_description - ipn_callback_url - created_at - updated_at - purchase_id - } -`; - -export interface NowPaymentsGetPaymentStatus { - payment_id: number; - payment_status: string; - pay_address: string; - price_amount: number; - price_currency: string; - pay_amount: number; - actually_paid: number; - pay_currency: string; - order_id: string; - order_description: string; - purchase_id: number; - created_at: string; - updated_at: string; - outcome_amount: number; - outcome_currency: string; -} - -export const NowPaymentsGetPaymentStatusFragment = gql` - fragment NowPaymentsGetPaymentStatusFragment on NowPaymentsGetPaymentStatus { - payment_id - payment_status - pay_address - price_amount - price_currency - pay_amount - actually_paid - pay_currency - order_id - order_description - purchase_id - created_at - updated_at - outcome_amount - outcome_currency - } -`; - -export interface NowPaymentsGetPaymentResponse { - payment: NowPaymentsGetPaymentStatus; - transaction: Transaction; -} - -export interface NowPaymentsCreatePaymentResponse { - payment: NowPaymentsGetPaymentStatus; - transaction: Transaction; -} diff --git a/src/client/query/nowpayments.mutation.ts b/src/client/query/nowpayments.mutation.ts deleted file mode 100644 index a0be114..0000000 --- a/src/client/query/nowpayments.mutation.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {NowPaymentsCreatePaymentFragment} from './nowpayments.fragment'; -import {TransactionFragment} from './transaction.fragment'; -import gql from 'graphql-tag'; - -export const NOWPAYMENTS_CREATE_PAYMENT = gql` - mutation NowPaymentsCreatePayment($amount: Float!, $order_description: String) { - nowPaymentsCreatePayment(amount: $amount, order_description: $order_description) { - payment { - ...NowPaymentsCreatePaymentFragment - } - transaction { - ...TransactionFragment - } - } - } - ${TransactionFragment} - ${NowPaymentsCreatePaymentFragment} -`; diff --git a/src/client/query/nowpayments.query.ts b/src/client/query/nowpayments.query.ts deleted file mode 100644 index 4cecc3a..0000000 --- a/src/client/query/nowpayments.query.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {NowPaymentsGetPaymentStatusFragment} from './nowpayments.fragment'; -import {TransactionFragment} from './transaction.fragment'; -import gql from 'graphql-tag'; - -export const NOWPAYMENTS_GET_STATUS = gql` - query NowPaymentsGetStatus($id: String!) { - nowPaymentsGetStatus(id: $id) { - payment { - ...NowPaymentsGetPaymentStatusFragment - } - transaction { - ...TransactionFragment - } - } - } - ${TransactionFragment} - ${NowPaymentsGetPaymentStatusFragment} -`; diff --git a/src/client/query/resType.ts b/src/client/query/resType.ts deleted file mode 100644 index df8b122..0000000 --- a/src/client/query/resType.ts +++ /dev/null @@ -1,15 +0,0 @@ -import gql from 'graphql-tag'; - -export interface WalletResType { - success: boolean; - message?: string; - data?: any; -} - -export const WalletResTypeFragment = gql` - fragment WalletResTypeFragment on ResType { - success - message - data - } -`; diff --git a/src/client/query/transaction.fragment.ts b/src/client/query/transaction.fragment.ts deleted file mode 100644 index 46f7d33..0000000 --- a/src/client/query/transaction.fragment.ts +++ /dev/null @@ -1,50 +0,0 @@ -import gql from 'graphql-tag'; -export interface Transaction { - id: string; - createdAt: Date; - updatedAt: Date; - owner: string; - type: string; - status: string; - source: string; - sourceId: string; - currency: string; - amount: number; - transactionHash?: string; - feePerc?: number; -} - -export interface TransactionPagination { - items?: Transaction[]; - hasNext?: boolean; - params?: object; -} - -export const TransactionFragment = gql` - fragment TransactionFragment on Transaction { - id - createdAt - updatedAt - owner - currency - amount - type - status - source - sourceId - currency - transactionHash - feePerc - } -`; - -export const TransactionPaginationFragment = gql` - fragment TransactionPaginationFragment on TransactionPagination { - items { - ...TransactionFragment - } - hasNext - params - } - ${TransactionFragment} -`; diff --git a/src/client/query/transaction.query.ts b/src/client/query/transaction.query.ts deleted file mode 100644 index a92a3e0..0000000 --- a/src/client/query/transaction.query.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {TransactionFragment, TransactionPaginationFragment} from './transaction.fragment'; - -import gql from 'graphql-tag'; - -export const TRANSACTIONS_QUERY = gql` - query Transactions( - $filters: String - $sort: String - $before: DateTime - $after: DateTime - $limit: Float - ) { - data: transactions( - filters: $filters - sort: $sort - before: $before - after: $after - limit: $limit - ) { - ...TransactionPaginationFragment - } - } - ${TransactionPaginationFragment} -`; - -export const TRANSACTIONS_GET_QUERY = gql` - query Transactions($owner: String, $id: String!) { - data: transactionGet(id: $id, owner: $owner) { - ...TransactionFragment - } - } - ${TransactionFragment} -`; - -export const GET_TRANSACTIONS_BY_ID_QUERY = gql` - query TransactionById($id: String!) { - data: transactionById(id: $id) { - ...TransactionFragment - } - } - ${TransactionFragment} -`; diff --git a/src/client/query/wallet.fragment.ts b/src/client/query/wallet.fragment.ts deleted file mode 100644 index 3c5807d..0000000 --- a/src/client/query/wallet.fragment.ts +++ /dev/null @@ -1,69 +0,0 @@ -import {UserType} from '@roadmanjs/auth-client'; -import gql from 'graphql-tag'; -export interface WalletAddress { - id?: string; - createdAt?: Date; - updatedAt?: Date; - owner?: string; - currency?: string; - transactions?: number; -} -export interface Wallet { - id?: string; - createdAt?: Date; - updatedAt?: Date; - owner: UserType | string; - address?: WalletAddress | string; - currency?: string; - amount?: number; -} - -export interface WalletOutput extends Wallet { - owner: UserType; - address?: WalletAddress; -} - -export interface WalletPagination { - items?: Wallet[]; - hasNext?: boolean; - params?: object; -} - -export const WalletAddressFragment = gql` - fragment WalletAddressFragment on WalletAddress { - id - createdAt - updatedAt - transactions - currency - } -`; - -export const WalletOutputFragment = gql` - fragment WalletOutputFragment on WalletOutput { - id - createdAt - updatedAt - owner { - id - } - currency - address { - ...WalletAddressFragment - } - amount - } - ${WalletAddressFragment} -`; - -export const WalletFragment = gql` - fragment WalletFragment on Wallet { - id - createdAt - updatedAt - owner - currency - address - amount - } -`; diff --git a/src/client/query/wallet.mutation.ts b/src/client/query/wallet.mutation.ts deleted file mode 100644 index d87470c..0000000 --- a/src/client/query/wallet.mutation.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {WalletResTypeFragment} from './resType'; -import gql from 'graphql-tag'; - -export const GENERATE_WALLET_ADDRESS_MUTATION = gql` - mutation GetWalletAddress($currency: String!, $forceGenerate: Boolean) { - data: getWalletAddress(currency: $currency, forceGenerate: $forceGenerate) { - ...WalletResTypeFragment - } - } - ${WalletResTypeFragment} -`; diff --git a/src/client/query/wallet.query.ts b/src/client/query/wallet.query.ts deleted file mode 100644 index b3b2364..0000000 --- a/src/client/query/wallet.query.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {WalletOutputFragment} from './wallet.fragment'; -import gql from 'graphql-tag'; - -export const MY_WALLET_QUERY = gql` - query MyWallets($currency: [String!]!, $createNew: Boolean) { - data: myWallets(currency: $currency, createNew: $createNew) { - ...WalletOutputFragment - } - } - ${WalletOutputFragment} -`; diff --git a/src/index.ts b/src/index.ts index 96d73db..452552a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,4 @@ -import {TransactionAdminResolver, TransactionResolver} from './transactions'; +import {BadgeResolver} from './badge/Badge.resolver'; +import NotificationResolver from './notification/notification.resolver'; -import WalletRatesResolver from './wallet/wallet.rates.resolver'; -// export applyProcessor -// ---> roadman.app(applyProcessor) -// export resolvers -import {WalletResolver} from './wallet'; - -export const getWalletResolvers = () => [ - TransactionResolver, - TransactionAdminResolver, - WalletResolver, - WalletRatesResolver, -]; - -export * from './wallet'; -export * from './transactions'; -export * from './processors'; +export const getNotificationResolvers = () => [NotificationResolver, BadgeResolver]; diff --git a/src/notification/index.ts b/src/notification/index.ts new file mode 100644 index 0000000..a9105c5 --- /dev/null +++ b/src/notification/index.ts @@ -0,0 +1,3 @@ +export * from './notification.methods'; +export * from './notification.model'; +export * from './notification.resolver'; diff --git a/src/notification/notification.methods.ts b/src/notification/notification.methods.ts new file mode 100644 index 0000000..3000f51 --- /dev/null +++ b/src/notification/notification.methods.ts @@ -0,0 +1,92 @@ +import {Notification, NotificationModel} from './notification.model'; +import {compact, flattenDeep, isEmpty} from 'lodash'; + +import {awaitTo} from 'couchset/dist/utils'; +import {createUpdate} from 'couchset'; +import {updateBadgeCount} from '../badge/Badge.methods'; + +export const createNotification = async ( + notification: Notification, + silent = false +): Promise => { + try { + const {owner} = notification; + // create notification + // send notification if not silent, using owner + + const newNotification = await createUpdate({ + model: NotificationModel, + data: { + ...notification, + }, + ...notification, // id and owner if it exists + }); + + return newNotification; + } catch (error) { + console.error(error); + return null; + } +}; + +interface UpdateReadStatus { + limit?: number; + read?: boolean; +} + +export const updateReadStatus = async ( + query: any, + opt?: UpdateReadStatus +): Promise => { + try { + const notifications = await NotificationModel.pagination({ + where: query, + limit: opt?.limit || 1000, // TODO pagination + }); + + if (isEmpty(notifications)) { + throw new Error('error getting notifications'); + } + + const updateNotificationsNBadge = await Promise.all( + notifications.map(async (notification) => { + const [errorUpdate, updatedNotifications] = await awaitTo( + NotificationModel.updateById(notification.id, { + ...notification, + read: opt?.read || true, + }) + ); + + if (errorUpdate || !updatedNotifications) { + console.log('error updateNotificationsNBadge', errorUpdate); + return null; + } + + await updateBadgeCount(notification.owner as string, Notification.name, -1); + + return updatedNotifications; + }) + ); + + return compact(updateNotificationsNBadge); + } catch (error) { + console.error('error updating notification', error); + return null; + } +}; +// TODO updateNotification(id, data) + +export const deleteNotification = async (id: string): Promise => { + try { + const [err, deleted] = await awaitTo(NotificationModel.delete(id)); + + if (err) { + throw err; + } + + return deleted; + } catch (error) { + console.error('error deleting notification', error); + return false; + } +}; diff --git a/src/notification/notification.model.ts b/src/notification/notification.model.ts new file mode 100644 index 0000000..a0fb91e --- /dev/null +++ b/src/notification/notification.model.ts @@ -0,0 +1,47 @@ +import {Field, InputType, Model, ObjectType} from 'couchset'; + +export const NotificationModelName = 'Notification'; + +@InputType('NotificationInput') +@ObjectType() +export class Notification { + @Field(() => String, {nullable: true}) + id?: string = ''; + + @Field(() => Date, {nullable: true}) + createdAt?: Date = new Date(); + + @Field(() => Date, {nullable: true}) + updatedAt?: Date = new Date(); + + @Field(() => String, {nullable: true}) + owner?: string = ''; + + @Field(() => String, {nullable: true}) + source = ''; // any model + + @Field(() => String, {nullable: true}) + sourceId?: string = ''; // model id + + @Field(() => String, {nullable: true}) + message = ''; + + @Field(() => Boolean, {nullable: true, defaultValue: false}) + read = false; +} + +export const NotificationModel: Model = new Model(NotificationModelName, { + graphqlType: Notification, +}); + +// TODO use automatic Notification when couchset byTime is completed +export const { + resolver: NotificationDefaultResolver, // there's going to be other custom resolvers + pagination: NotificationPagination, + client: NotificationClient, + modelKeys: NotificationModelKeys, +} = NotificationModel.automate(); + +// TODO automatic + +export default NotificationModel; diff --git a/src/notification/notification.resolver.ts b/src/notification/notification.resolver.ts new file mode 100644 index 0000000..eca46ae --- /dev/null +++ b/src/notification/notification.resolver.ts @@ -0,0 +1,157 @@ +import { + Resolver, + Query, + Arg, + UseMiddleware, + Ctx, + // Int, +} from 'type-graphql'; +import _get from 'lodash/get'; +import pickBy from 'lodash/pickBy'; +import identity from 'lodash/identity'; +import {log} from '@roadmanjs/logs'; +import NotificationModel, {NotificationModelName, Notification} from './notification.model'; +import {ContextType, isAuth} from '@roadmanjs/auth'; +import {CouchbaseConnection, getPagination} from 'couchset'; +import {awaitTo} from 'couchset/dist/utils'; +import {updateReadStatus} from './notification.methods'; +import {isEmpty} from 'lodash'; + +const NotificationPagination = getPagination(Notification); +@Resolver() +export class NotificationResolver { + // TODO move this couchset when byTime Updated + @Query(() => NotificationPagination) + @UseMiddleware(isAuth) + async notifications( + @Ctx() ctx: ContextType, + @Arg('read', () => Boolean, {nullable: true}) read?: boolean, // todo readNotification + @Arg('filter', () => String, {nullable: true}) filter?: string, + @Arg('sort', () => String, {nullable: true}) sortArg?: string, + @Arg('before', () => Date, {nullable: true}) before?: Date, + @Arg('after', () => Date, {nullable: true}) after?: Date, + @Arg('limit', () => Number, {nullable: true}) limitArg?: number + ): Promise<{items: Notification[]; hasNext?: boolean; params?: any}> { + const notificationModelName = NotificationModelName; + const owner = _get(ctx, 'payload.userId', ''); + const bucket = CouchbaseConnection.Instance.bucketName; + const sign = before ? '<=' : '>='; + const time = new Date(before || after || new Date()); + const sort = sortArg || 'DESC'; + const limit = limitArg || 10; + const limitPassed = limit + 1; // adding +1 for hasNext + + const copyParams = pickBy( + { + sort, + filter, + before, + after, + owner, + limit, + }, + identity + ); + + try { + const query = ` + SELECT * + FROM \`${bucket}\` notif + WHERE notif._type = "${notificationModelName}" + ${filter ? `AND notif.type = "${filter}"` : ''} + AND notif.owner = "${owner}" + AND notif.createdAt ${sign} "${time.toISOString()}" + ORDER BY notif.createdAt ${sort} + LIMIT ${limitPassed}; + `; + + const [errorFetching, data = []] = await awaitTo( + NotificationModel.customQuery({ + limit: limitPassed, + query, + params: copyParams, + }) + ); + + if (errorFetching) { + throw errorFetching; + } + + const [rows = []] = data; + + const hasNext = rows.length > limit; + + if (hasNext) { + rows.pop(); // remove last element + } + + const dataToSend = rows.map((d) => { + const {notif} = d; + return NotificationModel.parse(notif); + }); + + return {items: dataToSend, params: copyParams, hasNext}; + } catch (error) { + log('error getting notifications', error); + return {items: [], hasNext: false, params: copyParams}; + } + } + + @Query(() => [Notification]) + @UseMiddleware(isAuth) + async readNotifications( + @Ctx() ctx: ContextType, + @Arg('id', () => String, {nullable: true}) id?: string, + @Arg('before', () => Date, {nullable: true}) before?: Date, + @Arg('limit', () => Number, {nullable: true}) limit: number = 1000 + ): Promise { + try { + const owner = _get(ctx, 'payload.userId', ''); + + let updatedNotifications: Notification[] | null = []; + + if (id) { + updatedNotifications = await updateReadStatus({id}); + } else { + if (!owner || !before) { + throw new Error('owner and before date are required'); + } + + updatedNotifications = await updateReadStatus( + { + owner, + before: {$lte: before}, + }, + {limit} + ); + } + return updatedNotifications; + } catch (error) { + log('error reading notification', error); + return null; + } + } + + @Query(() => Notification, {nullable: true}) + @UseMiddleware(isAuth) + async getNotification( + @Arg('id', () => String, {nullable: false}) id: string + ): Promise { + try { + if (!id || isEmpty(id)) { + throw new Error('id is required'); + } + + const [error, notification] = await awaitTo(NotificationModel.findById(id)); + if (error) { + throw error; + } + return notification; + } catch (error) { + log('error reading notification', error); + return null; + } + } +} + +export default NotificationResolver; diff --git a/src/postbuild.ts b/src/postbuild.ts index 24ddf65..aaad360 100644 --- a/src/postbuild.ts +++ b/src/postbuild.ts @@ -20,8 +20,8 @@ import {DirArg, buildDirs, createClientPackageJson} from '@roadmanjs/utils'; buildDirs(args); await createClientPackageJson({ - name: '@roadmanjs/wallet-client', - description: 'GraphQL client gql for @roadmanjs/wallet', + name: '@roadmanjs/notification-client', + description: 'GraphQL client gql for @roadmanjs/notification', extraProps: { main: 'client/index.js', diff --git a/src/prebuild.txt b/src/prebuild.txt deleted file mode 100644 index a5ba530..0000000 --- a/src/prebuild.txt +++ /dev/null @@ -1,35 +0,0 @@ -// // NO need for auto clients -// import 'reflect-metadata'; - -// import {Transaction} from './transactions/Transaction.model'; - -// import {StructureKind} from 'ts-morph'; -// import {writeAutomaticClient} from '@roadmanjs/utils'; - -// // import {Wallet, WalletClient} from './wallet/Wallet.model'; - -// // Automatically run this before building -// (async () => { -// const clients: any[] = [ -// // {name: 'Wallet', client: WalletClient, fragment: Wallet}, -// {name: 'Transaction', client: TransactionClient, fragment: Transaction}, -// ]; - -// await writeAutomaticClient({ -// clients, -// rootDir: '.', -// destDir: 'src/client', -// extraMorphs: [ -// { -// filename: 'customQuery', -// exports: [ -// { -// // @ts-ignore -// kind: StructureKind.ExportDeclaration, -// moduleSpecifier: `./query`, -// }, -// ], -// }, -// ], -// }); -// })(); diff --git a/src/processors/README.md b/src/processors/README.md deleted file mode 100644 index c6725db..0000000 --- a/src/processors/README.md +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/processors/btcpayserver/blockchain.ts b/src/processors/btcpayserver/blockchain.ts deleted file mode 100644 index 7f3df2b..0000000 --- a/src/processors/btcpayserver/blockchain.ts +++ /dev/null @@ -1,76 +0,0 @@ -import axios from 'axios'; -import {log} from '@roadmanjs/logs'; - -interface Vin { - txid: string; - vout: number; - prevout: Prevout; - scriptsig: string; - scriptsig_asm: string; - witness: string[]; - is_coinbase: boolean; - sequence: number; -} - -interface Prevout { - scriptpubkey: string; - scriptpubkey_asm: string; - scriptpubkey_type: string; - scriptpubkey_address: string; - value: number; -} -interface Vout { - scriptpubkey: string; - scriptpubkey_asm: string; - scriptpubkey_type: string; - scriptpubkey_address: string; - value: number; -} - -interface Status { - confirmed: boolean; - block_height: number; - block_hash: string; - block_time: number; -} - -export interface MempoolTx { - txid: string; - version: number; - locktime: number; - vin: Vin[]; - vout: Vout[]; - size: number; - weight: number; - fee: number; - status: Status; -} - -export interface MempoolTxOut { - address: string; - amount: number; -} - -// get transaction using mempool.space, else kraken -// TODO get transaction from kraken if mempool.space fails -// TODO set KRACKEN_API_KEY and KRACKEN_API_SECRET in .env -export const getTxAddressFromBlockchain = async ( - transactionHash: string -): Promise => { - try { - const endpoint = `https://mempool.space/api/tx/${transactionHash}`; - const {data} = await axios.get(endpoint); - - const sender = data.vin[0].prevout.scriptpubkey_address; - - const voutWithSender = data.vout.filter((vout) => vout.scriptpubkey_address !== sender); - - return voutWithSender.map((vout) => ({ - address: vout.scriptpubkey_address, - amount: vout.value, - })); - } catch (error) { - log('Error getting transaction:', error); - return null; - } -}; diff --git a/src/processors/btcpayserver/btcpayserver.config.ts b/src/processors/btcpayserver/btcpayserver.config.ts deleted file mode 100644 index 76d1bf3..0000000 --- a/src/processors/btcpayserver/btcpayserver.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import 'dotenv/config'; - -import _get from 'lodash/get'; - -export const btcpayServerToken = _get(process.env, 'BTCPAYSERVER_TOKEN', ''); -export const btcpayServerUrl = _get(process.env, 'BTCPAYSERVER_URL', ''); -export const btcpayServerStore = _get(process.env, 'BTCPAYSERVER_STORE', ''); -export const btcpayServerBtcWalletId = _get(process.env, 'BTCPAYSERVER_BTC', ''); -export const btcpayServerXmrWalletId = _get(process.env, 'BTCPAYSERVER_XMR', ''); -export const btcpayServerCron = _get(process.env, 'BTCPAYSERVER_CRON', '*/5 * * * *'); -export const btcpayServerCronRates = _get(process.env, 'BTCPAYSERVER_CRON_RATES', '*/1 * * * *'); -export const btcpayServerCronEnabled = _get(process.env, 'BTCPAYSERVER_CRON_ENABLED', ''); - -// BTCPAYSERVER_CRON_ENABLED=btc,xmr -// BTCPAYSERVER_CRON=* * * * 0/5 -export const wallets = { - btc: btcpayServerBtcWalletId, - xmr: btcpayServerXmrWalletId, -}; diff --git a/src/processors/btcpayserver/btcpayserver.cron.ts b/src/processors/btcpayserver/btcpayserver.cron.ts deleted file mode 100644 index e50ff71..0000000 --- a/src/processors/btcpayserver/btcpayserver.cron.ts +++ /dev/null @@ -1,34 +0,0 @@ -// TODO move cron to k8s -import { - btcpayServerCron, - btcpayServerCronEnabled, - btcpayServerCronRates, -} from './btcpayserver.config'; -import {flatten, isEmpty} from 'lodash'; - -import cron from 'node-cron'; -import {fetchRatesSaveToCache} from './rates'; -import {fetchTransactions} from './btcpayserver'; -import {log} from '@roadmanjs/logs'; - -export function startBtcpayserverPullingCron() { - if (isEmpty(btcpayServerCronEnabled)) { - log('cron currencies empty'); - return; - } - - log('starting cron'); - - const currencies = btcpayServerCronEnabled.split(','); - - cron.schedule(btcpayServerCronRates, async () => { - const currenciesPairs = flatten(currencies.map((cur) => [`${cur}_USD`, `USD_${cur}`])); - log('BtcpayserverPullingCron: currenciesPairs', currenciesPairs); - await fetchRatesSaveToCache(currenciesPairs.join(',')); - }); - - cron.schedule(btcpayServerCron, async () => { - log('BtcpayserverPullingCron: ', currencies); - await fetchTransactions('BTC'); - }); -} diff --git a/src/processors/btcpayserver/btcpayserver.queue.ts b/src/processors/btcpayserver/btcpayserver.queue.ts deleted file mode 100644 index f4ac8c5..0000000 --- a/src/processors/btcpayserver/btcpayserver.queue.ts +++ /dev/null @@ -1,23 +0,0 @@ -// transaction => bull queue => fulfillBtcpayserver => update wallet - -import Queue from 'bull'; -import {REDIS_URL} from 'roadman'; -import {fulfillBtcpayserver, type BtcpayserverTransaction} from './btcpayserver'; -import {log} from '@roadmanjs/logs'; -const btcpayserverBTCqueue = new Queue('btcpayserverBTC', REDIS_URL, {}); - -btcpayserverBTCqueue.process(async (job) => { - const data = job.data; - const {transaction} = data; - log('processing transaction', transaction); - - try { - await fulfillBtcpayserver(transaction); - } catch (error) { - log('error processing transaction', error); - } -}); - -export const addTxToBtcQueue = (transaction: BtcpayserverTransaction) => { - btcpayserverBTCqueue.add({transaction}); -}; diff --git a/src/processors/btcpayserver/btcpayserver.test.ts b/src/processors/btcpayserver/btcpayserver.test.ts deleted file mode 100644 index 07d5268..0000000 --- a/src/processors/btcpayserver/btcpayserver.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -import 'mocha'; -import "dotenv/config"; -import "reflect-metadata" - -import { expect } from 'chai'; -import { fetchTransactions } from "./btcpayserver"; - -const externalAddress = "399KPGqPiNqRygRtf6SYQUb5YHRH5BeWiz"; - -describe('Btcpayserver', () => { - // it('it should fetch all stores', async () => { - // const stores = await fetchStores(); - // console.log('all stores', stores); - // expect(stores).to.be.not.null; - // }); - - // it('it should fetch rates', async () => { - // const rates = await fetchRates("BTC_USD,EUR_BTC"); - // console.log('all stores', rates); - // expect(rates).to.be.not.null; - // }); - - // it('it should create an address', async () => { - // const address = await generateAddress('BTC'); - // console.log('created the address', address); - // expect(address).to.be.not.null; - // }); - - it('it should get all transactions', async () => { - const transactions = await fetchTransactions('btc'); - console.log('all transactions', transactions); - expect(transactions).to.be.not.null; - }); - - - // - - // it('it should get transaction address from blockchain', async () => { - // const transactionAddress = await getTxAddressFromBlockchain('84e6623c36b2f1f9b38fbf3ed663efa5c1f172c6c3f1d32e4aa69fb2a77b6987'); - // console.log('transactionAddress', transactionAddress); - // expect(transactionAddress.map(tx => tx.address)).to.include(externalAddress) - // }); - - // it('it should get transaction address from blockchain', async () => { - // const transactionAddress = await getTxAddressFromBlockchain('a29d731ae7619d1194787d95b82b655c9f3e35d792ae23eeeefb07d5e8e7d638'); - // console.log('transactionAddress', transactionAddress); - // expect(transactionAddress.map(tx => tx.address)).to.include("bc1qn3jmr0tsujhdw753vvptudaeuasval25snuytc") - // }); - - // it('it should create a transactions', async () => { - // const transactions = await createTransactions('btc', [ - // { amount: "0.0006131", destination: externalAddress, subtractFromAmount: true } - // ]); - - // console.log('created transaction', transactions); - // expect(transactions).to.be.not.null; - // }); - - -}); diff --git a/src/processors/btcpayserver/btcpayserver.ts b/src/processors/btcpayserver/btcpayserver.ts deleted file mode 100644 index 115311c..0000000 --- a/src/processors/btcpayserver/btcpayserver.ts +++ /dev/null @@ -1,363 +0,0 @@ -import {MempoolTxOut, getTxAddressFromBlockchain} from './blockchain'; -import {WalletAddress, WalletAddressModel, updateWallet} from '../../wallet'; -import WithdrawRequestModel, {WithdrawRequestStatus} from '../../wallet/withdrawRequest.model'; -import {add, isEmpty} from 'lodash'; -import {btcpayServerStore, btcpayServerToken, btcpayServerUrl} from './btcpayserver.config'; -import {log, verbose} from '@roadmanjs/logs'; - -import {TransactionModel} from '../../transactions'; -import {addTxToBtcQueue} from './btcpayserver.queue'; -import {awaitTo} from 'couchset/dist/utils'; -// generateAddress -// [cron] getAllTransactions -> settle -import axios from 'axios'; - -// TODO to reflect btcpay transaction -export interface BtcpayserverTransaction { - // transactionId: string; // hash of the transaction - // currency: string; - address: string; - amount: string; // The amount the wallet balance changed with this transaction - transactionHash: string; // The transaction id - comment: string; // A comment linked to the transaction - blockHash: string; // The hash of the block that confirmed this transaction.Null if still unconfirmed. - blockHeight: string; // The height of the block that confirmed this transaction.Null if still unconfirmed. - confirmations: string; // The number of confirmations for this transaction - timestamp: number; // The time of the transaction - status: string; // Enum: "Confirmed" "Unconfirmed" -} - -/** - * find transaction by hash - * @param transactionHash - * @returns - */ -export const transactionExists = async (transactionHash: string): Promise => { - try { - // existing transaction, if not duplicate - const [error, existingTransaction] = await awaitTo( - TransactionModel.pagination({ - where: { - transactionHash, - }, - }) - ); - - if (error) { - throw error; - } - - return !isEmpty(existingTransaction); - } catch (error) { - log('Error transactionExists', error && error.message); - return false; - } -}; - -// TODO response -export const generateAddress = async (currency: string): Promise<{address: string} | null> => { - // https://docs.btcpayserver.org/API/Greenfield/v1/#operation/StoreOnChainWallets_GetOnChainWalletReceiveAddress - // https://docs.btcpayserver.org/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/address - const endpoint = `${btcpayServerUrl}/stores/${btcpayServerStore}/payment-methods/onchain/${currency}/wallet/address`; - - try { - const {data} = await axios.get(endpoint, { - headers: { - Authorization: `token ${btcpayServerToken}`, - }, - }); - - return data; - } catch (error) { - console.error('Error generating address:', error); - return null; - } -}; - -export const fetchStores = async () => { - try { - const endpoint = btcpayServerUrl; - - const {data} = await axios.get(endpoint + '/stores', { - headers: { - Authorization: `token ${btcpayServerToken}`, - }, - }); - - return data; - } catch (error) { - console.error('Error generating stores:', error); - return null; - } -}; - -export const fetchStatus = async (currency: string) => { - try { - const endpoint = `${btcpayServerUrl}/stores/${btcpayServerStore}/payment-methods/onchain/${currency}/wallet?forceGenerate=true`; - - const {data} = await axios.get(endpoint, { - headers: { - Authorization: `token ${btcpayServerToken}`, - }, - }); - - return data; - } catch (error) { - console.error('Error crypto status:', error); - return null; - } -}; - -export interface txDest { - destination: string; - amount: string; - subtractFromAmount?: boolean; -} - -// TODO use bull queue -export const createTransactions = async ( - currency: string, - destinations: txDest[] -): Promise => { - // https://docs.btcpayserver.org/API/Greenfield/v1/#operation/StoreOnChainWallets_ShowOnChainWalletTransactions - // https://docs.btcpayserver.org/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/transactions - - try { - const endpoint = `${btcpayServerUrl}/stores/${btcpayServerStore}/payment-methods/onchain/${currency}/wallet/transactions`; - - const {data} = await axios.post( - endpoint, - { - destinations, - }, - { - headers: { - Authorization: `token ${btcpayServerToken}`, - }, - } - ); - - return data; - } catch (error) { - console.error('Error generating transactions:', error); - return null; - } -}; - -// TODO response -// use local query, if not found, push to bull queue -// use bull queue -export const fetchTransactions = async (currency: string) => { - // https://docs.btcpayserver.org/API/Greenfield/v1/#operation/StoreOnChainWallets_ShowOnChainWalletTransactions - // https://docs.btcpayserver.org/api/v1/stores/{storeId}/payment-methods/onchain/{cryptoCode}/wallet/transactions - // statusFilter: "confirmed" - // limit - try { - const endpoint = `${btcpayServerUrl}/stores/${btcpayServerStore}/payment-methods/onchain/${currency}/wallet/transactions?statusFilter=confirmed&limit=100`; - - const {data} = await axios.get(endpoint, { - headers: { - Authorization: `token ${btcpayServerToken}`, - }, - }); - - if (!isEmpty(data)) { - await btcPayServerProcessTransactions(data); - } - - return data; - } catch (error) { - console.error('Error generating transactions:', error); - return null; - } -}; - -const localProcessedTransactions = []; - -export const btcPayServerProcessTransactions = async (transactions: BtcpayserverTransaction[]) => { - try { - // check if transaction exists in local queue - const transactionsToProcess = transactions.filter( - (transaction) => !localProcessedTransactions.includes(transaction.transactionHash) - ); - - // then check if transaction exists in db - // if it exists, then add it to local queue - const transactionsToCheckAndProcess = await Promise.all( - transactionsToProcess.map(async (transaction) => { - if (await transactionExists(transaction.transactionHash)) { - localProcessedTransactions.push(transaction.transactionHash); - return {transaction, transactionId: transaction.transactionHash, exists: true}; - } - - return {transaction, transactionId: transaction.transactionHash, exists: false}; - }) - ); - - // if not, then add to bull queue. - const transactionsToPushToQueue = transactionsToCheckAndProcess.filter( - (transaction) => !transaction.exists - ); - transactionsToPushToQueue.forEach((transaction) => { - addTxToBtcQueue(transaction.transaction); - }); - } catch (error) { - console.error('Error processing transactions:', error); - return null; - } -}; - -// TODO -export const verifyTransaction = async (transactionId: string): Promise => { - // get transaction using mempool.space, else kraken - try { - const txFromBlockchain = await getTxAddressFromBlockchain(transactionId); - if (isEmpty(txFromBlockchain)) { - throw new Error('transaction not found in blockchain'); - } - return txFromBlockchain; - } catch (error) { - console.error('Error verifying transaction:', error); - return null; - } -}; - -export const fulfillBtcpayserver = async (payment: BtcpayserverTransaction): Promise => { - verbose('Fulfilling btcpayserver', payment); - - const markAsProcessed = async (transactionHash: string) => { - // push to local queue, as it has been processed, to avoid checking it again - log('markAsProcessed ', transactionHash); - localProcessedTransactions.push(transactionHash); - }; - - try { - const {amount: txAmount, transactionHash} = payment; - - const isWithdrawal = +txAmount < 0; - - log('isWithdrawal = ', isWithdrawal); - - if (isEmpty(txAmount)) { - throw new Error('amount cannot be empty'); - } - - if (isEmpty(transactionHash)) { - throw new Error('transactionHash cannot be empty'); - } - - // existing transaction, if not duplicate - const [existingTransactionError, existingTransaction] = await awaitTo( - transactionExists(transactionHash) - ); - if (existingTransaction && !existingTransactionError) { - throw new Error('transaction already exists = ' + transactionHash); - } - - // get address of wallet - // verify transaction - const [errorVerifyingTransaction, confirmedTransaction] = await awaitTo( - verifyTransaction(transactionHash) - ); - - if (errorVerifyingTransaction) { - throw errorVerifyingTransaction; - } - - if (isEmpty(confirmedTransaction)) { - throw new Error('tx not found'); - } - - log('verifyTransaction confirmedTransaction = ', confirmedTransaction); - - await Promise.all( - confirmedTransaction.map(async (tx) => { - // const {address} = tx; - const {address, amount: satoshiAmount} = tx; - const satoshiToBtc = satoshiAmount / 100000000; - - if (isEmpty(address)) { - log('wallet address is empty ', {address, satoshiAmount, satoshiToBtc}); - return Promise.resolve({data: 'address is empty'}); - } - - // WITHDRAWAL -------------------------------------------------------------------------------------------------------------------------------------------------------- - // WITHDRAWAL -------------------------------------------------------------------------------------------------------------------------------------------------------- - // WITHDRAWAL -------------------------------------------------------------------------------------------------------------------------------------------------------- - if (isWithdrawal) { - const withdrawRequests = await WithdrawRequestModel.pagination({ - where: { - transactionHash, - }, - }); - - if (!isEmpty(withdrawRequests)) { - const withdrawRequest = withdrawRequests.pop(); - - log('withdrawRequest = ' + withdrawRequest); - - // update withdraw request - const updatedWithdraw = await WithdrawRequestModel.updateById( - withdrawRequest.id, - { - ...withdrawRequest, - status: WithdrawRequestStatus.completed, - } - ); - log('withdrawRequest updated = ' + updatedWithdraw); - markAsProcessed(transactionHash); - return Promise.resolve({data: updatedWithdraw}); - } - log('withdrawRequests not found'); - markAsProcessed(transactionHash); - return Promise.resolve({data: 'withdrawal not supported yet'}); - } - - // FOR DEPOSIT -------------------------------------------------------------------------------------------------------------------------------------------------------- - // FOR DEPOSIT -------------------------------------------------------------------------------------------------------------------------------------------------------- - // FOR DEPOSIT -------------------------------------------------------------------------------------------------------------------------------------------------------- - // find wallet address - const [errorAddress, addressWallet] = await awaitTo( - WalletAddressModel.findById(address) - ); - - if (isEmpty(addressWallet) || errorAddress) { - log('wallet address not found = ' + address); - markAsProcessed(transactionHash); - return Promise.resolve({data: 'wallet address not found = ' + address}); - } - - const owner = addressWallet.owner; - log('updateWallet with', { - satoshiToBtc, - owner, - address, - addressWallet, - transactionHash, - }); - - // this creates a new transaction - await updateWallet({ - owner, - amount: +satoshiToBtc, - source: WalletAddress.name, - sourceId: address, - currency: addressWallet.currency, - transactionHash, - }); - - // update transactions count for wallet address - await WalletAddressModel.updateById(address, { - ...addressWallet, - transactions: add(addressWallet.transactions || 0, 1), - }); - - // push to local queue, as it has been processed, to avoid checking it again - return markAsProcessed(transactionHash); - }) - ); - } catch (error) { - log('Error fullfilling btcpayserver transaction', error); - return null; - } -}; diff --git a/src/processors/btcpayserver/index.ts b/src/processors/btcpayserver/index.ts deleted file mode 100644 index 179ca8f..0000000 --- a/src/processors/btcpayserver/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {btcpayServerStore, btcpayServerToken, btcpayServerUrl} from './btcpayserver.config'; - -import {RoadmanBuild} from '@roadmanjs/core'; -import {isEmpty} from 'lodash'; -import {log} from '@roadmanjs/logs'; -import {startBtcpayserverPullingCron} from './btcpayserver.cron'; - -export const btcpayserverRoadman = async (args: RoadmanBuild): Promise => { - // TODO verify enabled providers - // if btcpayserver, start pulling queues - if (!isEmpty(btcpayServerToken) && !isEmpty(btcpayServerStore) && !isEmpty(btcpayServerUrl)) { - log(`btcpayserver enabled at ${btcpayServerUrl}`); - startBtcpayserverPullingCron(); - } else { - log( - `btcpayserver requires BTCPAYSERVER_TOKEN, BTCPAYSERVER_STORE, BTCPAYSERVER_URL and or BTCPAYSERVER_BTC, BTCPAYSERVER_XMR` - ); - } - - // ...other providers - - return args; -}; - -export * from './blockchain'; -export * from './btcpayserver'; -export * from './btcpayserver.config'; -export * from './btcpayserver.queue'; -export * from './btcpayserver.cron'; -export * from './rates'; diff --git a/src/processors/btcpayserver/rates/index.ts b/src/processors/btcpayserver/rates/index.ts deleted file mode 100644 index e893bdc..0000000 --- a/src/processors/btcpayserver/rates/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import {REDIS_URL, verbose} from 'roadman'; -import {btcpayServerStore, btcpayServerToken, btcpayServerUrl} from '../btcpayserver.config'; - -import Redis from 'ioredis'; -// generateAddress -// [cron] getAllTransactions -> settle -import axios from 'axios'; -import {isEmpty} from 'lodash'; - -export class RatesCache { - redis: Redis; - constructor() { - this.redis = new Redis(REDIS_URL); - } - - async getPair(pair) { - return new Promise((resolve) => { - this.redis.get(pair, (err, result) => { - if (err) { - resolve(null); - } else { - resolve(JSON.parse(result)); - } - }); - }); - } - - async savePair(pair, value: any) { - return this.redis.set(pair, JSON.stringify(value)); - } -} - -interface BtcpayserverRate { - pair: string; - rate: number; - errors?: any[]; -} - -export const fetchRates = async (pairs: string, cache = false): Promise => { - try { - if (cache) { - const ratesCache = new RatesCache(); - const rates = await Promise.all( - pairs.split(',').map((pair) => ratesCache.getPair(pair)) - ); - return rates as any; - } - - const endpoint = `${btcpayServerUrl}/stores/${btcpayServerStore}/rates?currencyPair=${pairs - .split(',') - .join('¤cyPair=')}`; - - const {data} = await axios.get(endpoint, { - headers: { - Authorization: `token ${btcpayServerToken}`, - }, - }); - - return data.map((rate) => ({ - pair: rate.currencyPair, - rate: +rate.rate, - })); - } catch (error) { - console.log('Error getting store rates:', error); - return []; - } -}; - -export const fetchRatesSaveToCache = async (pairs: string): Promise => { - try { - const cache = new RatesCache(); - const rates = await fetchRates(pairs); - if (!isEmpty(rates)) { - const savedPairs = await rates.map(async (rate) => cache.savePair(rate.pair, rate)); - verbose('savedPairs', savedPairs.length); - } - } catch (error) { - console.log('error fetchRatesSaveToCache', error); - return null; - } -}; diff --git a/src/processors/coinbase/rest/app.webhook.ts b/src/processors/coinbase/rest/app.webhook.ts deleted file mode 100644 index d7213d2..0000000 --- a/src/processors/coinbase/rest/app.webhook.ts +++ /dev/null @@ -1,53 +0,0 @@ -import express, {Router} from 'express'; - -import {CoinbaseNotification} from './interface'; -import {log} from '@roadmanjs/logs'; - -export const coinbaseWebhook = (): Router => { - const app = express.Router(); - - // TODO to delete - app.get('/ping', async (req, res) => { - log('stripe'); - res.json({stripe: 'stripe'}); - }); - - /** - * Full endpoint - */ - app.post('/webhook', async (request: any, response: any) => { - const payload: CoinbaseNotification = request.body; - - // TODO webhook verification - // const sig = request.headers['stripe-signature']; - // log('sig = ' + JSON.stringify(sig)); - // log('endpointSecret = ' + endpointSecret); - // log('webhook = ' + JSON.stringify(payload)); - - // logAmplitudeEvent(payload); - - // try { - // event = (await stripe.webhooks.constructEvent( - // request.body, - // sig, - // endpointSecret - // )) as any; - // } catch (err) { - // // catchError(err); - // return response.status(400).send(`Webhook Error: ${err.message}`); - // } - - switch (payload.type) { - case 'wallet:addresses:new-payment': { - // TODO amounts and fullfull - - break; - } - } - - // Return a response to acknowledge receipt of the event - response.json({received: true}); - }); - - return app; -}; diff --git a/src/processors/coinbase/rest/coinbase.methods.ts b/src/processors/coinbase/rest/coinbase.methods.ts deleted file mode 100644 index 00b614c..0000000 --- a/src/processors/coinbase/rest/coinbase.methods.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {Address, Client} from 'coinbase'; -import {coinbaseAddress, coinbaseKey, coinbaseSecret} from './config'; - -interface Args { - address?: string; - name: string; -} - -export const createAddress = async (args: Args): Promise

=> { - const {address = coinbaseAddress, name} = args; - const client = new Client({apiKey: coinbaseKey, apiSecret: coinbaseSecret}); - - return new Promise((res, rej) => { - client.getAccount(address, function (error, account) { - if (error) return rej(error); - account.createAddress({name}, function (err, address) { - if (err) return rej(err); - return res(address); - }); - }); - }); -}; diff --git a/src/processors/coinbase/rest/coinbase.test.ts b/src/processors/coinbase/rest/coinbase.test.ts deleted file mode 100644 index 0c8da05..0000000 --- a/src/processors/coinbase/rest/coinbase.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import 'mocha'; - -import {createAddress} from './coinbase.methods'; -import {expect} from 'chai'; - -describe('Coinbase', () => { - it('it should create a coinbase address', async () => { - const address = await createAddress({name: 'My cool address'}); - console.log('created the address', address); - expect(address).to.be.not.null; - }); -}); diff --git a/src/processors/coinbase/rest/config.ts b/src/processors/coinbase/rest/config.ts deleted file mode 100644 index cb4c3c8..0000000 --- a/src/processors/coinbase/rest/config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'dotenv/config'; - -import _get from 'lodash/get'; - -export const coinbaseAddress = _get(process.env, 'COINBASE_ADDRESS', ''); // support only one -export const coinbaseSecret = _get(process.env, 'COINBASE_SECRET', ''); -export const coinbaseKey = _get(process.env, 'COINBASE_KEY', ''); diff --git a/src/processors/coinbase/rest/index.ts b/src/processors/coinbase/rest/index.ts deleted file mode 100644 index 30d738e..0000000 --- a/src/processors/coinbase/rest/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './app.webhook'; -export * from './coinbase.methods'; diff --git a/src/processors/coinbase/rest/interface.ts b/src/processors/coinbase/rest/interface.ts deleted file mode 100644 index 76c3ba5..0000000 --- a/src/processors/coinbase/rest/interface.ts +++ /dev/null @@ -1,93 +0,0 @@ -// const responseNotificationDemo = { -// id: '5a6956f9-94bb-5c15-99f3-a2a690347674', -// type: 'wallet:addresses:new-payment', -// data: { -// id: 'c556eec7-53c2-576c-9158-c2eaa7c7ffca', -// address: 'mr4xYGzGMnw5tbbu2qyBBGdKwA4ktufbPy', -// name: null, -// created_at: '2015-01-31T20:49:02Z', -// updated_at: '2015-01-31T20:49:02Z', -// resource: 'address', -// resource_path: -// '/v2/accounts/c334783a-e72c-5e25-bf43-e182345f28c6/addresses/c556eec7-53c2-576c-9158-c2eaa7c7ffca', -// }, -// user: { -// id: '5b5b60b6-2cd3-5f88-8539-3a78cd111b49', -// resource: 'user', -// resource_path: '/v2/users/5b5b60b6-2cd3-5f88-8539-3a78cd111b49', -// }, -// account: { -// id: 'c334783a-e72c-5e25-bf43-e182345f28c6', -// resource: 'account', -// resource_path: '/v2/accounts/c334783a-e72c-5e25-bf43-e182345f28c6', -// }, -// delivery_attempts: 0, -// created_at: '2015-01-31T20:49:02Z', -// resource: 'notification', -// resource_path: '/v2/notifications/5a6956f9-94bb-5c15-99f3-a2a690347674', -// additional_data: { -// hash: '749f267f9d238c978fe3e79a6c1f34070b0b8e5a3de8623d1bd144760bf79a5f', -// amount: { -// amount: '0.10000000', -// currency: 'BTC', -// }, -// transaction: { -// id: 'fe7b729d-62c6-5978-95ca-6cc1f9d23119', -// resource: 'transaction', -// resource_path: -// '/v2/accounts/c334783a-e72c-5e25-bf43-e182345f28c6/transactions/fe7b729d-62c6-5978-95ca-6cc1f9d23119', -// }, -// }, -// }; - -interface Data { - id: string; - address: string; - name?: any; - created_at: Date; - updated_at: Date; - resource: string; - resource_path: string; -} - -interface User { - id: string; - resource: string; - resource_path: string; -} - -interface Account { - id: string; - resource: string; - resource_path: string; -} - -interface Amount { - amount: string; - currency: string; -} - -interface Transaction { - id: string; - resource: string; - resource_path: string; -} - -interface AdditionalData { - hash: string; - amount: Amount; - transaction: Transaction; -} - -export interface CoinbaseNotification { - id: string; - type: string; - data: Data; - user: User; - account: Account; - delivery_attempts: number; - created_at: Date; - resource: string; - resource_path: string; - additional_data: AdditionalData; -} diff --git a/src/processors/index.ts b/src/processors/index.ts deleted file mode 100644 index b278ad6..0000000 --- a/src/processors/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './stripe'; -export * from './nowpayments'; -export * from './btcpayserver'; -export * from './monerox'; diff --git a/src/processors/kraken/rates/index.ts b/src/processors/kraken/rates/index.ts deleted file mode 100644 index 1cdb608..0000000 --- a/src/processors/kraken/rates/index.ts +++ /dev/null @@ -1,102 +0,0 @@ -import {PairRate, RatesCache} from '../../shared'; - -// generateAddress -// [cron] getAllTransactions -> settle -import axios from 'axios'; -import {isEmpty} from 'lodash'; -import {log} from '@roadmanjs/logs'; - -interface PublicTickerResponse { - error: any[]; - result: Result; -} - -interface Result { - [key: string]: Xxbtzusd; -} - -interface Xxbtzusd { - a: string[]; - b: string[]; - c: string[]; - v: string[]; - p: string[]; - t: number[]; - l: string[]; - h: string[]; - o: string; -} - -export const fetchRates = async (pairs: string, cache = false): Promise => { - try { - if (cache) { - const ratesCache = new RatesCache(); - const rates = await Promise.all( - pairs.split(',').map((pair) => ratesCache.getPair(pair)) - ); - - if (!rates.some((rate) => !rate) && !rates.some((rate) => Number.isNaN(rate.rate))) { - log('rates cache', rates); - return rates as any; - } - } - - const getRates = async (pairrr: string) => { - const pairRate = pairrr.replaceAll('_', ''); - const endpoint = `https://api.kraken.com/0/public/Ticker?pair=${pairRate}`; - - try { - const {data} = await axios.get(endpoint); - - if (data?.error?.length) { - throw new Error(data?.error as any); - } - - const resultsKeys = Object.keys(data?.result); - const firstKey = resultsKeys[0]; - if (!firstKey) { - throw new Error('No data found'); - } - - const rateData = data.result[firstKey]; - if (!rateData) { - throw new Error('No data found'); - } - - if (!rateData.c || !rateData.c[0] || Number.isNaN(+rateData.c[0])) { - throw new Error('No data found'); - } - - return { - pair: pairrr, - rate: +rateData.c[0], - }; - } catch (error) { - return null; - } - }; - - const rates = await Promise.all(pairs.split(',').map(getRates)); - - log('rates', rates); - - return rates; - } catch (error) { - console.log('Error getting store rates:', error); - return []; - } -}; - -export const fetchRatesSaveToCache = async (pairs: string): Promise => { - try { - const cache = new RatesCache(); - const rates = await fetchRates(pairs); - if (!isEmpty(rates)) { - const savedPairs = await rates.map(async (rate) => cache.savePair(rate.pair, rate)); - log('savedPairs', savedPairs.length); - } - } catch (error) { - console.log('error fetchRatesSaveToCache', error); - return null; - } -}; diff --git a/src/processors/kraken/rates/kraken.test.ts b/src/processors/kraken/rates/kraken.test.ts deleted file mode 100644 index 80dd505..0000000 --- a/src/processors/kraken/rates/kraken.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import "mocha"; - -import { expect } from "chai"; -import { fetchRates } from "." - -describe("Kraken Rates Processor", () => { - it("should pass", async () => { - // Test - const rates = await fetchRates('BTC_USD,XMR_USD'); - console.log("rates", rates); - // Assert - expect(rates).to.be.an('array'); - }); -}); \ No newline at end of file diff --git a/src/processors/monerox/index.ts b/src/processors/monerox/index.ts deleted file mode 100644 index e2eec1c..0000000 --- a/src/processors/monerox/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {moneroxUrl, moneroxWallet} from './monerox.config'; - -import {RoadmanBuild} from '@roadmanjs/core'; -import {isEmpty} from 'lodash'; -import {log} from '@roadmanjs/logs'; -import {startXmrPullingCron} from './monerox.cron'; - -export const moneroserverRoadman = async (args: RoadmanBuild): Promise => { - // TODO verify enabled providers - // if btcpayserver, start pulling queues - if (!isEmpty(moneroxUrl) && !isEmpty(moneroxWallet)) { - log(`moneroserver enabled at ${moneroxUrl}`); - startXmrPullingCron(); - } else { - log(`moneroserver requires MONEROX_URL, MONEROX_WALLET`); - } - - // ...other providers - - return args; -}; - -export * from './monerox.config'; -export * from './monerox.cron'; -export * from './monerox'; -export * from './monerox.queue'; diff --git a/src/processors/monerox/monerox.config.ts b/src/processors/monerox/monerox.config.ts deleted file mode 100644 index a36906f..0000000 --- a/src/processors/monerox/monerox.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'dotenv/config'; - -import _get from 'lodash/get'; - -export const moneroxCron = _get(process.env, 'MONEROX_CRON', '*/5 * * * *'); -export const moneroxUrl = _get(process.env, 'MONEROX_URL', ''); -export const moneroxWallet = _get(process.env, 'MONEROX_WALLET', ''); diff --git a/src/processors/monerox/monerox.cron.ts b/src/processors/monerox/monerox.cron.ts deleted file mode 100644 index f83421b..0000000 --- a/src/processors/monerox/monerox.cron.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {moneroxCron, moneroxWallet} from './monerox.config'; - -import cron from 'node-cron'; -import {fetchTransactionsXmr} from './monerox'; -// TODO move cron to k8s -import {isEmpty} from 'lodash'; -import {log} from '@roadmanjs/logs'; - -export function startXmrPullingCron() { - if (isEmpty(moneroxWallet)) { - log('monerox url empty'); - return; - } - - log('starting monerox cron'); - - cron.schedule(moneroxCron, async () => { - log('XmrPullingCron: '); - await fetchTransactionsXmr(); - }); -} diff --git a/src/processors/monerox/monerox.queue.ts b/src/processors/monerox/monerox.queue.ts deleted file mode 100644 index 46f1aa8..0000000 --- a/src/processors/monerox/monerox.queue.ts +++ /dev/null @@ -1,23 +0,0 @@ -// transaction => bull queue => fulfillBtcpayserver => update wallet - -import Queue from 'bull'; -import {REDIS_URL} from 'roadman'; -import {fulfillMonero, type MoneroxTx} from './monerox'; -import {log} from '@roadmanjs/logs'; -const moneroXMRqueue = new Queue('moneroXMR', REDIS_URL, {}); - -moneroXMRqueue.process(async (job) => { - const data = job.data; - const {transaction} = data; - log('processing transaction', transaction); - - try { - await fulfillMonero(transaction); - } catch (error) { - log('error processing transaction', error); - } -}); - -export const addTxToXmrQueue = (transaction: MoneroxTx) => { - moneroXMRqueue.add({transaction}); -}; diff --git a/src/processors/monerox/monerox.ts b/src/processors/monerox/monerox.ts deleted file mode 100644 index 0224aaf..0000000 --- a/src/processors/monerox/monerox.ts +++ /dev/null @@ -1,357 +0,0 @@ -import {WalletAddress, WalletAddressModel, updateWallet, walletSatoshiToUnit} from '../../wallet'; -import WithdrawRequestModel, {WithdrawRequestStatus} from '../../wallet/withdrawRequest.model'; -import {add, isEmpty} from 'lodash'; -import {awaitTo, log, verbose} from 'couchset/dist/utils'; -import {moneroxUrl, moneroxWallet} from './monerox.config'; -import {transactionExists, txDest} from '../btcpayserver'; - -import {addTxToXmrQueue} from './monerox.queue'; -import axios from 'axios'; - -const moneroApi = axios.create({ - baseURL: moneroxUrl, - headers: {'Content-Type': 'application/json'}, -}); - -interface Res { - success: boolean; - message: string; - data: T; -} - -export interface SentMoneroxTx { - isOutgoing: boolean; - isConfirmed: boolean; - numConfirmations: number; - inTxPool: boolean; - relay: boolean; - isRelayed: boolean; - isMinerTx: boolean; - isFailed: boolean; - isLocked: boolean; - ringSize: number; - outgoingTransfer: OutgoingTransfer; - unlockTime: string; - lastRelayedTimestamp: number; - isDoubleSpendSeen: boolean; - fee: string; - inputs: Input[]; - fullHex: string; - hash: string; - key: string; - metadata: string; - weight: number; -} - -export interface MoneroxTx { - isConfirmed: boolean; - inTxPool: boolean; - isRelayed: boolean; - relay: boolean; - isFailed: boolean; - isMinerTx: boolean; - numConfirmations: number; - isDoubleSpendSeen: boolean; - fee: string; - isLocked: boolean; - hash: string; - unlockTime: string; - isIncoming: boolean; - incomingTransfers: IncomingTransfer[]; - outgoingTransfer: OutgoingTransfer; - isOutgoing: boolean; -} - -export interface OutgoingTransfer { - amount: string; - destinations: Destination[]; - accountIndex: number; - subaddressIndices: number[]; -} - -export interface Destination { - address: string; - amount: string; -} -export interface Input { - keyImage: KeyImage; -} - -export interface KeyImage { - hex: string; -} - -export interface IncomingTransfer { - address: string; - amount: string; - accountIndex: number; - subaddressIndex: number; - numSuggestedConfirmations: number; -} - -// getTx, sendTx, address - -export const generateAddressXmr = async (): Promise<{address: string} | null> => { - const endpoint = `/wallet/${moneroxWallet}/address`; - - try { - const {data} = await moneroApi.post>(endpoint, { - headers: { - // Authorization: `token ${btcpayServerToken}`, - }, - }); - - if (!data || !data.success) { - throw new Error(data.message); - } - - return data.data; - } catch (error) { - console.error('Error generating address:', error); - return null; - } -}; - -export const createTransactionsXmr = async (destinations: txDest): Promise => { - try { - const endpoint = `/wallet/${moneroxWallet}/send`; - - const {data} = await moneroApi.post>(endpoint, destinations, { - headers: { - // Authorization: `token ${btcpayServerToken}`, - }, - }); - - if (!data || !data.success) { - throw new Error(data.message); - } - - return data.data; - } catch (error) { - console.error('Error generating transactions:', error); - return null; - } -}; - -export const fetchTransactionsXmr = async () => { - try { - const endpoint = `/wallet/${moneroxWallet}/txs`; - - const {data} = await moneroApi.post>(endpoint, { - headers: { - // Authorization: `token ${btcpayServerToken}`, - }, - }); - - // if (!isEmpty(data)) { - // await btcPayServerProcessTransactions(data); - // } - - if (!data || !data.success) { - throw new Error(data.message); - } - - // process transactions - if (!isEmpty(data)) { - await xmrProcessTransactions(data.data); - } - - return data.data; - } catch (error) { - console.error('Error generating transactions:', error); - return null; - } -}; - -const localProcessedTransactions = []; - -export const xmrProcessTransactions = async (transactions: MoneroxTx[]) => { - try { - // check if transaction exists in local queue - const transactionsToProcess = transactions.filter( - (transaction) => !localProcessedTransactions.includes(transaction.hash) - ); - - // then check if transaction exists in db - // if it exists, then add it to local queue - const transactionsToCheckAndProcess = await Promise.all( - transactionsToProcess.map(async (transaction) => { - if (await transactionExists(transaction.hash)) { - localProcessedTransactions.push(transaction.hash); - return {transaction, transactionId: transaction.hash, exists: true}; - } - - return {transaction, transactionId: transaction.hash, exists: false}; - }) - ); - - // if not, then add to bull queue. - const transactionsToPushToQueue = transactionsToCheckAndProcess.filter( - (transaction) => !transaction.exists - ); - transactionsToPushToQueue.forEach((transaction) => { - addTxToXmrQueue(transaction.transaction); - }); - } catch (error) { - console.error('Error processing transactions:', error); - return null; - } -}; - -export const fulfillMonero = async (payment: MoneroxTx): Promise => { - verbose('monero: Fulfilling monero', payment); - - const CURRENCY = 'XMR'; - const satoshiToUnit = walletSatoshiToUnit[CURRENCY]; - const markAsProcessed = async (transactionHash: string) => { - // push to local queue, as it has been processed, to avoid checking it again - log('monero: markAsProcessed', transactionHash); - localProcessedTransactions.push(transactionHash); - }; - - try { - const { - hash: transactionHash, - isConfirmed, - isIncoming, - incomingTransfers, - outgoingTransfer, - } = payment; - - let isWithdrawal = false; - let txAmount = null; - let confirmedTransaction = []; - if (isIncoming) { - confirmedTransaction = incomingTransfers.map((it) => ({ - address: it.address, - amount: it.amount, - })); - - txAmount = incomingTransfers.reduce((acc, it) => { - return acc + +it.amount; - }, 0); - } else { - txAmount = +outgoingTransfer.amount; - confirmedTransaction = outgoingTransfer.destinations.map((dest) => ({ - address: dest.address, - amount: +dest.amount, - })); - isWithdrawal = true; - } - - if (!isConfirmed) { - log('monero: transaction not confirmed yet'); - return null; - } - - log('monero: isWithdrawal = ', isWithdrawal); - - if (!Number.isInteger(txAmount)) { - throw new Error('amount cannot be empty'); - } - - if (isEmpty(transactionHash)) { - throw new Error('transactionHash cannot be empty'); - } - - // existing transaction, if not duplicate - const [existingTransactionError, existingTransaction] = await awaitTo( - transactionExists(transactionHash) - ); - if (existingTransaction && !existingTransactionError) { - throw new Error('transaction already exists = ' + transactionHash); - } - - log('monero: verifyTransaction confirmedTransaction = ', confirmedTransaction); - - await Promise.all( - confirmedTransaction.map(async (tx) => { - // const {address} = tx; - const {address, amount: satoshiAmount} = tx; - const satoshiToBtc = satoshiAmount / satoshiToUnit; - - if (isEmpty(address)) { - log('monero: wallet address is empty ', {address, satoshiAmount, satoshiToBtc}); - return Promise.resolve({data: 'address is empty'}); - } - - // WITHDRAWAL -------------------------------------------------------------------------------------------------------------------------------------------------------- - // WITHDRAWAL -------------------------------------------------------------------------------------------------------------------------------------------------------- - // WITHDRAWAL -------------------------------------------------------------------------------------------------------------------------------------------------------- - if (isWithdrawal) { - const withdrawRequests = await WithdrawRequestModel.pagination({ - where: { - transactionHash, - }, - }); - - if (!isEmpty(withdrawRequests)) { - const withdrawRequest = withdrawRequests.pop(); - - log('monero: withdrawRequest = ' + withdrawRequest); - - // update withdraw request - const updatedWithdraw = await WithdrawRequestModel.updateById( - withdrawRequest.id, - { - ...withdrawRequest, - status: WithdrawRequestStatus.completed, - } - ); - log('monero: withdrawRequest updated = ' + updatedWithdraw); - markAsProcessed(transactionHash); - return Promise.resolve({data: updatedWithdraw}); - } - log('monero: withdrawRequests not found'); - markAsProcessed(transactionHash); - return Promise.resolve({data: 'withdrawal not supported yet'}); - } - - // FOR DEPOSIT -------------------------------------------------------------------------------------------------------------------------------------------------------- - // FOR DEPOSIT -------------------------------------------------------------------------------------------------------------------------------------------------------- - // FOR DEPOSIT -------------------------------------------------------------------------------------------------------------------------------------------------------- - // find wallet address - const [errorAddress, addressWallet] = await awaitTo( - WalletAddressModel.findById(address) - ); - - if (isEmpty(addressWallet) || errorAddress) { - log('monero: wallet address not found = ' + address); - markAsProcessed(transactionHash); - return Promise.resolve({data: 'wallet address not found = ' + address}); - } - - const owner = addressWallet.owner; - log('monero: updateWallet with', { - satoshiToBtc, - owner, - address, - addressWallet, - transactionHash, - }); - - // this creates a new transaction - await updateWallet({ - owner, - amount: +satoshiToBtc, - source: WalletAddress.name, - sourceId: address, - currency: addressWallet.currency, - transactionHash, - }); - - // update transactions count for wallet address - await WalletAddressModel.updateById(address, { - ...addressWallet, - transactions: add(addressWallet.transactions || 0, 1), - }); - - // push to local queue, as it has been processed, to avoid checking it again - return markAsProcessed(transactionHash); - }) - ); - } catch (error) { - log('Error fullfilling xmr transaction', error); - return null; - } -}; diff --git a/src/processors/nowpayments/app.webhook.ts b/src/processors/nowpayments/app.webhook.ts deleted file mode 100644 index 5af0ef3..0000000 --- a/src/processors/nowpayments/app.webhook.ts +++ /dev/null @@ -1,149 +0,0 @@ -import {createNowPayment, fulfillNowPayment, getPaymentStatus} from './nowpayments.methods'; -import express, {Router} from 'express'; -import {isDev, nowPaymentsCallbackUrl, nowPaymentsSecretIPN} from './config'; - -import type {GetPaymentStatusReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/get-payment-status'; -import type {ICreatePayment} from '@nowpaymentsio/nowpayments-api-js/src/types'; -import crypto from 'crypto'; -import isEmpty from 'lodash/isEmpty'; -import {log} from '@roadmanjs/logs'; -import {v4 as uuidv4} from 'uuid'; - -export const nowpaymentsExpressify = (): Router => { - const app = express.Router(); - - app.get('/ping', async (req, res) => { - log('now'); - res.json({nowpayments: 'now'}); - }); - - // /status?id=blaseblase - app.get('/status', async (req, res) => { - try { - const payId = req.query.id; - log('status', payId); - - if (isEmpty(payId)) { - throw new Error('payment id cannot be empty'); - } - - const paymentStatus = await getPaymentStatus(payId as string); - return res.json(paymentStatus); - } catch (error) { - return res.json({error: error && error.message}); - } - }); - - // for any custom UI, e.g popup with returned info - app.post('/createpayment', async (req, res) => { - // TODO verify body - const { - owner, - price_amount = 10, - price_currency, - pay_currency = price_currency, - ipn_callback_url = nowPaymentsCallbackUrl, - order_id = `${owner}-${uuidv4()}`, - order_description = `${order_id}-Payment`, - // TODO add other params if require - ...otherArgs - } = req.body || {}; - - const createPayment: ICreatePayment = { - price_amount, - price_currency, - pay_currency, - ipn_callback_url, - order_id, - order_description, - ...otherArgs, - }; - - log('createpayment', {createPayment, owner}); - - try { - const {payment, transaction} = await createNowPayment(createPayment, owner); - return res.json({payment, transaction}); - } catch (error) { - res.json({error: error && error.message}); - } - }); - - // for stripe checkout flow - // app.post('/createinvoice', async (req, res) => { - // // TODO verify body - // const { - // owner, - // price_amount = 10, - // price_currency, - // ipn_callback_url = nowPaymentsCallbackUrl, - // order_id = `${owner}-${uuidv4()}`, - // order_description = `${order_id}-Payment`, - // success_url, - // cancel_url, - // ...otherArgs - // } = req.body || {}; - - // const createInvoice: ICreateInvoice = { - // price_amount, - // price_currency, - // ipn_callback_url, - // order_id, - // order_description, - // success_url, - // cancel_url, - // ...otherArgs, - // }; - - // log('createinvoice', {createInvoice, owner}); - - // try { - // const {invoice, transaction} = await createNowPaymentInvoice(createInvoice, owner); - // return res.json({invoice, transaction}); - // } catch (error) { - // res.json({error: error && error.message}); - // } - // }); - - /** - * Full endpoint - */ - app.post('/webhook', async (request: any, response: any) => { - const payload: GetPaymentStatusReturn = request.body; - - log('webhook nowpayments payload', payload); - if (!isDev) { - // Verify the signature - try { - const signatureFromHeader = request.headers['x-nowpayments-sig']; - // TODO needs to be tested - const hmac = crypto.createHmac('sha512', nowPaymentsSecretIPN); - hmac.update(JSON.stringify(payload, Object.keys(payload).sort())); - const signedSignature = hmac.digest('hex'); - - if (signatureFromHeader !== signedSignature) { - throw new Error('Signature does not match like from Nowpayments'); - } - } catch (err) { - log(`Error: webhook nowpayments payload ${err && err.message}`); - return response.status(400).send(`Webhook Error: ${err.message}`); - } - } - - log('webhook nowpayments verified', payload); - - switch (payload.payment_status) { - case 'success': { - await fulfillNowPayment(payload); - // TODO fullfill payment - break; - } - // todo canceled - } - - // Return a response to acknowledge receipt of the event - response.json({received: true}); - }); - - return app; -}; diff --git a/src/processors/nowpayments/config.ts b/src/processors/nowpayments/config.ts deleted file mode 100644 index 3563bd6..0000000 --- a/src/processors/nowpayments/config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import 'dotenv/config'; - -import _get from 'lodash/get'; -import isEmpty from 'lodash/isEmpty'; - -export const nodeEnv = _get(process.env, 'NODE_ENV'); -export const isDev = nodeEnv !== 'production'; -export const nowPaymentsSandbox = _get(process.env, 'NOWPAYMENTS_SANDBOX', ''); -export const nowPaymentsKey = _get(process.env, 'NOWPAYMENTS_KEY', ''); -export const nowPaymentsSecretIPN = _get(process.env, 'NOWPAYMENTS_SECRET_IPN', ''); -export const nowPaymentsCallbackUrl = _get(process.env, 'NOWPAYMENTS_CALLBACK_URL', ''); -export const nowPaymentsPayCurrency = _get(process.env, 'NOWPAYMENTS_PAY_CURRENCY', 'doge'); -export const isNowPaymentsSandbox = !isEmpty(nowPaymentsSandbox); diff --git a/src/processors/nowpayments/index.ts b/src/processors/nowpayments/index.ts deleted file mode 100644 index 97615a5..0000000 --- a/src/processors/nowpayments/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import NowPaymentsResolver from './nowpayments.resolver'; -import {RoadmanBuild} from '@roadmanjs/core'; -import isEmpty from 'lodash/isEmpty'; -import {log} from '@roadmanjs/logs'; -import {nowPaymentsKey} from './config'; -import {nowpaymentsExpressify} from './app.webhook'; - -export const getNowPaymentsResolvers = () => [NowPaymentsResolver]; - -export const nowPaymentsRoadman = async (roadmanArgs: RoadmanBuild) => { - // if stripe env is null do not enable it - if (isEmpty(nowPaymentsKey)) { - log('Cannot enable nowpayments, keys are missing'); - } else { - log('Nowpayments enabled'); - roadmanArgs.app.use('/nowpayments', nowpaymentsExpressify()); - } - return roadmanArgs; -}; - -// exports all for customizations -export * from './config'; -export * from './app.webhook'; -export * from './nowpayments.methods'; diff --git a/src/processors/nowpayments/nowpayments.methods.ts b/src/processors/nowpayments/nowpayments.methods.ts deleted file mode 100644 index c88b2e4..0000000 --- a/src/processors/nowpayments/nowpayments.methods.ts +++ /dev/null @@ -1,203 +0,0 @@ -import type { - Error, - ICreateInvoice, - ICreatePayment, -} from '@nowpaymentsio/nowpayments-api-js/src/types'; -import {Transaction, TransactionModel} from '../../transactions'; -import {isNowPaymentsSandbox, nowPaymentsKey} from './config'; -import {log, verbose} from '@roadmanjs/logs'; - -import type {CreatePaymentReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/create-payment'; -import type {GetPaymentStatusReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/get-payment-status'; -import type {InvoiceReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/create-invoice'; -import NowApi from './wrapper/api'; -// import NowPaymentsApi from '@nowpaymentsio/nowpayments-api-js'; -import {awaitTo} from 'couchset/dist/utils'; -import isEmpty from 'lodash/isEmpty'; -import {updateWallet} from '../../wallet'; - -const sandbox = isNowPaymentsSandbox; - -/** - * Create a now payment - * @param payment - * @param owner - * @returns - */ -export const createNowPayment = async ( - payment: ICreatePayment, - owner: string -): Promise<{payment: CreatePaymentReturn; transaction: Transaction}> => { - try { - const api = new NowApi({apiKey: nowPaymentsKey, sandbox}); // your api key - const [nowPaymentError, nowPaymentCreated] = await awaitTo(api.createPayment(payment)); - - if (nowPaymentError) { - throw nowPaymentError; - } - - log(`createNowPayment created ${JSON.stringify(nowPaymentCreated)}`); - - // create a transaction - const newTransaction: Transaction = { - type: 'deposit', - owner, - source: 'nowpayments', - sourceId: `${nowPaymentCreated.payment_id}`, // for checking status from client - status: 'waiting', - amount: payment.price_amount, - currency: payment.price_currency, - }; - - const createTransaction = await TransactionModel.create(newTransaction); // save transaction - log(`newTransaction created ${JSON.stringify(createTransaction)}`); - return {transaction: createTransaction, payment: nowPaymentCreated as CreatePaymentReturn}; - } catch (error) { - log(`error createNowPayment ${error && error.message}`); - return null; - } -}; - -/** - * Creates a nowpayment invoice invoice - * @param invoice - * @param owner - * @returns - */ -export const createNowPaymentInvoice = async ( - invoice: ICreateInvoice, - owner: string -): Promise<{transaction: Transaction; invoice: InvoiceReturn}> => { - try { - const api = new NowApi({apiKey: nowPaymentsKey, sandbox}); // your api key - const [nowInvoiceError, nowPaymentInvoiceCreated] = await awaitTo( - api.createInvoice(invoice) - ); - - if (nowInvoiceError) { - throw nowInvoiceError; - } - - if (!nowPaymentInvoiceCreated.order_id) { - throw new Error('error creating invoice'); - } - - log(`nowPaymentInvoiceCreated created ${JSON.stringify(nowPaymentInvoiceCreated)}`); - - // create a transaction - const newTransaction: Transaction = { - type: 'deposit', - owner, - source: 'nowpayments', - sourceId: '' + nowPaymentInvoiceCreated.id, // for checking status from client - status: 'waiting', - amount: invoice.price_amount, - currency: invoice.price_currency, - }; - - const createTransaction = await TransactionModel.create(newTransaction); // save transaction - log(`newTransaction created ${JSON.stringify(createTransaction)}`); - return {transaction: createTransaction, invoice: nowPaymentInvoiceCreated as InvoiceReturn}; - } catch (error) { - log(`error createNowPaymentInvoice ${error && error.message}`); - return null; - } -}; - -export const findNowPaymentTransaction = async (sourceId: string): Promise => { - try { - const transactions = await TransactionModel.pagination({ - select: '*', // just use selectors - where: { - sourceId, - }, - }); - - if (!isEmpty(transactions)) { - return transactions[0]; // return the first one - } - - throw new Error('Transaction not found'); - } catch (error) { - log('error finding nowpayments transaction'); - return null; - } -}; - -/** - * Get the payment status - * @param id - * @returns - */ -export const getPaymentStatus = async ( - id: string -): Promise<{payment: GetPaymentStatusReturn; transaction: Transaction}> => { - try { - const api = new NowApi({apiKey: nowPaymentsKey, sandbox}); // your api key - const [errorPaymentStatus, paymentStatus] = await awaitTo(api.getStatus(id)); - if (errorPaymentStatus) { - throw errorPaymentStatus; - } - - const existingTransaction = await findNowPaymentTransaction('' + paymentStatus.payment_id); - if (!existingTransaction) { - throw new Error('Existing transaction not found'); - } - - log('existing transaction', existingTransaction); - - // update payment status - // @ts-ignore - const updateTransaction = await TransactionModel.save({ - ...existingTransaction, - status: paymentStatus.payment_status, - }); - - return {transaction: updateTransaction, payment: paymentStatus}; - } catch (error) { - log('error getPaymentStatus', error); - return null; - } -}; - -export const fulfillNowPayment = async ( - paymentStatusData: GetPaymentStatusReturn -): Promise => { - verbose('Fulfilling fulfillNowPayment paymentStatusData', paymentStatusData); - - try { - // TODO always USD - const {price_amount: amount, payment_id} = paymentStatusData; - - const sourceId = `${payment_id}`; - - if (amount) { - // find the waiting transaction and delete it - // if waiting transaction does not exist, then this is a duplicate notification - - // TODO verify if requested from waiting is equal to what we have from webhhok - const [errorWaitingTransaction, waitingTransaction] = await awaitTo( - findNowPaymentTransaction(sourceId) - ); - - if (errorWaitingTransaction) { - throw errorWaitingTransaction; - } - - const owner = waitingTransaction.owner; - - await TransactionModel.delete(waitingTransaction.id); // delete the waiting transaction - - // this creates a new transaction - await updateWallet({ - owner, - amount: +amount, - source: 'nowpayments', - sourceId, - currency: 'USD', - }); - } - } catch (error) { - log(`Error fullfilling nowpayment order`, error); - } -}; diff --git a/src/processors/nowpayments/nowpayments.modal.ts b/src/processors/nowpayments/nowpayments.modal.ts deleted file mode 100644 index 6d0647b..0000000 --- a/src/processors/nowpayments/nowpayments.modal.ts +++ /dev/null @@ -1,85 +0,0 @@ -import {Field, ObjectType} from 'couchset'; - -import {Transaction} from '../../transactions'; - -@ObjectType() -export class NowPaymentsGetPaymentStatus { - @Field(() => Number, {nullable: true}) - payment_id: number; - @Field(() => String, {nullable: true}) - payment_status: string; - @Field(() => String, {nullable: true}) - pay_address: string; - @Field(() => Number, {nullable: true}) - price_amount: number; - @Field(() => String, {nullable: true}) - price_currency: string; - @Field(() => Number, {nullable: true}) - pay_amount: number; - @Field(() => Number, {nullable: true}) - actually_paid: number; - @Field(() => String, {nullable: true}) - pay_currency: string; - @Field(() => String, {nullable: true}) - order_id: string; - @Field(() => String, {nullable: true}) - order_description: string; - @Field(() => Number, {nullable: true}) - purchase_id: number; - @Field(() => String, {nullable: true}) - created_at: string; - @Field(() => String, {nullable: true}) - updated_at: string; - @Field(() => Number, {nullable: true}) - outcome_amount: number; - @Field(() => String, {nullable: true}) - outcome_currency: string; -} - -@ObjectType() -export class NowPaymentsCreatePayment { - @Field(() => Number, {nullable: true}) - payment_id: number; - @Field(() => String, {nullable: true}) - payment_status: string; - @Field(() => String, {nullable: true}) - pay_address: string; - @Field(() => Number, {nullable: true}) - price_amount: number; - @Field(() => String, {nullable: true}) - price_currency: string; - @Field(() => Number, {nullable: true}) - pay_amount: number; - @Field(() => String, {nullable: true}) - pay_currency: string; - @Field(() => String, {nullable: true}) - order_id: string; - @Field(() => String, {nullable: true}) - order_description: string; - @Field(() => String, {nullable: true}) - ipn_callback_url: string; - @Field(() => String, {nullable: true}) - created_at: string; - @Field(() => String, {nullable: true}) - updated_at: string; - @Field(() => Number, {nullable: true}) - purchase_id: number; -} - -@ObjectType() -export class CreatePaymentResponse { - @Field(() => NowPaymentsCreatePayment, {nullable: false}) - payment: NowPaymentsCreatePayment; - - @Field(() => Transaction, {nullable: false}) - transaction: Transaction; -} - -@ObjectType() -export class GetPaymentStatusResponse { - @Field(() => NowPaymentsGetPaymentStatus, {nullable: false}) - payment: NowPaymentsGetPaymentStatus; - - @Field(() => Transaction, {nullable: false}) - transaction: Transaction; -} diff --git a/src/processors/nowpayments/nowpayments.resolver.ts b/src/processors/nowpayments/nowpayments.resolver.ts deleted file mode 100644 index 4221622..0000000 --- a/src/processors/nowpayments/nowpayments.resolver.ts +++ /dev/null @@ -1,104 +0,0 @@ -import {Resolver, Query, Arg, UseMiddleware, Ctx, Mutation} from 'couchset'; -import {v4 as uuidv4} from 'uuid'; -import _get from 'lodash/get'; -import {log} from '@roadmanjs/logs'; -import type {ICreatePayment} from '@nowpaymentsio/nowpayments-api-js/src/types'; -import {isAuth, ContextType} from '@roadmanjs/auth'; -import {nowPaymentsCallbackUrl, nowPaymentsPayCurrency} from './config'; -import {createNowPayment, getPaymentStatus} from './nowpayments.methods'; -import isEmpty from 'lodash/isEmpty'; -import {CreatePaymentResponse, GetPaymentStatusResponse} from './nowpayments.modal'; - -@Resolver() -export class NowPaymentsResolver { - // @Mutation(() => String) // todo return invoice and transaction - // @UseMiddleware(isAuth) - // async nowPaymentsCreateInvoice( - // @Ctx() ctx: ContextType, - // @Arg('amount', () => Number, {nullable: false}) payAmount: number, - // @Arg('currency', () => String, {nullable: true}) priceCurrency: string, - // @Arg('order_description', () => String, {nullable: true}) orderDescription: string, - // @Arg('success_url', () => String, {nullable: true}) successUrl: string, - // @Arg('cancel_url', () => String, {nullable: true}) cancelUrl: string - // ): Promise { - // const owner = _get(ctx, 'payload.userId', ''); - // const price_currency = priceCurrency || 'usd'; - // const order_id = `${owner}-${uuidv4()}`; - // const order_description = orderDescription || `${order_id}-Payment`; - - // try { - // const createInvoice: ICreateInvoice = { - // price_amount: payAmount, - // price_currency, - // ipn_callback_url: nowPaymentsCallbackUrl, - // order_id, - // order_description, - // success_url: successUrl, - // cancel_url: cancelUrl, - // }; - - // const {invoice: nowPaymentInvoiceCreated} = await createNowPaymentInvoice( - // createInvoice, - // owner - // ); - - // return nowPaymentInvoiceCreated.invoice_url; - // } catch (error) { - // log('error creating nowpayment invoice', error); - // return null; - // } - // } - - @Mutation(() => CreatePaymentResponse) - @UseMiddleware(isAuth) - async nowPaymentsCreatePayment( - @Ctx() ctx: ContextType, - @Arg('amount', () => Number, {nullable: false}) payAmount: number, - @Arg('order_description', () => String, {nullable: true}) orderDescription: string - ): Promise { - const owner = _get(ctx, 'payload.userId', ''); - const price_currency = 'usd'; // by default - const order_id = `${owner}-${uuidv4()}`; - const order_description = orderDescription || `${order_id}-Payment`; - - try { - const createPayment: ICreatePayment = { - price_amount: payAmount, - price_currency, - pay_currency: nowPaymentsPayCurrency, - ipn_callback_url: nowPaymentsCallbackUrl, - order_id, - order_description, - }; - - const paymentAndTransaction = await createNowPayment(createPayment, owner); - - return paymentAndTransaction; - } catch (error) { - log('error creating nowpayment invoice', error); - return null; - } - } - - @Query(() => GetPaymentStatusResponse) - @UseMiddleware(isAuth) - async nowPaymentsGetStatus( - @Arg('id', () => String, {nullable: false}) payId: string - ): Promise { - try { - log('nowPaymentsGetStatus', payId); - - if (isEmpty(payId)) { - throw new Error('payment id cannot be empty'); - } - - const paymentStatus = await getPaymentStatus(payId); - return paymentStatus; - } catch (error) { - log('error getting payment status', error); - return null; - } - } -} - -export default NowPaymentsResolver; diff --git a/src/processors/nowpayments/nowpayments.test.ts b/src/processors/nowpayments/nowpayments.test.ts deleted file mode 100644 index fe8ce6e..0000000 --- a/src/processors/nowpayments/nowpayments.test.ts +++ /dev/null @@ -1,11 +0,0 @@ -import 'mocha'; - -import {expect} from 'chai'; - -describe('Nowpayments', () => { - it('it should create a coinbase address', async () => { - // const address = await createAddress({name: 'My cool address'}); - // console.log('created the address', address); - // expect(address).to.be.not.null; - }); -}); diff --git a/src/processors/nowpayments/wrapper/api.test.ts b/src/processors/nowpayments/wrapper/api.test.ts deleted file mode 100644 index 60b10d1..0000000 --- a/src/processors/nowpayments/wrapper/api.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import "reflect-metadata"; -import 'mocha'; - -import {isNowPaymentsSandbox, nowPaymentsKey} from '../config'; - -import NowApi from './api'; -import {expect} from 'chai'; -import { getPaymentStatus } from '../nowpayments.methods'; - -const api = new NowApi({apiKey: nowPaymentsKey, sandbox: isNowPaymentsSandbox}); - -describe('NowPayments', () => { - // it('it should create a demo payment', async () => { - - // const demoPayment = { - // // owner: '', - // // case: 'success', - // price_amount: 3999.5, - // price_currency: 'usd', - // pay_amount: 0.8102725, - // pay_currency: 'btc', - // ipn_callback_url: 'https://nowpayments.io', - // order_id: 'RGDBP-21314 2', - // order_description: 'Apple Macbook Pro 2019 x 2', - // }; - - // const createPayment = await api.createPayment(demoPayment); - - // console.log("created payment", createPayment); - - // expect(createPayment.order_id).not.to.be.null; - // }); - - it('it should get payment status', async () => { - const paymentId = "5838721392"; - const paymentStatus = await getPaymentStatus(paymentId); - console.log("paymentStatus", paymentStatus); - - expect(paymentStatus.payment.order_id).not.to.be.null; - }) -}); diff --git a/src/processors/nowpayments/wrapper/api.ts b/src/processors/nowpayments/wrapper/api.ts deleted file mode 100644 index 4676277..0000000 --- a/src/processors/nowpayments/wrapper/api.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type {ICreateInvoice, ICreatePayment} from '@nowpaymentsio/nowpayments-api-js/src/types'; -import axios, {AxiosInstance} from 'axios'; - -import type {CreatePaymentReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/create-payment'; -import type {GetPaymentStatusReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/get-payment-status'; -import type {InvoiceReturn} from '@nowpaymentsio/nowpayments-api-js/src/actions/create-invoice'; - -class NowApi { - apiKey: string; - api: AxiosInstance; - - constructor({apiKey, sandbox}: {apiKey: string; sandbox?: boolean}) { - this.apiKey = apiKey; - this.api = axios.create({ - baseURL: sandbox - ? 'https://api-sandbox.nowpayments.io/v1/' - : 'https://api.nowpayments.io/v1/', - timeout: 10000, - headers: {'x-api-key': apiKey}, - validateStatus: () => true, - }); - } - - async createPayment(args: ICreatePayment): Promise { - const {data} = await this.api.post('/payment', args); - - if (!data.order_id) { - throw new Error(`${data.code} ${data.message}`); - } - return data; - } - - async createInvoice(args: ICreateInvoice): Promise { - const {data} = await this.api.post('/invoice', args); - if (!data.order_id) { - throw new Error(`${data.code} ${data.message}`); - } - return data; - } - - async getStatus(id: string): Promise { - const {data} = await this.api.get(`/payment/${id}`); - if (!data.order_id) { - throw new Error(`${data.code} ${data.message}`); - } - return data; - } -} - -export default NowApi; diff --git a/src/processors/shared.ts b/src/processors/shared.ts deleted file mode 100644 index b40f477..0000000 --- a/src/processors/shared.ts +++ /dev/null @@ -1,41 +0,0 @@ -import {REDIS_URL} from 'roadman'; -import Redis from 'ioredis'; - -const ratesExpireMin = !Number.isNaN(+process.env.RATES_EXPIRE_MIN) - ? +process.env.RATES_EXPIRE_MIN - : 5; -export interface PairRate { - pair: string; - rate: number; -} - -export class RatesCache { - redis: Redis; - constructor() { - this.redis = new Redis(REDIS_URL); - } - - async getPair(pair: string): Promise { - return new Promise((resolve) => { - this.redis.get(pair, (err, result) => { - if (err) { - resolve(null); - } else { - resolve(JSON.parse(result) as PairRate); - } - }); - }); - } - - async savePair(pair: string, value: PairRate): Promise { - try { - if (!value || !value.pair || !value.rate) { - return false; - } - await this.redis.set(pair, JSON.stringify(value), 'EX', 60 * ratesExpireMin); - return true; - } catch (error) { - return false; - } - } -} diff --git a/src/processors/stripe/app.checkout.ts b/src/processors/stripe/app.checkout.ts deleted file mode 100644 index ee8adb0..0000000 --- a/src/processors/stripe/app.checkout.ts +++ /dev/null @@ -1,147 +0,0 @@ -import express, {Router} from 'express'; -import nodestripe, {Stripe} from 'stripe'; - -import {StripeResponseWebhook} from './response.interface'; -import {fulfillStripePayment} from './stripe.methods'; -import {log} from '@roadmanjs/logs'; -import {paymentProcessorDescription} from './config'; - -// Set your secret key. Remember to switch to your live secret key in production. -// See your keys here: https://dashboard.stripe.com/account/apikeys - -/** - * TODO add multiple currencies passed via roadman args - * HTTP STRIPE - * @returns - */ -export const expressifyStripe = (): Router => { - // @ts-ignore - const stripe: Stripe = nodestripe(process.env.STRIPE_SECRET); - - // Find your endpoint's secret in your Dashboard's webhook settings - const endpointSecret: any = process.env.STRIPE_ENDPOINT_SECRET; - - const app = express.Router(); - - // TODO to delete - app.get('/ping', async (req, res) => { - log('stripe'); - res.json({stripe: 'stripe'}); - }); - /** - * Create checkout session - */ - app.post('/session', async (req, res) => { - const host = req.body.host; - const path = req.body.path; - const owner = req.body.userId; - const amount = req.body.amount || 1; - const intentQuery: string = req.body.intentQuery || ''; - const productIntent = req.body.intent || {}; - const amountPlusCents = Math.round(+amount * 100); - - console.log('Body from session', JSON.stringify(req.body)); - - if (!host) { - res.json({error: 'Please try again'}); - return; - } - - const session = await stripe.checkout.sessions.create({ - metadata: {owner, amount, ...productIntent}, - payment_method_types: ['card'], - line_items: [ - { - price_data: { - currency: 'usd', - product_data: { - name: paymentProcessorDescription, - }, - unit_amount: amountPlusCents, - }, - quantity: 1, - }, - ], - mode: 'payment', - success_url: `${host}${path}?success=true&stripe_session_id={CHECKOUT_SESSION_ID}&${intentQuery}`, - cancel_url: `${host}${path}?failed=true&stripe_session_id={CHECKOUT_SESSION_ID}&${intentQuery}`, - }); - - res.json({id: session.id}); - }); - /** - * Full endpoint stripe - */ - app.post( - '/webhook', - express.raw({type: 'application/json'}), - async (request: any, response: any) => { - const payload = request.body; - const sig = request.headers['stripe-signature']; - - log('sig = ' + JSON.stringify(sig)); - log('endpointSecret = ' + endpointSecret); - log('webhook = ' + JSON.stringify(payload)); - - // logAmplitudeEvent(payload); - - let event: StripeResponseWebhook = payload; - - try { - // @ts-ignore - event = stripe.webhooks.constructEvent(request.body, sig, endpointSecret); - } catch (err) { - log(`Error: webhook stripe ${err && err.message}`); - return response.status(400).send(`Webhook Error: ${err.message}`); - } - - const session = event.data.object; - - log('webhook event = ' + JSON.stringify(event)); - - switch (event.type) { - case 'checkout.session.completed': { - // Save an order in your database, marked as 'awaiting payment' - // createOrder(session); - - // Check if the order is paid (e.g., from a card payment) - // - // A delayed notification payment will have an `unpaid` status, as - // you're still waiting for funds to be transferred from the customer's - // account. - if (session.payment_status === 'paid') { - // addToPaymentQueue(session); - await fulfillStripePayment(session); - } - - break; - } - - case 'checkout.session.async_payment_succeeded': { - // const session = event.data.object; - - // Fulfill the purchase... - // addToPaymentQueue(session); - await fulfillStripePayment(session); - - break; - } - - case 'checkout.session.async_payment_failed': { - // const session = event.data.object; - // TODO tell client transaction failed - - // Send an email to the customer asking them to retry their order - // emailCustomerAboutFailedPayment(session); - - break; - } - } - - // Return a response to acknowledge receipt of the event - response.json({received: true}); - } - ); - - return app; -}; diff --git a/src/processors/stripe/app.test.ts b/src/processors/stripe/app.test.ts deleted file mode 100644 index 49c47c8..0000000 --- a/src/processors/stripe/app.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import 'mocha'; - -import {expect} from 'chai'; -import nodestripe from 'stripe'; - -describe('Stripe checkout', () => { - it('it should mock webhook', () => { - // @ts-ignore - const stripe = nodestripe(process.env.STRIPE_SECRET); - - const payload = { - id: 'evt_test_webhook', - object: 'event', - }; - - const payloadString = JSON.stringify(payload, null, 2); - const secret = 'whsec_test_secret'; - - const header = stripe.webhooks.generateTestHeaderString({ - payload: payloadString, - secret, - }); - - const event = stripe.webhooks.constructEvent(payloadString, header, secret); - - // Do something with mocked signed event - expect(event.id).to.equal(payload.id); - }); -}); diff --git a/src/processors/stripe/config.ts b/src/processors/stripe/config.ts deleted file mode 100644 index 36c5bf5..0000000 --- a/src/processors/stripe/config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'dotenv/config'; - -import _get from 'lodash/get'; - -export const paymentProcessorDescription = _get(process.env, 'STRIPE_PAYMENT_DESC', ''); -export const stripeSecret = _get(process.env, 'STRIPE_SECRET', ''); -export const stripeEndpointSecret = _get(process.env, 'STRIPE_ENDPOINT_SECRET', ''); diff --git a/src/processors/stripe/index.ts b/src/processors/stripe/index.ts deleted file mode 100644 index 8c7742a..0000000 --- a/src/processors/stripe/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {RoadmanBuild} from '@roadmanjs/core'; -import {expressifyStripe} from './app.checkout'; -import isEmpty from 'lodash/isEmpty'; -import {log} from '@roadmanjs/logs'; -import {stripeSecret} from './config'; - -// TODO test -export const stripeRoadman = async (roadmanArgs: RoadmanBuild) => { - // if stripe env is null do not enable it - if (isEmpty(stripeSecret)) { - log('Cannot enable stripe, keys are missing'); - } else { - log('Stripe enabled'); - roadmanArgs.app.use('/stripe', expressifyStripe()); - } - return roadmanArgs; -}; - -// exports all for customizations -export * from './app.checkout'; -export * from './response.interface'; -export * from './config'; diff --git a/src/processors/stripe/response.interface.ts b/src/processors/stripe/response.interface.ts deleted file mode 100644 index 80d6e52..0000000 --- a/src/processors/stripe/response.interface.ts +++ /dev/null @@ -1,60 +0,0 @@ -export interface StripeMetadata { - userId?: string; - amount?: number; - owner?: string; - site?: string; - errorUrl?: string; - successUrl?: string; - intentType?: string; // any model type - intentId?: string; // the id of this modelType - intentPrice?: number; // the price of the model - intent1?: string; // custom field - intent2?: string; // custom field - intent3?: string; // custom field -} - -interface Data { - object: StripeDataObject; -} - -export interface StripeDataObject { - id: string; - object: string; - allow_promotion_codes: any; - amount_subtotal: any; - amount_total: any; - billing_address_collection: any; - cancel_url: string; - client_reference_id: any; - currency: any; - customer: any; - customer_details: any; - customer_email: any; - livemode: boolean; - locale: any; - metadata: StripeMetadata; - mode: string; - payment_intent: string; - payment_method_options: {}; - payment_method_types: string[]; - payment_status: string; - setup_intent: any; - shipping: any; - shipping_address_collection: any; - submit_type: any; - subscription: any; - success_url: string; - total_details: any; -} - -export interface StripeResponseWebhook { - created: number; - livemode: boolean; - id: string; - type: string; - object: string; - request: any; - pending_webhooks: number; - api_version: string; - data: Data; -} diff --git a/src/processors/stripe/stripe.methods.ts b/src/processors/stripe/stripe.methods.ts deleted file mode 100644 index eae5109..0000000 --- a/src/processors/stripe/stripe.methods.ts +++ /dev/null @@ -1,34 +0,0 @@ -import {log, verbose} from '@roadmanjs/logs'; - -import {StripeDataObject} from './response.interface'; -import {updateWallet} from '../../wallet/Wallet.methods'; - -/** - * Fullfil a payment from stripe - * TODO should be called from a message broker - * @param metadata - */ -export const fulfillStripePayment = async (stripeData: StripeDataObject): Promise => { - const metadata = stripeData.metadata; - - verbose('Fulfilling metadata', metadata); - - try { - const {owner = '', amount = 0} = metadata; - - const intentType = metadata.intentType || ''; - const intentId = metadata.intentId || ''; - - if (owner && amount) { - await updateWallet({ - owner, - amount: +amount, - source: intentType, - sourceId: intentId, - currency: 'USD', // TODO multiple currency - }); - } - } catch (error) { - log(`Error fullfilling stripe order`, error); - } -}; diff --git a/src/shared/enums.ts b/src/shared/enums.ts deleted file mode 100644 index 53fecb1..0000000 --- a/src/shared/enums.ts +++ /dev/null @@ -1,7 +0,0 @@ -export enum StatusType { - SUCCESS = 'success', - ERROR = 'error', - PENDING = 'pending', - DRAFT = 'draft', - CANCELED = 'canceled', -} diff --git a/src/transactions/Transaction.model.ts b/src/transactions/Transaction.model.ts deleted file mode 100644 index 83d0f9b..0000000 --- a/src/transactions/Transaction.model.ts +++ /dev/null @@ -1,55 +0,0 @@ -import {Field, InputType, Model, ObjectType} from 'couchset'; - -@InputType('TransactionInput') -@ObjectType() -export class Transaction { - @Field(() => String, {nullable: true}) - id?: string = ''; - - @Field(() => Date, {nullable: true}) - createdAt?: Date = new Date(); - - @Field(() => Date, {nullable: true}) - updatedAt?: Date = new Date(); - - @Field(() => String, {nullable: true}) - owner?: string = ''; - - @Field(() => String, {nullable: true}) // TODO use enums - type = ''; // withdraw or deposit - - @Field(() => String, {nullable: true}) - status = ''; - - @Field(() => String, {nullable: true}) - source = ''; // crypto wallet, paypal, credit card, interact - - @Field(() => String, {nullable: true}) - sourceId?: string = ''; // it's source id - - @Field(() => String, { - nullable: true, - description: 'hash of the transaction, if source = crypto wallet', - }) - transactionHash?: string = ''; // hash of the transaction - - @Field(() => String, {nullable: true}) - currency = ''; - - @Field(() => Number, {nullable: true}) - amount = 0; - - @Field(() => Number, {nullable: true}) - feePerc?: number = 0; -} - -export const TransactionModel: Model = new Model(Transaction.name, {graphqlType: Transaction}); - -export const { - resolver: TransactionDefaultResolver, // there's going to be other custom resolvers - pagination: TransactionPagination, - client: TransactionClient, - modelKeys: TransactionModelKeys, -} = TransactionModel.automate(); - -export default TransactionModel; diff --git a/src/transactions/Transaction.resolver.admin.ts b/src/transactions/Transaction.resolver.admin.ts deleted file mode 100644 index a01d70d..0000000 --- a/src/transactions/Transaction.resolver.admin.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - Resolver, - Query, - Arg, - UseMiddleware, - // Int, -} from 'couchset'; -import {log} from '@roadmanjs/logs'; -import {isAuth, isAdmin} from '@roadmanjs/auth'; -import TransactionModel, {Transaction} from './Transaction.model'; - -@Resolver() -export class TransactionAdminResolver { - // TODO just time pagination - // TODO demo resolver - @Query(() => [Transaction]) - @UseMiddleware(isAuth) - @UseMiddleware(isAdmin) - async allTransactions( - @Arg('search', () => String, {nullable: true}) search: string, - @Arg('owner', () => Number, {nullable: true}) owner: number, - @Arg('page', () => Number, {nullable: true}) page: number, - @Arg('limit', () => Number, {nullable: true}) limit: number - ): Promise { - try { - const extraWhere: any = {}; - - if (owner) { - extraWhere.owner = {$eq: owner}; - } - - const data = await TransactionModel.pagination({ - where: { - ...extraWhere, - }, - limit, - page, - }); - - log(`all transactions returned ${data && data.length}`); - return data; - } catch (error) { - log('error getting transactions', error); - return []; - } - } -} - -export default TransactionAdminResolver; diff --git a/src/transactions/Transaction.resolver.ts b/src/transactions/Transaction.resolver.ts deleted file mode 100644 index 3fac635..0000000 --- a/src/transactions/Transaction.resolver.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { - Resolver, - Query, - Arg, - UseMiddleware, - Ctx, - // Int, -} from 'type-graphql'; -import _get from 'lodash/get'; -import pickBy from 'lodash/pickBy'; -import identity from 'lodash/identity'; -import {log} from '@roadmanjs/logs'; -import TransactionModel, {Transaction} from './Transaction.model'; -import {ContextType, isAuth} from '@roadmanjs/auth'; -import {CouchbaseConnection, getPagination} from 'couchset'; -import {awaitTo} from 'couchset/dist/utils'; -import {isEmpty} from 'lodash'; -import querystring from 'querystring'; - -const TransactionPagination = getPagination(Transaction); -@Resolver() -export class TransactionResolver { - @Query(() => Transaction, {nullable: true}) - @UseMiddleware(isAuth) - async transactionById( - // @Ctx() ctx: ContextType, - @Arg('id', () => String, {nullable: false}) id?: string - ): Promise { - try { - // if owner = transaction owner - const transaction = await TransactionModel.findById(id || ''); - if (isEmpty(transaction)) { - throw new Error('Transaction not found'); - } - return transaction; - } catch (error) { - log('error getting transactions', error); - return null; - } - } - - // TODO move this couchset when byTime Updated - @Query(() => TransactionPagination) - @UseMiddleware(isAuth) - async transactions( - @Ctx() ctx: ContextType, - @Arg('filters', () => String, {nullable: true}) filters?: string, - @Arg('sort', () => String, {nullable: true}) sortArg?: string, - @Arg('before', () => Date, {nullable: true}) before?: Date, - @Arg('after', () => Date, {nullable: true}) after?: Date, - @Arg('limit', () => Number, {nullable: true}) limitArg?: number - ): Promise<{items: Transaction[]; hasNext?: boolean; params?: any}> { - const transactionModelName = Transaction.name; - const owner = _get(ctx, 'payload.userId', ''); - const bucket = CouchbaseConnection.Instance.bucketName; - const sign = before ? '<=' : '>='; - const time = new Date(before || after || new Date()); - const sort = sortArg || 'DESC'; - const limit = limitArg || 10; - const limitPassed = limit + 1; // adding +1 for hasNext - - let allFilters: any = []; - if (!isEmpty(filters)) { - const filtersQuery = querystring.parse(filters || ''); - allFilters = Object.keys(filtersQuery).map((key) => { - return {key, value: filtersQuery[key]}; - }); - } - - const copyParams = pickBy( - { - sort, - filters, - before, - after, - owner, - limit, - }, - identity - ); - - try { - const query = ` - SELECT * - FROM \`${bucket}\` trans - WHERE trans._type = "${transactionModelName}" - ${ - !isEmpty(filters) - ? `${allFilters - .map((filter: any) => `AND trans.${filter.key}="${filter.value}"`) - .join(' ')}` - : '' - } - AND trans.owner = "${owner}" - AND trans.createdAt ${sign} "${time.toISOString()}" - ORDER BY trans.createdAt ${sort} - LIMIT ${limitPassed}; - `; - - const [errorFetching, data = []] = await awaitTo( - TransactionModel.customQuery({ - limit: limitPassed, - query, - params: copyParams, - }) - ); - - if (errorFetching) { - throw errorFetching; - } - - const [rows = []] = data; - - const hasNext = rows.length > limit; - - if (hasNext) { - rows.pop(); // remove last element - } - - const dataToSend = rows.map((d) => { - const {trans} = d; - return TransactionModel.parse(trans); - }); - - return {items: dataToSend, params: copyParams, hasNext}; - } catch (error) { - log('error getting transactions', error); - return {items: [], hasNext: false, params: copyParams}; - } - } -} - -export default TransactionResolver; diff --git a/src/transactions/index.ts b/src/transactions/index.ts deleted file mode 100644 index dffd392..0000000 --- a/src/transactions/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './Transaction.model'; -export * from './Transaction.resolver'; -export * from './Transaction.resolver.admin'; diff --git a/src/wallet/Wallet.methods.ts b/src/wallet/Wallet.methods.ts deleted file mode 100644 index 2b64e68..0000000 --- a/src/wallet/Wallet.methods.ts +++ /dev/null @@ -1,237 +0,0 @@ -import {Transaction, TransactionModel} from '../transactions/Transaction.model'; -import { - Wallet, - WalletAddress, - WalletAddressModel, - WalletModel, - WalletOutput, - walletModelName, -} from './Wallet.model'; -import { - createTransactions as createTransactionsBtc, - generateAddress, - txDest, -} from '../processors/btcpayserver/btcpayserver'; -import {createTransactionsXmr, generateAddressXmr} from '../processors/monerox/monerox'; - -import {CouchbaseConnection} from 'couchset'; -import {StatusType} from '../shared/enums'; -import {UserModel} from '@roadmanjs/auth'; -import {awaitTo} from 'couchset/dist/utils'; -import isEmpty from 'lodash/isEmpty'; -import {log} from '@roadmanjs/logs'; - -// createTransactions -export const walletAddressApi = { - BTC: generateAddress, - XMR: generateAddressXmr, -}; - -export const walletTxApi = { - BTC: createTransactionsBtc, - - /** - * - * @param _cur - * @param dest only one destination is allowed - * @returns - */ - XMR: (_cur: string, dest: txDest[]) => createTransactionsXmr(dest[0]), -}; - -export const walletSatoshiToUnit = { - BTC: 100000000, - XMR: 1000000000000, -}; - -interface FindWallet { - owner: string; - currency: string; - createNew?: boolean; -} - -export const createFindWallet = async (args: FindWallet): Promise => { - const {owner, currency, createNew = false} = args; - // create wallet if not exist - - const bucket = CouchbaseConnection.Instance.bucketName; - - const query = ` - SELECT * - FROM \`${bucket}\` wallet - LEFT JOIN \`${bucket}\` owner ON KEYS wallet.owner - LEFT JOIN \`${bucket}\` address ON KEYS wallet.address - WHERE wallet._type = "${walletModelName}" - AND wallet.owner = "${owner}" - AND wallet.currency = "${currency}" - `; - - const [errorFetching, data = []] = await awaitTo( - WalletModel.customQuery({ - limit: 1, - query, - params: { - owner, - currency, - }, - }) - ); - - if (errorFetching) { - throw errorFetching; - } - - const [rows = []] = data; - - const wallets = rows.map((d) => { - const wallet = d.wallet ? WalletModel.parse(d.wallet) : null; - const address = d.address ? WalletAddressModel.parse(d.address) : null; - const owner = d.owner ? UserModel.parse(d.owner) : null; - return {...wallet, address, owner}; - }); - - if (!isEmpty(wallets)) { - return wallets.pop(); - } else if (createNew) { - const newWallet: Wallet = { - owner, - currency, - amount: 0, - }; - - const createdWallet = await WalletModel.create(newWallet); - return createdWallet as WalletOutput; - } - - throw new Error('Wallet not found'); -}; - -export const createWalletAddress = async ( - owner: string, - currency: string -): Promise => { - try { - if (isEmpty(owner) || isEmpty(currency)) throw new Error('error creating wallet address'); - - const CURRENCY = currency.toUpperCase(); - // the wallet must exist - const wallet = await createFindWallet({owner, currency: CURRENCY, createNew: true}); - if (isEmpty(wallet)) { - throw new Error('error creating wallet address'); - } - - const api = walletAddressApi[CURRENCY]; - const newAddress = await api(CURRENCY); - - if (isEmpty(newAddress)) throw new Error('error creating wallet address'); - - const newWalletAddress: WalletAddress = { - owner, - id: newAddress.address, - currency: CURRENCY, - transactions: 0, - }; - - const createdWalletAddress = await WalletAddressModel.create(newWalletAddress); - - await WalletModel.updateById(wallet.id, { - ...wallet, - owner, - address: createdWalletAddress.id, - }); - - return createdWalletAddress; - } catch (error) { - log('error creating wallet address', error); - return null; - } -}; - -interface IUpdateUserWallet { - owner: string; - amount: number; - currency: string; - source: string; - sourceId?: string; - message?: string; - notification?: boolean; // future notification - transactionHash?: string; // if source is blockchain/crypto -} - -interface IUpdateWallet { - wallet: Wallet; - transaction: Transaction; -} - -/** - * Update Wallet - * @param args - * @returns - */ -export const updateWallet = async (args: IUpdateUserWallet): Promise => { - const {owner, amount, source, sourceId, message, currency = 'USD', transactionHash} = args; - const CURRENCY = currency.toUpperCase(); - - try { - log('updateUserWallet', JSON.stringify({owner, amount, source, sourceId, message})); - - const existingUser = await UserModel.findById(owner); - - if (!isEmpty(existingUser)) { - const transType = amount > 0 ? 'deposit' : 'withdraw'; - // Create a transaction - - const newTransaction: Transaction = { - owner, - type: transType, // withdraw or deposit - source: source || '', // paypal, credit card, interact - sourceId: sourceId || '', // paypal, credit card, interact - currency: CURRENCY, - amount, - status: StatusType.SUCCESS, - transactionHash, - }; - - const getWallet = await WalletModel.pagination({ - where: { - owner, - currency: CURRENCY, - }, - }); - - if (isEmpty(getWallet)) throw new Error('error getting user wallet'); - - const wallet = getWallet.shift(); - - log('existing wallet', wallet); - - const currentBalance = wallet.amount; - const newBalance = currentBalance + amount; - - const updatedWallet = await WalletModel.updateById(wallet.id, { - ...wallet, - amount: newBalance, - }); - - log('updatedWallet wallet', updatedWallet); - - const transactionCreated = await TransactionModel.create(newTransaction); - - log('successfully update user balance'); - return {transaction: transactionCreated, wallet: updatedWallet}; - } - - throw new Error('error getting user'); - } catch (error) { - log('error updating user wallet', error); - throw error; - } -}; - -/** - * add payment to queue processor - * TODO implement the queue - */ -// export const addToPaymentQueue = () => {}; - -// createFindWallet diff --git a/src/wallet/Wallet.model.ts b/src/wallet/Wallet.model.ts deleted file mode 100644 index 126b863..0000000 --- a/src/wallet/Wallet.model.ts +++ /dev/null @@ -1,77 +0,0 @@ -import {Field, InputType, Model, ObjectType} from 'couchset'; - -import {UserType} from '@roadmanjs/auth'; - -@InputType('WalletAddressInput') -@ObjectType() -export class WalletAddress { - @Field(() => String, { - nullable: true, - description: 'The address of the wallet, on-chain address', - }) - id?: string = ''; - - @Field(() => Date, {nullable: true}) - createdAt?: Date = new Date(); - - @Field(() => Date, {nullable: true}) - updatedAt?: Date = new Date(); - - @Field(() => String, {nullable: true, description: 'The owner of the account'}) - owner = ''; - - @Field(() => String, {nullable: true, description: 'The currency of the wallet'}) - currency = ''; - - @Field(() => Number, { - nullable: true, - description: 'The number of transactions received from this address', - }) - transactions = 0; - - // TODO type, info, etc -} - -@InputType('WalletInput') -@ObjectType() -export class Wallet { - @Field(() => String, {nullable: true}) - id?: string = ''; - - @Field(() => Date, {nullable: true}) - createdAt?: Date = new Date(); - - @Field(() => Date, {nullable: true}) - updatedAt?: Date = new Date(); - - @Field(() => String, {nullable: false, description: 'The owner of the account'}) - owner: UserType | string = ''; - - @Field(() => String, { - nullable: true, - description: 'The address of the wallet', - defaultValue: '', - }) - address?: WalletAddress | string = ''; - - @Field(() => String, {nullable: true, description: 'The currency of the wallet'}) - currency?: string = ''; - - @Field(() => Number, {nullable: true, description: 'Amount in this wallet'}) - amount?: number = 0; -} - -export const walletModelName = Wallet.name; - -@InputType('WalletOutputInput') -@ObjectType() -export class WalletOutput extends Wallet { - @Field(() => UserType, {nullable: true, description: 'The owner object of the account'}) - owner: UserType; - - @Field(() => WalletAddress, {nullable: true, description: 'The address object of the wallet'}) - address: WalletAddress; -} - -export const WalletModel = new Model(Wallet.name, {graphqlType: Wallet}); -export const WalletAddressModel = new Model(WalletAddress.name, {graphqlType: WalletAddress}); diff --git a/src/wallet/Wallet.resolver.ts b/src/wallet/Wallet.resolver.ts deleted file mode 100644 index 2b01b2f..0000000 --- a/src/wallet/Wallet.resolver.ts +++ /dev/null @@ -1,91 +0,0 @@ -import {Resolver, Query, Arg, UseMiddleware, Ctx, Mutation} from 'type-graphql'; -import _get from 'lodash/get'; -import {log} from '@roadmanjs/logs'; -import {ContextType, isAuth} from '@roadmanjs/auth'; -import {WalletAddressModel, WalletOutput} from './Wallet.model'; -import {createFindWallet, createWalletAddress} from './Wallet.methods'; -import {isEmpty} from 'lodash'; -import {ResType} from 'couchset'; - -@Resolver() -export class WalletResolver { - @Query(() => [WalletOutput], {nullable: true}) - @UseMiddleware(isAuth) - async myWallets( - @Ctx() ctx: ContextType, - @Arg('currency', () => [String], {nullable: false}) currencies: string[], - @Arg('createNew', () => Boolean, {nullable: true, defaultValue: false}) createNew?: boolean - ): Promise { - const owner = _get(ctx, 'payload.userId', ''); - - try { - if (isEmpty(currencies)) { - throw new Error('No currencies provided'); - } - - // fetch or create wallets using the provided currencies - const wallets = await Promise.all( - currencies.map((currency) => { - return createFindWallet({ - owner, - currency, - createNew, - }); - }) - ); - - return wallets; - } catch (error) { - log('error getting wallets', error); - return []; - } - } - - // generate a new address for the wallet - @Mutation(() => ResType) - @UseMiddleware(isAuth) - async getWalletAddress( - @Ctx() ctx: ContextType, - @Arg('currency', () => String, {nullable: false}) currency: string, - @Arg('forceGenerate', () => Boolean, { - nullable: true, - description: 'if true, will not check if existing has not been used before', - }) - forceGenerate = false - ): Promise { - const owner = _get(ctx, 'payload.userId', ''); - - // check if wallet has existing address, WalletAddress.transactions === 0, if >=1 generate new address - // if not, generate a new one - try { - if (!forceGenerate) { - const existingWalletAddress = await WalletAddressModel.pagination({ - where: { - owner, - currency, - }, - }); - - if (isEmpty(existingWalletAddress)) { - throw new Error('No existing wallet address found, generate a new one'); - } - - const walletAddress = existingWalletAddress[0]; - - if (walletAddress.transactions < 1) { - throw new Error( - 'Address has not been used before, use it then, generate a new one' - ); - } - } - - const newWalletAddress = await createWalletAddress(owner, currency); - return {data: WalletAddressModel.parse(newWalletAddress), success: true}; - } catch (error) { - log('error getting wallet address', error); - return {message: error?.message, success: false}; - } - } -} - -export default WalletResolver; diff --git a/src/wallet/index.ts b/src/wallet/index.ts deleted file mode 100644 index 9d32c0a..0000000 --- a/src/wallet/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './Wallet.methods'; -export * from './Wallet.model'; -export * from './Wallet.resolver'; diff --git a/src/wallet/wallet.rates.resolver.ts b/src/wallet/wallet.rates.resolver.ts deleted file mode 100644 index dd4ac9d..0000000 --- a/src/wallet/wallet.rates.resolver.ts +++ /dev/null @@ -1,34 +0,0 @@ -import {Resolver, Query, Arg} from 'type-graphql'; -import {log} from '@roadmanjs/logs'; -import {ObjectType, Field} from 'couchset'; -import {fetchRates} from '../processors/kraken/rates'; - -@ObjectType() -export class PairRate { - @Field(() => String, {nullable: true}) - pair = ''; - - @Field(() => Number, {nullable: true}) - rate = 0; -} - -@Resolver() -export class WalletRatesResolver { - @Query(() => [PairRate]) - async fetchRates( - @Arg('pairs', () => String, { - nullable: false, - description: 'e.g BTC_USD,BTC_EUR The currency pairs to fetch rates for', - }) - currencyPair: string - ): Promise { - try { - return await fetchRates(currencyPair, true); - } catch (error) { - log('error fetching rates for ' + currencyPair, error); - return []; - } - } -} - -export default WalletRatesResolver; diff --git a/src/wallet/withdrawRequest.model.ts b/src/wallet/withdrawRequest.model.ts deleted file mode 100644 index bbc6e69..0000000 --- a/src/wallet/withdrawRequest.model.ts +++ /dev/null @@ -1,97 +0,0 @@ -import {Field, InputType, Model, ObjectType} from 'couchset'; - -import {UserType} from '@roadmanjs/auth'; -import {Wallet} from './Wallet.model'; - -export const WithdrawRequestModelName = 'WithdrawRequest'; - -export const WithdrawRequestStatus = { - requested: 'requested', - accepted: 'accepted', - cancelled: 'cancelled', - completed: 'completed', -}; -/** - * GraphQL Types start - */ -@InputType('WithdrawRequestInput') -@ObjectType() -export class WithdrawRequest { - // Automatic - @Field(() => String, {nullable: true}) - id?: string = ''; - - @Field(() => String, {nullable: true}) - owner?: string | UserType = ''; - - @Field(() => Date, {nullable: true}) - createdAt?: Date = new Date(); - - @Field(() => Date, {nullable: true}) - updatedAt?: Date = new Date(); - - @Field(() => Boolean, {nullable: true}) - deleted?: boolean = false; - // Automatic - - @Field(() => String, { - nullable: true, - description: 'Type of withdraw request crypto | bank | xxxx', - }) - type?: string = ''; - - @Field(() => String, {nullable: true}) - receiver?: string = ''; - - @Field(() => String, { - nullable: true, - description: 'Transaction hash if a crypto withdraw request', - }) - transactionHash?: string = ''; - - @Field(() => String, {nullable: true}) - status?: string = ''; - - // if status === cancelled - @Field(() => String, {nullable: true}) - reason?: string = ''; - - @Field(() => String, {nullable: true}) - currency?: string = ''; - - @Field(() => Number, {nullable: true}) - amount?: number = 0; - - @Field(() => String, {nullable: true, description: 'Wallet Id'}) - walletId?: string = ''; // no auto -} - -@ObjectType() -export class WithdrawRequestOutput extends WithdrawRequest { - @Field(() => UserType, {nullable: true, description: 'Owner'}) - owner?: UserType; // no auto - - @Field(() => Wallet, {nullable: true, description: 'Wallet'}) - wallet?: Wallet; // no auto -} - -export const orderSelectors = [ - 'id', - 'owner', - 'createdAt', - 'updatedAt', - 'type', - 'receiver', - 'transactionHash', - 'status', - 'reason', - 'currency', - 'amount', - 'walletId', -]; - -export const WithdrawRequestModel: Model = new Model(WithdrawRequestModelName, { - graphqlType: WithdrawRequest, -}); - -export default WithdrawRequestModel; diff --git a/test.js b/test.js deleted file mode 100644 index 72417ed..0000000 --- a/test.js +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check -import "reflect-metadata"; - -import {TransactionDefaultResolver, stripeRoadman} from "./src" - -import { roadman } from "roadman"; - -const run = async () => { - await roadman({ - roadmen: [stripeRoadman], - resolvers: [TransactionDefaultResolver] - }) -} -run(); \ No newline at end of file diff --git a/yarn-error.log b/yarn-error.log deleted file mode 100644 index 2ba90e1..0000000 --- a/yarn-error.log +++ /dev/null @@ -1,4526 +0,0 @@ -Arguments: - /Users/ceddymuhoza/.nvm/versions/node/v16.11.0/bin/node /Users/ceddymuhoza/.yarn/bin/yarn.js add @roadmanjs/spec - -PATH: - /Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin:/Users/ceddymuhoza/.krew/bin:/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin:/Users/ceddymuhoza/.yarn/bin:/Users/ceddymuhoza/.config/yarn/global/node_modules/.bin:/Users/ceddymuhoza/.nvm/versions/node/v16.11.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin:/Users/ceddymuhoza/.krew/bin:/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin:/Users/ceddymuhoza/.yarn/bin:/Users/ceddymuhoza/.config/yarn/global/node_modules/.bin:/Users/ceddymuhoza/.nvm/versions/node/v16.11.0/bin:/Users/ceddymuhoza/.cargo/bin:/Users/ceddymuhoza/flutter/bin:/Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin/cbimport:/Users/ceddymuhoza/flutter/bin:/Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin/cbimport - -Yarn version: - 1.22.5 - -Node version: - 16.11.0 - -Platform: - darwin x64 - -Trace: - Error: https://registry.yarnpkg.com/@roadmanjs%2fspec: Not found - at Request.params.callback [as _callback] (/Users/ceddymuhoza/.yarn/lib/cli.js:66988:18) - at Request.self.callback (/Users/ceddymuhoza/.yarn/lib/cli.js:140749:22) - at Request.emit (node:events:390:28) - at Request. (/Users/ceddymuhoza/.yarn/lib/cli.js:141721:10) - at Request.emit (node:events:390:28) - at IncomingMessage. (/Users/ceddymuhoza/.yarn/lib/cli.js:141643:12) - at Object.onceWrapper (node:events:509:28) - at IncomingMessage.emit (node:events:402:35) - at endReadableNT (node:internal/streams/readable:1343:12) - at processTicksAndRejections (node:internal/process/task_queues:83:21) - -npm manifest: - { - "name": "@roadmanjs/wallet", - "version": "0.0.1", - "description": "A very Wallet", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "files": [ - "docs/", - "dist/", - "register/", - "LICENSE" - ], - "author": { - "name": "Ceddy Muhoza", - "email": "ceddymuhoza@gmail.com", - "url": "https://ceddy.org" - }, - "license": "MIT", - "private": false, - "scripts": { - "lint": "tslint \"src/**/*.ts\" --project tsconfig.json", - "build": "rm -rf dist dist-client && tsc --skipLibCheck", - "postbuild": "node dist/postbuild.js", - "prebuild": "ts-node src/prebuild.ts", - "test": "mocha src/*test.ts --exit", - "eslint": "eslint ./src --fix --ext=ts" - }, - "lint-staged": { - "*.{ts,tsx}": [ - "npm run eslint" - ] - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "devDependencies": { - "@types/chai": "^4.2.14", - "@types/chalk": "^2.2.0", - "@types/debug": "^4.1.5", - "@types/dotenv": "^8.2.0", - "@types/lodash": "^4.14.168", - "@types/mocha": "^8.2.0", - "@types/node": "^10.0.3", - "@types/source-map-support": "^0.4.0", - "@typescript-eslint/eslint-plugin": "^3.4.0", - "@typescript-eslint/parser": "^3.4.0", - "chai": "^4.2.0", - "eslint": "^6.8.0", - "eslint-config-prettier": "^6.11.0", - "eslint-loader": "^4.0.2", - "eslint-plugin-import": "^2.20.2", - "eslint-plugin-json": "^2.1.1", - "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-simple-import-sort": "^5.0.2", - "eslint-plugin-typescript": "^0.14.0", - "husky": "^4.2.5", - "lint-staged": "^10.1.7", - "mocha": "^8.2.1", - "prettier": "^2.0.5", - "rimraf": "^2.5.4", - "ts-node": "^9.1.1", - "tslint": "^5.11.0", - "tslint-config-standard": "^8.0.1", - "typescript": "^4.4.3" - }, - "peerDependencies": { - "couchset": ">=0.0.17", - "typescript": ">=2.0" - }, - "dependencies": { - "@roadmanjs/auth": "^0.0.22", - "@roadmanjs/logs": "^0.0.1", - "@roadmanjs/utils": "^0.0.9", - "chalk": "^4.1.0", - "couchset": "^0.0.17", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "lodash": "^4.17.20", - "reflect-metadata": "^0.1.13", - "stripe": "^8.209.0" - } - } - -yarn manifest: - No manifest - -Lockfile: - # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - # yarn lockfile v1 - - - "@babel/code-frame@^7.0.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - - "@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - - "@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - - "@firebase/app-types@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0.tgz#c9e16d1b8bed1a991840b8d2a725fb58d0b5899f" - integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg== - - "@firebase/auth-interop-types@0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz#5ce13fc1c527ad36f1bb1322c4492680a6cf4964" - integrity sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g== - - "@firebase/component@0.5.10": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.5.10.tgz#eab8acfd9b1a2b6534a63cbcd7cbc7660c47663d" - integrity sha512-mzUpg6rsBbdQJvAdu1rNWabU3O7qdd+B+/ubE1b+pTbBKfw5ySRpRRE6sKcZ/oQuwLh0HHB6FRJHcylmI7jDzA== - dependencies: - "@firebase/util" "1.4.3" - tslib "^2.1.0" - - "@firebase/database-compat@^0.1.1": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.5.tgz#df451ce6a8d0ea2ebc2b1c8017da7d773424371d" - integrity sha512-UVxkHL24sZfsjsjs+yiKIdYdrWXHrLxSFCYNdwNXDlTkAc0CWP9AAY3feLhBVpUKk+4Cj0I4sGnyIm2C1ltAYg== - dependencies: - "@firebase/component" "0.5.10" - "@firebase/database" "0.12.5" - "@firebase/database-types" "0.9.4" - "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.3" - tslib "^2.1.0" - - "@firebase/database-types@0.9.4", "@firebase/database-types@^0.9.3": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.4.tgz#08b7da33d8dca8f5adab45bfb1cdf8654f2c6720" - integrity sha512-uAQuc6NUZ5Oh/cWZPeMValtcZ+4L1stgKOeYvz7mLn8+s03tnCDL2N47OLCHdntktVkhImQTwGNARgqhIhtNeA== - dependencies: - "@firebase/app-types" "0.7.0" - "@firebase/util" "1.4.3" - - "@firebase/database@0.12.5": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.5.tgz#e7f8e8052c3038aff79633e5395c3cc5c30ca7b2" - integrity sha512-1Pd2jYqvqZI7SQWAiXbTZxmsOa29PyOaPiUtr8pkLSfLp4AeyMBegYAXCLYLW6BNhKn3zNKFkxYDxYHq4q+Ixg== - dependencies: - "@firebase/auth-interop-types" "0.1.6" - "@firebase/component" "0.5.10" - "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.3" - faye-websocket "0.11.4" - tslib "^2.1.0" - - "@firebase/logger@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.3.2.tgz#5046ffa8295c577846d54b6ca95645a03809800e" - integrity sha512-lzLrcJp9QBWpo40OcOM9B8QEtBw2Fk1zOZQdvv+rWS6gKmhQBCEMc4SMABQfWdjsylBcDfniD1Q+fUX1dcBTXA== - dependencies: - tslib "^2.1.0" - - "@firebase/util@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.4.3.tgz#4358cf5f18beaa9c8a1e5a5fc4c7c44a4ccd4b7b" - integrity sha512-gQJl6r0a+MElLQEyU8Dx0kkC2coPj67f/zKZrGR7z7WpLgVanhaCUqEsptwpwoxi9RMFIaebleG+C9xxoARq+Q== - dependencies: - tslib "^2.1.0" - - "@google-cloud/common@^3.8.1": - version "3.10.0" - resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-3.10.0.tgz#454d1155bb512109cd83c6183aabbd39f9aabda7" - integrity sha512-XMbJYMh/ZSaZnbnrrOFfR/oQrb0SxG4qh6hDisWCoEbFcBHV0qHQo4uXfeMCzolx2Mfkh6VDaOGg+hyJsmxrlw== - dependencies: - "@google-cloud/projectify" "^2.0.0" - "@google-cloud/promisify" "^2.0.0" - arrify "^2.0.1" - duplexify "^4.1.1" - ent "^2.2.0" - extend "^3.0.2" - google-auth-library "^7.14.0" - retry-request "^4.2.2" - teeny-request "^7.0.0" - - "@google-cloud/firestore@^4.5.0": - version "4.15.1" - resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-4.15.1.tgz#ed764fc76823ce120e68fe8c27ef1edd0650cd93" - integrity sha512-2PWsCkEF1W02QbghSeRsNdYKN1qavrHBP3m72gPDMHQSYrGULOaTi7fSJquQmAtc4iPVB2/x6h80rdLHTATQtA== - dependencies: - fast-deep-equal "^3.1.1" - functional-red-black-tree "^1.0.1" - google-gax "^2.24.1" - protobufjs "^6.8.6" - - "@google-cloud/paginator@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" - integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== - dependencies: - arrify "^2.0.0" - extend "^3.0.2" - - "@google-cloud/projectify@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-2.1.1.tgz#ae6af4fee02d78d044ae434699a630f8df0084ef" - integrity sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ== - - "@google-cloud/promisify@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" - integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== - - "@google-cloud/storage@^5.3.0": - version "5.18.2" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-5.18.2.tgz#0ded98a69323d253e6dd986650edc89b5c504bf9" - integrity sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg== - dependencies: - "@google-cloud/common" "^3.8.1" - "@google-cloud/paginator" "^3.0.7" - "@google-cloud/promisify" "^2.0.0" - abort-controller "^3.0.0" - arrify "^2.0.0" - async-retry "^1.3.3" - compressible "^2.0.12" - configstore "^5.0.0" - date-and-time "^2.0.0" - duplexify "^4.0.0" - extend "^3.0.2" - gaxios "^4.0.0" - get-stream "^6.0.0" - google-auth-library "^7.0.0" - hash-stream-validation "^0.2.2" - mime "^3.0.0" - mime-types "^2.0.8" - p-limit "^3.0.1" - pumpify "^2.0.0" - snakeize "^0.1.0" - stream-events "^1.0.4" - xdg-basedir "^4.0.0" - - "@grpc/grpc-js@~1.5.0": - version "1.5.9" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.5.9.tgz#df44b3d6bc1d5eb4779aab96e00f6084fd07a3c8" - integrity sha512-un+cXqErq5P4p3+WgYVNVh7FB51MSnaoRef7QWDcMXKR6FX2R6Z/bltcJMxNNdTUMC85lkOQcpnAAetFziPSng== - dependencies: - "@grpc/proto-loader" "^0.6.4" - "@types/node" ">=12.12.47" - - "@grpc/proto-loader@^0.6.1", "@grpc/proto-loader@^0.6.4": - version "0.6.9" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.9.tgz#4014eef366da733f8e04a9ddd7376fe8a58547b7" - integrity sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^6.10.0" - yargs "^16.2.0" - - "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - - "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - - "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - - "@panva/asn1.js@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" - integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== - - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= - - "@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - - "@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - - "@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= - - "@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - - "@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= - - "@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= - - "@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= - - "@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= - - "@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= - - "@roadmanjs/auth@^0.0.22": - version "0.0.22" - resolved "https://registry.yarnpkg.com/@roadmanjs/auth/-/auth-0.0.22.tgz#2810fa252dd4268d9d133331de8102ac38bc2c8c" - integrity sha512-1TUIunCupRiaKayAw5yG3gkLVx7s9knKrpo/wPTLMC787c/BtrJUvnj70yZfqxYR3C+ty5XAMwzNLH7RK1i0vQ== - dependencies: - "@roadmanjs/couchset" "^0.0.3" - "@roadmanjs/firebase-admin" "^0.0.4" - "@roadmanjs/logs" "^0.0.1" - "@roadmanjs/utils" "^0.0.4" - graphql-redis-subscriptions "^2.4.2" - jsonwebtoken "^8.5.1" - - "@roadmanjs/core@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@roadmanjs/core/-/core-0.0.3.tgz#c7f153efbf940e5fcb690f3689b2675be464a4df" - integrity sha512-5462cnQ5I4Y/ZIMy+GBG0kpoOVGWYXFZvT9xtJrKMt4lVG10lh8diPjzf03edNG+RH5/zkxiYaPx7dPpjECVLQ== - dependencies: - lodash "^4.17.20" - - "@roadmanjs/couchset@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@roadmanjs/couchset/-/couchset-0.0.3.tgz#8ca8f4a75db7dcba93c32771bd63594b73833b6e" - integrity sha512-8sElQChFAn4mfmzAhT8owqOR1hrsyE2wdp4YYriWAtGmwXxIRrdzSeEFzJzgIorsY1Q2kDdWxQPaBDglVh32Kg== - dependencies: - "@roadmanjs/core" "^0.0.3" - chalk "^4.1.0" - couchset "^0.0.11" - debug "^4.3.1" - dotenv "^8.2.0" - lodash "^4.17.20" - - "@roadmanjs/firebase-admin@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@roadmanjs/firebase-admin/-/firebase-admin-0.0.4.tgz#0c58dae0124e83f1ade6635b743150f6c4ca6cdc" - integrity sha512-n3wMsMJYGW19tfjGXg9ioThgkE+C1nUnr5U2oPm5ueUp4PePEo2SmcFISR5T1tp90pmi9/r8LHTHdb3fc+M/sQ== - dependencies: - "@roadmanjs/core" "^0.0.3" - chalk "^4.1.0" - debug "^4.3.1" - dotenv "^8.2.0" - firebase-admin "^10.0.0" - lodash "^4.17.20" - - "@roadmanjs/logs@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@roadmanjs/logs/-/logs-0.0.1.tgz#6f612b23c15e359207a2a8c8eff7776301697403" - integrity sha512-f+AXFPZhH7aSMeuBJq7i92dVZDrsYo5NMQnTXoUW7I7ZmjUSIGGvReWfXtM0JsrR0+cx72dUHQ+vyrUUMETPFg== - dependencies: - "@roadmanjs/core" "^0.0.3" - chalk "^4.1.0" - debug "^4.3.1" - dotenv "^8.2.0" - lodash "^4.17.20" - - "@roadmanjs/utils@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@roadmanjs/utils/-/utils-0.0.4.tgz#7c3a0c9ca11ce40803fca53433ceb76fd8f4daf1" - integrity sha512-+0Z+t2OwzVXsYAUE5Fcf1OCSjMSuLj4CAxV3oWWhVt8YqV29h65MyVnY+MbIXx/QUJem/O+kcWIGbDJeJx7Yfg== - dependencies: - shelljs "^0.8.5" - - "@roadmanjs/utils@^0.0.9": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@roadmanjs/utils/-/utils-0.0.9.tgz#9e1fb4eae3da72e992d2ac9d14c4814d04576a7f" - integrity sha512-+7wF5pvR7yoUa357aUsxJEFYqygJmTVCRWPgp6TCIZ+v+Ff+nBxGx4gu2rmvRxnjovZop+mX4/RALB4XKynfIg== - dependencies: - shelljs "^0.8.5" - ts-morph "^13.0.3" - - "@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - - "@ts-morph/common@~0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e" - integrity sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g== - dependencies: - fast-glob "^3.2.7" - minimatch "^3.0.4" - mkdirp "^1.0.4" - path-browserify "^1.0.1" - - "@ts-morph/common@~0.12.3": - version "0.12.3" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.12.3.tgz#a96e250217cd30e480ab22ec6a0ebbe65fd784ff" - integrity sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w== - dependencies: - fast-glob "^3.2.7" - minimatch "^3.0.4" - mkdirp "^1.0.4" - path-browserify "^1.0.1" - - "@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - - "@types/chai@^4.2.14": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.0.tgz#23509ebc1fa32f1b4d50d6a66c4032d5b8eaabdc" - integrity sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw== - - "@types/chalk@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba" - integrity sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw== - dependencies: - chalk "*" - - "@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - - "@types/debug@^4.1.5": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== - dependencies: - "@types/ms" "*" - - "@types/dotenv@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-8.2.0.tgz#5cd64710c3c98e82d9d15844375a33bf1b45d053" - integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw== - dependencies: - dotenv "*" - - "@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - - "@types/express-jwt@0.0.42": - version "0.0.42" - resolved "https://registry.yarnpkg.com/@types/express-jwt/-/express-jwt-0.0.42.tgz#4f04e1fadf9d18725950dc041808a4a4adf7f5ae" - integrity sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag== - dependencies: - "@types/express" "*" - "@types/express-unless" "*" - - "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - - "@types/express-unless@*": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@types/express-unless/-/express-unless-0.5.3.tgz#271f8603617445568ed0d6efe25a7d2f338544c1" - integrity sha512-TyPLQaF6w8UlWdv4gj8i46B+INBVzURBNRahCozCSXfsK2VTlL1wNyTlMKw817VHygBtlcl5jfnPadlydr06Yw== - dependencies: - "@types/express" "*" - - "@types/express@*": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - - "@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - - "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== - - "@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - - "@types/lodash@^4.14.168": - version "4.14.180" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.180.tgz#4ab7c9ddfc92ec4a887886483bc14c79fb380670" - integrity sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g== - - "@types/long@^4.0.0", "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== - - "@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - - "@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - - "@types/mocha@^8.2.0": - version "8.2.3" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" - integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== - - "@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - - "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=8.1.0": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== - - "@types/node@^10.0.3": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - - "@types/node@^14.11.2": - version "14.18.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" - integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== - - "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - - "@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - - "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - - "@types/semver@^7.3.3": - version "7.3.9" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" - integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== - - "@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - - "@types/source-map-support@^0.4.0": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@types/source-map-support/-/source-map-support-0.4.2.tgz#5b9f4502183430511bb90e84a6e4bf4214e55a67" - integrity sha512-GbGWx39O8NdUHSChdrU0XeigBAgu1Teg3llwE0slSVcH2qISaQT70ftAiH+h4HIt3VIObFU34PSpXIKJuXCybQ== - dependencies: - "@types/node" "*" - - "@typescript-eslint/eslint-plugin@^3.4.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz#7e061338a1383f59edc204c605899f93dc2e2c8f" - integrity sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ== - dependencies: - "@typescript-eslint/experimental-utils" "3.10.1" - debug "^4.1.1" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - - "@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - - "@typescript-eslint/parser@^3.4.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" - - "@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - - "@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - - "@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - dependencies: - eslint-visitor-keys "^1.1.0" - - "@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - - abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - - acorn-jsx@^5.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - - acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - - agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - - aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - - ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - - ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - - ansi-colors@4.1.1, ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - - ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - - ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - - ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - - ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - - ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - - ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - - ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - - anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - - aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - - are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - - arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - - argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - - argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - - array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - - array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - - arrify@^2.0.0, arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - - assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - - astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - - astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - - async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - - balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - - base64-js@^1.3.0, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - - big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - - bignumber.js@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== - - binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - - bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - - bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - - brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - - braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - - browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - - buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= - - buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - - buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - - builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - - call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - - callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - - camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - - chai@^4.2.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - - chalk@*: - version "5.0.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" - integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== - - chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - - chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - - chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - - check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - - chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - - chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - - ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - - clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - - cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - - cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - - cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - - cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - - cluster-key-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" - integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== - - code-block-writer@^10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" - integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== - - code-block-writer@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.0.tgz#5956fb186617f6740e2c3257757fea79315dd7d4" - integrity sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w== - dependencies: - tslib "2.3.1" - - code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - - color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - - color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - - color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - - color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - - colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - - commander@^2.12.1: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - - commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - - commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - - compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - - compressible@^2.0.12: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - - concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - - configstore@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - - console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - - core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - - cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - - couchbase@^3.2.1, couchbase@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/couchbase/-/couchbase-3.2.4.tgz#ba879c02a5079cd8487bc0fe2fb8d5d397678c5d" - integrity sha512-Tp1o7ARj1U4WtYoSaKo3PBzNEurbqizwLxe+em7LlwfWDyf1WxGUUFu1Gy7okq3CFZPFdtUUMAh++oDJu/piVA== - dependencies: - bindings "^1.5.0" - debug "^4.3.2" - nan "^2.15.0" - parse-duration "^1.0.0" - prebuild-install "^6.1.4" - - couchset@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/couchset/-/couchset-0.0.11.tgz#fd726ddf3d7b345d472ccd59dc915dd48d63295a" - integrity sha512-e8Cs5dO+VE4aVg3XoxmlFBfHQzIsW4TP2zFsOomf4Ru2lZ0i/wRW/hCFQn/py9iGZIR+0MjbeAPkDFhsS+77cQ== - dependencies: - couchbase "^3.2.1" - debug "^4.3.1" - dotenv "^10.0.0" - graphql "^15.6.0" - graphql-redis-subscriptions "^2.4.0" - graphql-tag "^2.12.5" - graphql-type-json "^0.3.2" - jsonwebtoken "^8.5.1" - lodash "^4.17.20" - ts-morph "^12.0.0" - type-graphql "^1.1.1" - uuid "^8.3.2" - - couchset@^0.0.17: - version "0.0.17" - resolved "https://registry.yarnpkg.com/couchset/-/couchset-0.0.17.tgz#bfd72d327ecd7f464713aa285c552c1e8d3ac61e" - integrity sha512-U+z3a98hsz26inYb+SGvM0SD4ILVdFR9T2fRLA4XmsDJpxUO/Mv9WW0us44dB+paHXoPbA5qK+GBiLLCoixWvw== - dependencies: - couchbase "^3.2.4" - debug "^4.3.1" - dotenv "^10.0.0" - graphql "^15.6.0" - graphql-redis-subscriptions "^2.4.0" - graphql-tag "^2.12.5" - graphql-type-json "^0.3.2" - jsonwebtoken "^8.5.1" - lodash "^4.17.20" - ts-morph "^12.0.0" - type-graphql "^1.1.1" - uuid "^8.3.2" - - create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - - cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - - cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - - crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - - date-and-time@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/date-and-time/-/date-and-time-2.3.0.tgz#1b509be4c938dbbf5fc9c14d66e1daf9fe3cef13" - integrity sha512-DY53oj742mykXjZzDxT7NxH5cxwBRb7FsVG5+8pcV96qU9JQd0UhA21pQB18fwwsXOXeSM0RJV4OzgVxu8eatg== - - debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - - debug@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - - debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - - debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - - decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - - decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - - dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - - deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - - deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - - deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - - define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - - delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - - denque@^1.1.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" - integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== - - detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - - dicer@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.1.tgz#abf28921e3475bc5e801e74e0159fd94f927ba97" - integrity sha512-ObioMtXnmjYs3aRtpIJt9rgQSPCIhKVkFPip+E9GUDyWl8N435znUxK/JfNwGZJ2wnn5JKQ7Ly3vOK5Q5dylGA== - dependencies: - streamsearch "^1.1.0" - - diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - - diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - - doctrine@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" - integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM= - dependencies: - esutils "^1.1.6" - isarray "0.0.1" - - doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - - doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - - dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - - dotenv@*: - version "16.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" - integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== - - dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - - dotenv@^8.2.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - - duplexify@^4.0.0, duplexify@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - - ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - - emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - - emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - - emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - - end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - - enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - - ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - - error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - - es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - - es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - - escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - - escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - - escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - - eslint-config-prettier@^6.11.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== - dependencies: - get-stdin "^6.0.0" - - eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - - eslint-loader@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" - integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== - dependencies: - find-cache-dir "^3.3.1" - fs-extra "^8.1.0" - loader-utils "^2.0.0" - object-hash "^2.0.3" - schema-utils "^2.6.5" - - eslint-module-utils@^2.7.2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - - eslint-plugin-import@^2.20.2: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" - is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" - - eslint-plugin-json@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-2.1.2.tgz#5bc1c221984583c0c5ff21c488386e8263a6bbb7" - integrity sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q== - dependencies: - lodash "^4.17.19" - vscode-json-languageservice "^3.7.0" - - eslint-plugin-prettier@^3.1.4: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== - dependencies: - prettier-linter-helpers "^1.0.0" - - eslint-plugin-simple-import-sort@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.3.tgz#9ae258ddada6efffc55e47a134afbd279eb31fc6" - integrity sha512-1rf3AWiHeWNCQdAq0iXNnlccnH1UDnelGgrPbjBBHE8d2hXVtOudcmy0vTF4hri3iJ0MKz8jBhmH6lJ0ZWZLHQ== - - eslint-plugin-typescript@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-typescript/-/eslint-plugin-typescript-0.14.0.tgz#068549c3f4c7f3f85d88d398c29fa96bf500884c" - integrity sha512-2u1WnnDF2mkWWgU1lFQ2RjypUlmRoBEvQN02y9u+IL12mjWlkKFGEBnVsjs9Y8190bfPQCvWly1c2rYYUSOxWw== - dependencies: - requireindex "~1.1.0" - - eslint-scope@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - - eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - - eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - - eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - - eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.3" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - - espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - - esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - - esquery@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - - esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - - estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - - estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - - esutils@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" - integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U= - - esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - - event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - - execa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - - expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - - extend@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - - external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - - fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - - fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - - fast-glob@^3.2.7: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - - fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - - fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - - fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" - integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== - - fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - - faye-websocket@0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - - figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - - file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - - file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - - fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - - find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - - find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - - find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - - find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - - find-versions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - - firebase-admin@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-10.0.2.tgz#d1142fb40738fa9b62f6625c4e3fc8cbc0ba61c6" - integrity sha512-MLH0SPmC4L0aCHvPjs1KThraru/T84T3hxiPY3uCH7NZEgE/T5n4GwecwU3RcM3X+br75BIBY7qhaR5uCxhdXA== - dependencies: - "@firebase/database-compat" "^0.1.1" - "@firebase/database-types" "^0.9.3" - "@types/node" ">=12.12.47" - dicer "^0.3.0" - jsonwebtoken "^8.5.1" - jwks-rsa "^2.0.2" - node-forge "^1.0.0" - optionalDependencies: - "@google-cloud/firestore" "^4.5.0" - "@google-cloud/storage" "^5.3.0" - - flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - - flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - - flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - - fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - - fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - - fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - - fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - - function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - - functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - - gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - - gaxios@^4.0.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.2.tgz#845827c2dc25a0213c8ab4155c7a28910f5be83f" - integrity sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q== - dependencies: - abort-controller "^3.0.0" - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.1" - - gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - - get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - - get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - - get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - - get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - - get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - - get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - - get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - - get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - - github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= - - glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - - glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - - glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - - globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - - google-auth-library@^7.0.0, google-auth-library@^7.14.0: - version "7.14.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.0.tgz#9d6a20592f7b4d4c463cd3e93934c4b1711d5dc6" - integrity sha512-or8r7qUqGVI3W8lVSdPh0ZpeFyQHeE73g5c0p+bLNTTUFXJ+GSeDQmZRZ2p4H8cF/RJYa4PNvi/A1ar1uVNLFA== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - - google-gax@^2.24.1: - version "2.30.1" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.30.1.tgz#57a2826d53837bc74b071c3d27355c7bed5a9939" - integrity sha512-AR00wrunctUqwKQFl15Yq5bo9NuFLnT0zguZYCf8eAqoOUMbxn9V1L0ONCtV4+P9z7sLu+cjtgl+5b4eRZvktg== - dependencies: - "@grpc/grpc-js" "~1.5.0" - "@grpc/proto-loader" "^0.6.1" - "@types/long" "^4.0.0" - abort-controller "^3.0.0" - duplexify "^4.0.0" - fast-text-encoding "^1.0.3" - google-auth-library "^7.14.0" - is-stream-ended "^0.1.4" - node-fetch "^2.6.1" - object-hash "^3.0.0" - proto3-json-serializer "^0.1.8" - protobufjs "6.11.2" - retry-request "^4.0.0" - - google-p12-pem@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.3.tgz#5497998798ee86c2fc1f4bb1f92b7729baf37537" - integrity sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ== - dependencies: - node-forge "^1.0.0" - - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - - graphql-query-complexity@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" - integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== - dependencies: - lodash.get "^4.4.2" - - graphql-redis-subscriptions@^2.4.0, graphql-redis-subscriptions@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.4.2.tgz#338e77bd180cc5bfc810699ff5f0f5fdc380f90d" - integrity sha512-zMd1G6uZcEvqHZ6PsQ63BfRtw5Bg4cccql1pfkEQsj1vXVWe4p+o8DqNfd9DDUFXIqhHpqkSeN/49BlIwud4Ag== - dependencies: - iterall "^1.3.0" - optionalDependencies: - ioredis "^4.17.3" - - graphql-subscriptions@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - - graphql-tag@^2.12.5: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - - graphql-type-json@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" - integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== - - graphql@^15.6.0: - version "15.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" - integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== - - growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - - gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.1.3" - jws "^4.0.0" - - has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - - has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - - has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - - has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - - has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - - has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - - has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - - hash-stream-validation@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz#ee68b41bf822f7f44db1142ec28ba9ee7ccb7512" - integrity sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ== - - he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - - http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== - - http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - - https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - - human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - - husky@^4.2.5: - version "4.3.8" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" - integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^7.0.0" - find-versions "^4.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^5.0.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" - - iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - - ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - - ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - - import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - - imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - - indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - - inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - - inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - - ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - - inquirer@^7.0.0: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - - internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - - interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - - ioredis@^4.17.3: - version "4.28.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.5.tgz#5c149e6a8d76a7f8fa8a504ffc85b7d5b6797f9f" - integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A== - dependencies: - cluster-key-slot "^1.1.0" - debug "^4.3.1" - denque "^1.1.0" - lodash.defaults "^4.2.0" - lodash.flatten "^4.4.0" - lodash.isarguments "^3.1.0" - p-map "^2.1.0" - redis-commands "1.7.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - - is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - - is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - - is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - - is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - - is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - - is-core-module@^2.8.0, is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - - is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - - is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - - is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - - is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - - is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - - is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - - is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - - is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - - is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - - is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - - is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - - is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - - is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - - is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - - is-stream-ended@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-stream-ended/-/is-stream-ended-0.1.4.tgz#f50224e95e06bce0e356d440a4827cd35b267eda" - integrity sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw== - - is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - - is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - - is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - - is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - - is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - - is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - - isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - - isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - - isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - - iterall@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - - jose@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jose/-/jose-2.0.5.tgz#29746a18d9fff7dcf9d5d2a6f62cb0c7cd27abd3" - integrity sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA== - dependencies: - "@panva/asn1.js" "^1.0.0" - - js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - - js-yaml@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== - dependencies: - argparse "^2.0.1" - - js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - - json-bigint@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" - integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== - dependencies: - bignumber.js "^9.0.0" - - json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - - json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - - json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - - json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - - json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - - jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== - - jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - - jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - - jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - - jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - - jwks-rsa@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-2.0.5.tgz#5dc911cdade803a149b7d4d41404a7c1bf2c221a" - integrity sha512-fliHfsiBRzEU0nXzSvwnh0hynzGB0WihF+CinKbSRlaqRxbqqKf2xbBPgwc8mzf18/WgwlG8e5eTpfSTBcU4DQ== - dependencies: - "@types/express-jwt" "0.0.42" - debug "^4.3.2" - jose "^2.0.5" - limiter "^1.1.5" - lru-memoizer "^2.1.4" - - jws@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== - dependencies: - jwa "^1.4.1" - safe-buffer "^5.0.1" - - jws@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" - integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== - dependencies: - jwa "^2.0.0" - safe-buffer "^5.0.1" - - levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - - limiter@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" - integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== - - lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - - lint-staged@^10.1.7: - version "10.5.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== - dependencies: - chalk "^4.1.0" - cli-truncate "^2.1.0" - commander "^6.2.0" - cosmiconfig "^7.0.0" - debug "^4.2.0" - dedent "^0.7.0" - enquirer "^2.3.6" - execa "^4.1.0" - listr2 "^3.2.2" - log-symbols "^4.0.0" - micromatch "^4.0.2" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" - - listr2@^3.2.2: - version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.1" - through "^2.3.8" - wrap-ansi "^7.0.0" - - loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - - locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - - locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - - locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - - lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - - lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - - lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - - lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - - lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - - lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= - - lodash.isarguments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= - - lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= - - lodash.isinteger@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= - - lodash.isnumber@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= - - lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - - lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - - lodash.once@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - - lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - - log-symbols@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - - log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - - log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - - long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - - loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== - dependencies: - get-func-name "^2.0.0" - - lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - - lru-cache@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" - integrity sha1-HRdnnAac2l0ECZGgnbwsDbN35V4= - dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" - - lru-memoizer@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.1.4.tgz#b864d92b557f00b1eeb322156a0409cb06dafac6" - integrity sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ== - dependencies: - lodash.clonedeep "^4.5.0" - lru-cache "~4.0.0" - - make-dir@^3.0.0, make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - - make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - - merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - - merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - - micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - - mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - - mime-types@^2.0.8: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - - mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - - mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - - mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - - minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - - minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - - minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - - mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - - mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - - mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - - mocha@^8.2.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" - integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.1" - debug "4.3.1" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.1.6" - growl "1.10.5" - he "1.2.0" - js-yaml "4.0.0" - log-symbols "4.0.0" - minimatch "3.0.4" - ms "2.1.3" - nanoid "3.1.20" - serialize-javascript "5.0.1" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - wide-align "1.1.3" - workerpool "6.1.0" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - - ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - - ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - - ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - - mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - - nan@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - - nanoid@3.1.20: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== - - napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - - natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - - nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - - node-abi@^2.21.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" - integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== - dependencies: - semver "^5.4.1" - - node-fetch@^2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - - node-forge@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" - integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== - - normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - - npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - - npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - - number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - - object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - - object-hash@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" - integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== - - object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - - object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - - object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - - object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - - object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - - once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - - onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - - opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - - optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - - os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - - p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - - p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - - p-limit@^3.0.1, p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - - p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - - p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - - p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - - p-map@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - - p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - - p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - - p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - - parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - - parse-duration@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.2.tgz#b9aa7d3a1363cc7e8845bea8fd3baf8a11df5805" - integrity sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg== - - parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - - path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - - path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - - path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - - path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - - path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - - path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - - path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - - path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - - pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - - pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - - pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - - please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - - prebuild-install@^6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" - integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== - dependencies: - detect-libc "^1.0.3" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^2.21.0" - npmlog "^4.0.1" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^3.0.3" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - - prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - - prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - - prettier@^2.0.5: - version "2.6.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" - integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== - - process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - - progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - - proto3-json-serializer@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz#f80f9afc1efe5ed9a9856bbbd17dc7cabd7ce9a3" - integrity sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw== - dependencies: - protobufjs "^6.11.2" - - protobufjs@6.11.2, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: - version "6.11.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" - integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== - 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.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - - pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - - pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - - pumpify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" - integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== - dependencies: - duplexify "^4.1.1" - inherits "^2.0.3" - pump "^3.0.0" - - punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - - qs@^6.6.0: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - - queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - - randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - - rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - - readable-stream@^2.0.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - - readable-stream@^3.1.1, readable-stream@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - - readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - - rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - - redis-commands@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" - integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== - - redis-errors@^1.0.0, redis-errors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= - - redis-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= - dependencies: - redis-errors "^1.0.0" - - reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - - regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - - regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - - require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - - requireindex@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162" - integrity sha1-5UBLgVV+91225JxacgBIk/4D4WI= - - resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - - resolve@^1.1.6, resolve@^1.20.0, resolve@^1.3.2: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - - restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - - retry-request@^4.0.0, retry-request@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" - integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== - dependencies: - debug "^4.1.1" - extend "^3.0.2" - - retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - - reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - - rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - - rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - - rimraf@^2.5.4: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - - run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - - run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - - rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - - rxjs@^7.5.1: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== - dependencies: - tslib "^2.1.0" - - safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - - safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - - "safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - - schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - - semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - - semver-regex@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3" - integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== - - semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - - semver@^6.0.0, semver@^6.1.2: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - - semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - - serialize-javascript@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - - set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - - shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - - shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - - shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - - shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - - shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - - side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - - signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - - simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - - simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - - slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - - slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - - slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - - slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - - snakeize@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/snakeize/-/snakeize-0.1.0.tgz#10c088d8b58eb076b3229bb5a04e232ce126422d" - integrity sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0= - - source-map-support@^0.5.17: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - - source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - - sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - - standard-as-callback@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" - integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== - - stream-events@^1.0.4, stream-events@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" - integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== - dependencies: - stubs "^3.0.0" - - stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - - streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - - string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - - string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - - "string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - - string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - - string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - - string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - - string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - - string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - - stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - - strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - - strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - - strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - - strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - - strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - - strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - - strip-json-comments@3.1.1, strip-json-comments@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - - strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - - stripe@^8.209.0: - version "8.209.0" - resolved "https://registry.yarnpkg.com/stripe/-/stripe-8.209.0.tgz#a8f34132fb4140bdf9152943b15c641ad99cd3b1" - integrity sha512-ozfs8t0fxA/uvCK1DNvitSdEublOHK5CTRsrd2AWWk9LogjXcfkxmtz3KGSSQd+jyA2+rbee9TMzhJ6aabQ5WQ== - dependencies: - "@types/node" ">=8.1.0" - qs "^6.6.0" - - stubs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" - integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= - - supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - - supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - - supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - - supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - - table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - - tar-fs@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - - tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - - teeny-request@^7.0.0: - version "7.1.3" - resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.1.3.tgz#5a3d90c559a6c664a993477b138e331a518765ba" - integrity sha512-Ew3aoFzgQEatLA5OBIjdr1DWJUaC1xardG+qbPPo5k/y/3fMwXLxpjh5UB5dVfElktLaQbbMs80chkz53ByvSg== - dependencies: - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - node-fetch "^2.6.1" - stream-events "^1.0.5" - uuid "^8.0.0" - - text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - - through@^2.3.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - - tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - - to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - - tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - - ts-morph@^12.0.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.2.0.tgz#3332319cecd44aff0b7b410f1fe39637499b1a1b" - integrity sha512-WHXLtFDcIRwoqaiu0elAoZ/AmI+SwwDafnPKjgJmdwJ2gRVO0jMKBt88rV2liT/c6MTsXyuWbGFiHe9MRddWJw== - dependencies: - "@ts-morph/common" "~0.11.1" - code-block-writer "^10.1.1" - - ts-morph@^13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-13.0.3.tgz#c0c51d1273ae2edb46d76f65161eb9d763444c1d" - integrity sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw== - dependencies: - "@ts-morph/common" "~0.12.3" - code-block-writer "^11.0.0" - - ts-node@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - - tsconfig-paths@^3.12.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz#4fcc48f9ccea8826c41b9ca093479de7f5018976" - integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - - tslib@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" - integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== - - tslib@2.3.1, tslib@^2.0.1, tslib@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - - tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - - tslint-config-standard@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-8.0.1.tgz#e4dd3128e84b0e34b51990b68715a641f2b417e4" - integrity sha512-OWG+NblgjQlVuUS/Dmq3ax2v5QDZwRx4L0kEuDi7qFY9UI6RJhhNfoCV1qI4el8Fw1c5a5BTrjQJP0/jhGXY/Q== - dependencies: - tslint-eslint-rules "^5.3.1" - - tslint-eslint-rules@^5.3.1: - version "5.4.0" - resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5" - integrity sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w== - dependencies: - doctrine "0.7.2" - tslib "1.9.0" - tsutils "^3.0.0" - - tslint@^5.11.0: - version "5.20.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" - integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^4.0.1" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - - tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - - tsutils@^3.0.0, tsutils@^3.17.1: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - - tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - - type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - - type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - - type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - - type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - - type-graphql@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" - integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== - dependencies: - "@types/glob" "^7.1.3" - "@types/node" "^14.11.2" - "@types/semver" "^7.3.3" - glob "^7.1.6" - graphql-query-complexity "^0.7.0" - graphql-subscriptions "^1.1.0" - semver "^7.3.2" - tslib "^2.0.1" - - typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - - typescript@^4.4.3: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== - - unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - 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" - - unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - - universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - - uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - - util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - - uuid@^8.0.0, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - - v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - - vscode-json-languageservice@^3.7.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz#ad574b36c4346bd7830f1d34b5a5213d3af8d232" - integrity sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA== - dependencies: - jsonc-parser "^3.0.0" - vscode-languageserver-textdocument "^1.0.1" - vscode-languageserver-types "3.16.0-next.2" - vscode-nls "^5.0.0" - vscode-uri "^2.1.2" - - vscode-languageserver-textdocument@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" - integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== - - vscode-languageserver-types@3.16.0-next.2: - version "3.16.0-next.2" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083" - integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== - - vscode-nls@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840" - integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== - - vscode-uri@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c" - integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== - - webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - - websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - - websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - - whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - - which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - - which-pm-runs@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35" - integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== - - which@2.0.2, which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - - which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - - wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - - wide-align@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - - word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - - workerpool@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" - integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== - - wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - - wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - - wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - - write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - - write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - - xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - - y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - - yallist@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - - yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - - yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - - yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - - yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - - yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - - yargs@16.2.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - - yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - - yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/yarn.lock b/yarn.lock index f1fb692..3e17d56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,106 +111,105 @@ xss "^1.0.8" "@babel/code-frame@^7.0.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" -"@firebase/app-types@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0.tgz#c9e16d1b8bed1a991840b8d2a725fb58d0b5899f" - integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg== +"@codegenie/serverless-express@^4.12.5": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@codegenie/serverless-express/-/serverless-express-4.14.0.tgz#a01d608874d3ef3b53f0d8f50c559542698d2833" + integrity sha512-74hOQzHz+rEhDtTKIdAZ/Gks/PGc9JHxKULBrVl5WBComGv6ceJHewdEKNfDtwPo7d1LKidNFJ2QXGO5pZr2tQ== + +"@fastify/busboy@^1.1.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-1.2.1.tgz#9c6db24a55f8b803b5222753b24fe3aea2ba9ca3" + integrity sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q== + dependencies: + text-decoding "^1.0.0" -"@firebase/auth-interop-types@0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz#5ce13fc1c527ad36f1bb1322c4492680a6cf4964" - integrity sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g== +"@firebase/app-types@0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.8.1.tgz#4c7f916281aed570581fc667e3eb6cc730119a95" + integrity sha512-p75Ow3QhB82kpMzmOntv866wH9eZ3b4+QbUY+8/DA5Zzdf1c8Nsk8B7kbFpzJt4wwHMdy5LTF5YUnoTc1JiWkw== + +"@firebase/auth-interop-types@0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.1.7.tgz#82c8d431779916224d2af5cef6cec2042d830f28" + integrity sha512-yA/dTveGGPcc85JP8ZE/KZqfGQyQTBCV10THdI8HTlP1GDvNrhr//J5jAt58MlsCOaO3XmC4DqScPBbtIsR/EA== -"@firebase/component@0.5.10": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.5.10.tgz#eab8acfd9b1a2b6534a63cbcd7cbc7660c47663d" - integrity sha512-mzUpg6rsBbdQJvAdu1rNWabU3O7qdd+B+/ubE1b+pTbBKfw5ySRpRRE6sKcZ/oQuwLh0HHB6FRJHcylmI7jDzA== +"@firebase/component@0.5.21": + version "0.5.21" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.5.21.tgz#bb10add24fe2ee59a61163a469d4711d8da4002d" + integrity sha512-12MMQ/ulfygKpEJpseYMR0HunJdlsLrwx2XcEs40M18jocy2+spyzHHEwegN3x/2/BLFBjR5247Etmz0G97Qpg== dependencies: - "@firebase/util" "1.4.3" + "@firebase/util" "1.7.3" tslib "^2.1.0" -"@firebase/database-compat@^0.1.1": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.5.tgz#df451ce6a8d0ea2ebc2b1c8017da7d773424371d" - integrity sha512-UVxkHL24sZfsjsjs+yiKIdYdrWXHrLxSFCYNdwNXDlTkAc0CWP9AAY3feLhBVpUKk+4Cj0I4sGnyIm2C1ltAYg== +"@firebase/database-compat@^0.2.0": + version "0.2.10" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.2.10.tgz#fa4440db9f41a9a05112642504c1e6557a75b8be" + integrity sha512-fK+IgUUqVKcWK/gltzDU+B1xauCOfY6vulO8lxoNTkcCGlSxuTtwsdqjGkFmgFRMYjXFWWJ6iFcJ/vXahzwCtA== dependencies: - "@firebase/component" "0.5.10" - "@firebase/database" "0.12.5" - "@firebase/database-types" "0.9.4" - "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.3" + "@firebase/component" "0.5.21" + "@firebase/database" "0.13.10" + "@firebase/database-types" "0.9.17" + "@firebase/logger" "0.3.4" + "@firebase/util" "1.7.3" tslib "^2.1.0" -"@firebase/database-types@0.9.4", "@firebase/database-types@^0.9.3": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.4.tgz#08b7da33d8dca8f5adab45bfb1cdf8654f2c6720" - integrity sha512-uAQuc6NUZ5Oh/cWZPeMValtcZ+4L1stgKOeYvz7mLn8+s03tnCDL2N47OLCHdntktVkhImQTwGNARgqhIhtNeA== +"@firebase/database-types@0.9.17", "@firebase/database-types@^0.9.7": + version "0.9.17" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.17.tgz#4c248052b0a9ae052ba940e4996a0bfab25dc257" + integrity sha512-YQm2tCZyxNtEnlS5qo5gd2PAYgKCy69tUKwioGhApCFThW+mIgZs7IeYeJo2M51i4LCixYUl+CvnOyAnb/c3XA== dependencies: - "@firebase/app-types" "0.7.0" - "@firebase/util" "1.4.3" + "@firebase/app-types" "0.8.1" + "@firebase/util" "1.7.3" -"@firebase/database@0.12.5": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.5.tgz#e7f8e8052c3038aff79633e5395c3cc5c30ca7b2" - integrity sha512-1Pd2jYqvqZI7SQWAiXbTZxmsOa29PyOaPiUtr8pkLSfLp4AeyMBegYAXCLYLW6BNhKn3zNKFkxYDxYHq4q+Ixg== +"@firebase/database@0.13.10": + version "0.13.10" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.13.10.tgz#c24e0219490b9c1fabfb7b42cb45850e145fe56d" + integrity sha512-KRucuzZ7ZHQsRdGEmhxId5jyM2yKsjsQWF9yv0dIhlxYg0D8rCVDZc/waoPKA5oV3/SEIoptF8F7R1Vfe7BCQA== dependencies: - "@firebase/auth-interop-types" "0.1.6" - "@firebase/component" "0.5.10" - "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.3" + "@firebase/auth-interop-types" "0.1.7" + "@firebase/component" "0.5.21" + "@firebase/logger" "0.3.4" + "@firebase/util" "1.7.3" faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/logger@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.3.2.tgz#5046ffa8295c577846d54b6ca95645a03809800e" - integrity sha512-lzLrcJp9QBWpo40OcOM9B8QEtBw2Fk1zOZQdvv+rWS6gKmhQBCEMc4SMABQfWdjsylBcDfniD1Q+fUX1dcBTXA== +"@firebase/logger@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.3.4.tgz#8822dd3e9168be93c1bce0b4ac235e3b165a6a68" + integrity sha512-hlFglGRgZEwoyClZcGLx/Wd+zoLfGmbDkFx56mQt/jJ0XMbfPqwId1kiPl0zgdWZX+D8iH+gT6GuLPFsJWgiGw== dependencies: tslib "^2.1.0" -"@firebase/util@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.4.3.tgz#4358cf5f18beaa9c8a1e5a5fc4c7c44a4ccd4b7b" - integrity sha512-gQJl6r0a+MElLQEyU8Dx0kkC2coPj67f/zKZrGR7z7WpLgVanhaCUqEsptwpwoxi9RMFIaebleG+C9xxoARq+Q== +"@firebase/util@1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.7.3.tgz#e71640b6b2970b754f947235ceb10cba3f70e62c" + integrity sha512-wxNqWbqokF551WrJ9BIFouU/V5SL1oYCGx1oudcirdhadnQRFH5v1sjgGL7cUV/UsekSycygphdrF2lxBxOYKg== dependencies: tslib "^2.1.0" -"@google-cloud/common@^3.8.1": - version "3.10.0" - resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-3.10.0.tgz#454d1155bb512109cd83c6183aabbd39f9aabda7" - integrity sha512-XMbJYMh/ZSaZnbnrrOFfR/oQrb0SxG4qh6hDisWCoEbFcBHV0qHQo4uXfeMCzolx2Mfkh6VDaOGg+hyJsmxrlw== - dependencies: - "@google-cloud/projectify" "^2.0.0" - "@google-cloud/promisify" "^2.0.0" - arrify "^2.0.1" - duplexify "^4.1.1" - ent "^2.2.0" - extend "^3.0.2" - google-auth-library "^7.14.0" - retry-request "^4.2.2" - teeny-request "^7.0.0" - -"@google-cloud/firestore@^4.5.0": +"@google-cloud/firestore@^4.15.1": version "4.15.1" resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-4.15.1.tgz#ed764fc76823ce120e68fe8c27ef1edd0650cd93" integrity sha512-2PWsCkEF1W02QbghSeRsNdYKN1qavrHBP3m72gPDMHQSYrGULOaTi7fSJquQmAtc4iPVB2/x6h80rdLHTATQtA== @@ -238,32 +237,33 @@ resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== -"@google-cloud/storage@^5.3.0": - version "5.18.2" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-5.18.2.tgz#0ded98a69323d253e6dd986650edc89b5c504bf9" - integrity sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg== +"@google-cloud/storage@^5.18.3": + version "5.20.5" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-5.20.5.tgz#1de71fc88d37934a886bc815722c134b162d335d" + integrity sha512-lOs/dCyveVF8TkVFnFSF7IGd0CJrTm91qiK6JLu+Z8qiT+7Ag0RyVhxZIWkhiACqwABo7kSHDm8FdH8p2wxSSw== dependencies: - "@google-cloud/common" "^3.8.1" "@google-cloud/paginator" "^3.0.7" + "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" abort-controller "^3.0.0" arrify "^2.0.0" async-retry "^1.3.3" compressible "^2.0.12" configstore "^5.0.0" - date-and-time "^2.0.0" duplexify "^4.0.0" + ent "^2.2.0" extend "^3.0.2" gaxios "^4.0.0" - get-stream "^6.0.0" - google-auth-library "^7.0.0" + google-auth-library "^7.14.1" hash-stream-validation "^0.2.2" mime "^3.0.0" mime-types "^2.0.8" p-limit "^3.0.1" pumpify "^2.0.0" - snakeize "^0.1.0" + retry-request "^4.2.2" stream-events "^1.0.4" + teeny-request "^7.1.3" + uuid "^8.0.0" xdg-basedir "^4.0.0" "@graphql-tools/merge@8.3.1": @@ -332,25 +332,35 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@grpc/grpc-js@~1.5.0": - version "1.5.9" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.5.9.tgz#df44b3d6bc1d5eb4779aab96e00f6084fd07a3c8" - integrity sha512-un+cXqErq5P4p3+WgYVNVh7FB51MSnaoRef7QWDcMXKR6FX2R6Z/bltcJMxNNdTUMC85lkOQcpnAAetFziPSng== +"@grpc/grpc-js@~1.6.0": + version "1.6.12" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.12.tgz#20f710d8a8c5c396b2ae9530ba6c06b984614fdf" + integrity sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw== dependencies: - "@grpc/proto-loader" "^0.6.4" + "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" -"@grpc/proto-loader@^0.6.1", "@grpc/proto-loader@^0.6.4": - version "0.6.9" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.9.tgz#4014eef366da733f8e04a9ddd7376fe8a58547b7" - integrity sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg== +"@grpc/proto-loader@^0.6.12": + version "0.6.13" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.13.tgz#008f989b72a40c60c96cd4088522f09b05ac66bc" + integrity sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" long "^4.0.0" - protobufjs "^6.10.0" + protobufjs "^6.11.3" yargs "^16.2.0" +"@grpc/proto-loader@^0.7.0": + version "0.7.12" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.12.tgz#787b58e3e3771df30b1567c057b6ab89e3a42911" + integrity sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + "@ioredis/commands@^1.1.1": version "1.2.0" resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" @@ -376,36 +386,6 @@ semver "^7.3.5" tar "^6.1.11" -"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" - integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ== - -"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3" - integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw== - -"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367" - integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg== - -"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399" - integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA== - -"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz#091b1218b66c341f532611477ef89e83f25fae4f" - integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA== - -"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" - integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -427,13 +407,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nowpaymentsio/nowpayments-api-js@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@nowpaymentsio/nowpayments-api-js/-/nowpayments-api-js-1.0.5.tgz#0d217aaddb1664986cb18d5c5caf6e53e0c6ca0e" - integrity sha512-B9RTq8gDrdV0ccakHWRccxUow1N7xGTz+tgjnKXhL5T/T2dah96Otc5FS1GTWzwtdFmlMgntKQnWmQ5kss4qrQ== - dependencies: - axios "^0.21.1" - "@panva/asn1.js@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" @@ -447,7 +420,7 @@ "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" @@ -462,12 +435,12 @@ "@protobufjs/eventemitter@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== "@protobufjs/fetch@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" "@protobufjs/inquire" "^1.1.0" @@ -475,34 +448,27 @@ "@protobufjs/float@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== "@protobufjs/inquire@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== "@protobufjs/path@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== "@protobufjs/pool@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== "@protobufjs/utf8@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= - -"@roadmanjs/auth-client@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@roadmanjs/auth-client/-/auth-client-0.0.32.tgz#ab17303a9b605eae4b6b433f5b3075db02854c2a" - integrity sha512-V5a96qIHEn/pqFF+bJ4xgTbrujf8JI5vcN3Xu++rudq7GVmqyK+wbAQ3XergYj8GgaMrHJCUl69vjKjwveKgiQ== - dependencies: - graphql-tag "^2.12.5" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@roadmanjs/auth@^0.0.32": version "0.0.32" @@ -628,18 +594,26 @@ path-browserify "^1.0.1" "@types/accepts@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + version "1.3.7" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265" + integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== dependencies: "@types/node" "*" "@types/aws-lambda@^8.10.76": - version "8.10.119" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.119.tgz#aaf010a9c892b3e29a290e5c49bfe8bcec82c455" - integrity sha512-Vqm22aZrCvCd6I5g1SvpW151jfqwTzEZ7XJ3yZ6xaZG31nUEOEyzzVImjRcsN8Wi/QyPxId/x8GTtgIbsy8kEw== + version "8.10.136" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.136.tgz#12a2af86b9123f4e4549992b27e1bf0dcf60d9f9" + integrity sha512-cmmgqxdVGhxYK9lZMYYXYRJk6twBo53ivtXjIUEFZxfxe4TkZTZBK3RRWrY2HjJcUIix0mdifn15yjOAat5lTA== + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" -"@types/body-parser@*", "@types/body-parser@1.19.2": +"@types/body-parser@1.19.2": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== @@ -648,33 +622,21 @@ "@types/node" "*" "@types/busboy@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-1.5.0.tgz#62681556cbbd2afc8d2efa6bafaa15602f0838b9" - integrity sha512-ncOOhwmyFDW76c/Tuvv9MA9VGYUCn8blzyWmzYELcNGDb0WXWLSmFi7hJq25YdRBYJrmMBB5jZZwUjlJe9HCjQ== + version "1.5.3" + resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-1.5.3.tgz#016c68692c767f0cf9d23c90a85a9c322f92cbc5" + integrity sha512-YMBLFN/xBD8bnqywIlGyYqsNFXu6bsiY7h3Ae0kO17qEuTjsqeyYMRPSUDacIKIquws2Y6KjmxAyNx8xB3xQbw== dependencies: "@types/node" "*" "@types/chai@^4.2.14": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.0.tgz#23509ebc1fa32f1b4d50d6a66c4032d5b8eaabdc" - integrity sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw== - -"@types/chalk@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba" - integrity sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw== - dependencies: - chalk "*" - -"@types/coinbase@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@types/coinbase/-/coinbase-2.0.8.tgz#71ddb373525a4e20b7d432fdaa216128ac1a623f" - integrity sha512-zoOtXUe5kyjCXLM5RMqBF6izHLwlImc512x3oZ6ePhsmSkjezS9vgs5hzpk2K+jCzpGOQ7e1ymYXvbOQcLzubg== + version "4.3.14" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.14.tgz#ae3055ea2be43c91c9fd700a36d67820026d96e6" + integrity sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w== "@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" @@ -684,9 +646,9 @@ integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== "@types/debug@^4.1.5": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" @@ -702,14 +664,6 @@ resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== -"@types/express-jwt@0.0.42": - version "0.0.42" - resolved "https://registry.yarnpkg.com/@types/express-jwt/-/express-jwt-0.0.42.tgz#4f04e1fadf9d18725950dc041808a4a4adf7f5ae" - integrity sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag== - dependencies: - "@types/express" "*" - "@types/express-unless" "*" - "@types/express-serve-static-core@4.17.31": version "4.17.31" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" @@ -719,39 +673,33 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== +"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.33": + version "4.17.43" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" + integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" + "@types/send" "*" -"@types/express-unless@*": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@types/express-unless/-/express-unless-0.5.3.tgz#271f8603617445568ed0d6efe25a7d2f338544c1" - integrity sha512-TyPLQaF6w8UlWdv4gj8i46B+INBVzURBNRahCozCSXfsK2VTlL1wNyTlMKw817VHygBtlcl5jfnPadlydr06Yw== - dependencies: - "@types/express" "*" - -"@types/express@*": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== +"@types/express@4.17.14": + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" "@types/qs" "*" "@types/serve-static" "*" -"@types/express@4.17.14": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== +"@types/express@^4.17.14": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" + "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" "@types/serve-static" "*" @@ -763,42 +711,52 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/ioredis@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-5.0.0.tgz#c1ea7e2f3e2c5a942a27cfee6f62ddcfb23fb3e7" - integrity sha512-zJbJ3FVE17CNl5KXzdeSPtdltc4tMT3TzC6fxQS0sQngkbFZ6h+0uTafsRqu+eSLIugf6Yb0Ea0SUuRr42Nk9g== - dependencies: - ioredis "*" +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/jsonwebtoken@^8.5.9": + version "8.5.9" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz#2c064ecb0b3128d837d2764aa0b117b0ff6e4586" + integrity sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg== + dependencies: + "@types/node" "*" "@types/lodash@^4.14.168": - version "4.14.180" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.180.tgz#4ab7c9ddfc92ec4a887886483bc14c79fb380670" - integrity sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g== + version "4.17.0" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.0.tgz#d774355e41f372d5350a4d0714abb48194a489c3" + integrity sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA== "@types/long@^4.0.0", "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/mime@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== "@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/mocha@^8.2.0": version "8.2.3" @@ -806,14 +764,16 @@ integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== "@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=8.1.0": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "20.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.2.tgz#9facdd11102f38b21b4ebedd9d7999663343d72e" + integrity sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ== + dependencies: + undici-types "~5.26.4" "@types/node@^10.0.3", "@types/node@^10.1.0": version "10.17.60" @@ -821,43 +781,52 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^14.11.2": - version "14.18.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" - integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== + version "14.18.63" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" + integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== "@types/object-path@^0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.1.tgz#eea5b357518597fc9c0a067ea3147f599fc1514f" - integrity sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg== + version "0.11.4" + resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.4.tgz#a14529227500faf7891d003b2c7f5772c4a5dfdc" + integrity sha512-4tgJ1Z3elF/tOMpA8JLVuR9spt9Ynsf7+JjqsQ2IqtiPJtcLoHoXcT6qU4E10cPFqyXX5HDm9QwIzZhBSkLxsw== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.14" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.14.tgz#169e142bfe493895287bee382af6039795e9b75b" + integrity sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/semver@^7.3.3": - version "7.3.9" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" - integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: "@types/mime" "^1" "@types/node" "*" +"@types/serve-static@*": + version "1.15.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== + dependencies: + "@types/http-errors" "*" + "@types/mime" "*" + "@types/node" "*" + "@types/source-map-support@^0.4.0": version "0.4.2" resolved "https://registry.yarnpkg.com/@types/source-map-support/-/source-map-support-0.4.2.tgz#5b9f4502183430511bb90e84a6e4bf4214e55a67" @@ -936,9 +905,11 @@ integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== "@vendia/serverless-express@^4.3.9": - version "4.10.4" - resolved "https://registry.yarnpkg.com/@vendia/serverless-express/-/serverless-express-4.10.4.tgz#041c04cf47a8053392299dee244283fdfe84766e" - integrity sha512-OH2cX+LqtrayCIkHAkShiLnvrgqGDvwIQEex5dHc/uJitBQjIz3q7dZtfU7cZ5vcR9Vkide5xJQDBEMbXoWLeA== + version "4.12.6" + resolved "https://registry.yarnpkg.com/@vendia/serverless-express/-/serverless-express-4.12.6.tgz#332a3c3e2c07069dbb8d3e95d69b23de2fe6dec2" + integrity sha512-ePsIPk3VQwgm5nh/JGBtTKQs5ZOF7REjHxC+PKk/CHvhlKQkJuUU365uPOlxuLJhC+BAefDznDRReWxpnKjmYg== + dependencies: + "@codegenie/serverless-express" "^4.12.5" abbrev@1: version "1.1.1" @@ -990,16 +961,6 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^5.1.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1010,11 +971,16 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-colors@4.1.1, ansi-colors@^4.1.1: +ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1022,15 +988,10 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: version "4.1.1" @@ -1057,9 +1018,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: color-convert "^2.0.1" anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1079,10 +1040,10 @@ apollo-reporting-protobuf@^3.4.0: dependencies: "@apollo/protobufjs" "1.2.6" -apollo-server-core@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.12.0.tgz#8aa2a7329ce6fe1823290c45168c749db01548df" - integrity sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg== +apollo-server-core@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.13.0.tgz#ad6601fbb34cc97eedca27a9fb0b5738d11cd27d" + integrity sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" "@apollo/utils.logger" "^1.0.0" @@ -1120,10 +1081,10 @@ apollo-server-errors@^3.3.1: resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -apollo-server-express@^3.12.0, apollo-server-express@^3.6.2: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.12.0.tgz#a6e392bb0427544b8c7e5d841ef07f7691b0c105" - integrity sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ== +apollo-server-express@^3.13.0, apollo-server-express@^3.6.2: + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.13.0.tgz#0d8d9bbba3b8b8264912d215f63fd44e74d5f42a" + integrity sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g== dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" @@ -1131,21 +1092,21 @@ apollo-server-express@^3.12.0, apollo-server-express@^3.6.2: "@types/express" "4.17.14" "@types/express-serve-static-core" "4.17.31" accepts "^1.3.5" - apollo-server-core "^3.12.0" + apollo-server-core "^3.13.0" apollo-server-types "^3.8.0" body-parser "^1.19.0" cors "^2.8.5" parseurl "^1.3.3" apollo-server-lambda@^3.10.2: - version "3.12.0" - resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-3.12.0.tgz#cff33ec507e06d787525a4b21bca12636c9f94a6" - integrity sha512-wojpLlNreecaQwX4HMFugXkjaTrdg4ujfDRAOQHRTKq6OtqZWgJGWGP2btuNX65v+qdknLqF9/YD7KePgUFggw== + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-3.13.0.tgz#c9ce06e54c5b551254bc7716be93c0c906b715cc" + integrity sha512-DIwKwWo7tDHGP8aRDEHiGObxIqEeFUIJfx6qD0UIPlPix2Pgo87CJhviUi22MFpmLM8N8YF8ns42QJSB8hlWGw== dependencies: "@types/aws-lambda" "^8.10.76" "@vendia/serverless-express" "^4.3.9" - apollo-server-core "^3.12.0" - apollo-server-express "^3.12.0" + apollo-server-core "^3.13.0" + apollo-server-express "^3.13.0" express "^4.17.1" apollo-server-plugin-base@^3.7.2: @@ -1165,11 +1126,6 @@ apollo-server-types@^3.8.0: apollo-reporting-protobuf "^3.4.0" apollo-server-env "^4.2.1" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -1183,23 +1139,15 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argon2@^0.31.0: - version "0.31.1" - resolved "https://registry.yarnpkg.com/argon2/-/argon2-0.31.1.tgz#c8560bc76b12681afea13e28f3417aaa4b84c466" - integrity sha512-ik2xnJrLXazya7m4Nz1XfBSRjXj8Koq8qF9PsQC8059p20ifWc9zx/hgU3ItZh/3TnwXkv0RbhvjodPkmFf0bg== + version "0.31.2" + resolved "https://registry.yarnpkg.com/argon2/-/argon2-0.31.2.tgz#bb6590a63b8ff71c4a3a1907572893ff8dd9ffff" + integrity sha512-QSnJ8By5Mth60IEte45w9Y7v6bWcQw3YhRtJKKN8oNCxnTLDiv/AXXkDPf2srTMfxFVn3QJdVv2nhXESsUa+Yg== dependencies: "@mapbox/node-pre-gyp" "^1.0.11" "@phc/format" "^1.0.0" @@ -1217,48 +1165,82 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== +array-includes@^3.1.7: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" is-string "^1.0.7" -array.prototype.flat@^1.2.5: +array.prototype.findlastindex@^1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" -arrify@^2.0.0, arrify@^2.0.1: +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -1281,27 +1263,12 @@ async-retry@^1.2.1, async-retry@^1.3.3: dependencies: retry "0.13.1" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== dependencies: - follow-redirects "^1.14.0" + possible-typed-array-names "^1.0.0" backo2@^1.0.2: version "1.0.2" @@ -1318,27 +1285,20 @@ base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== bignumber.js@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bindings@^1.5.0: version "1.5.0" @@ -1356,25 +1316,7 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -body-parser@^1.19.0: +body-parser@1.20.2, body-parser@^1.19.0: version "1.20.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== @@ -1392,20 +1334,6 @@ body-parser@^1.19.0: type-is "~1.6.18" unpipe "1.0.0" -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE= - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - integrity sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw== - dependencies: - hoek "4.x.x" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1414,7 +1342,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1429,7 +1357,7 @@ browser-stdout@1.3.1: buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== buffer-from@^1.0.0: version "1.1.2" @@ -1447,20 +1375,14 @@ buffer@^5.5.0: builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== -bull@^4.11.3: - version "4.11.3" - resolved "https://registry.yarnpkg.com/bull/-/bull-4.11.3.tgz#466214c8d2aa6ac4fc3133c3616d31a37af4c099" - integrity sha512-DhS0XtiAuejkAY08iGOdDK35eex/yGNoezlWqGJTu9FqWFF/oBjUhpsusE9SXiI4culyDbOoFs+l3ar0VXhFqQ== +busboy@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" + integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== dependencies: - cron-parser "^4.2.1" - get-port "^5.1.1" - ioredis "^5.3.2" - lodash "^4.17.21" - msgpackr "^1.5.2" - semver "^7.5.2" - uuid "^8.3.0" + dicer "0.3.0" busboy@^1.6.0: version "1.6.0" @@ -1474,13 +1396,16 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" callsites@^3.0.0: version "3.1.0" @@ -1492,30 +1417,20 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - chai@^4.2.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - loupe "^2.3.1" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@*: - version "5.0.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" - integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== + type-detect "^4.0.8" -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: +chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1537,10 +1452,12 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" chokidar@3.5.1: version "3.5.1" @@ -1614,15 +1531,19 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cluster-key-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" - integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== code-block-writer@^10.1.1: version "10.1.1" @@ -1630,26 +1551,9 @@ code-block-writer@^10.1.1: integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== code-block-writer@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.0.tgz#5956fb186617f6740e2c3257757fea79315dd7d4" - integrity sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w== - dependencies: - tslib "2.3.1" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -coinbase@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/coinbase/-/coinbase-2.0.8.tgz#fddd0de47b07b33fd8d3dfa3d4573370db8e3664" - integrity sha1-/d0N5HsHsz/Y09+j1FczcNuONmQ= - dependencies: - http-errors "1.3.1" - lodash "3.1.0" - object-assign "2.0.0" - request "2.85.0" + version "11.0.3" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.3.tgz#9eec2993edfb79bfae845fbc093758c0a0b73b76" + integrity sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw== color-convert@^1.9.0: version "1.9.3" @@ -1668,7 +1572,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -1681,16 +1585,9 @@ color-support@^1.1.2: integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - -combined-stream@^1.0.6, combined-stream@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== commander@^2.12.1, commander@^2.20.3: version "2.20.3" @@ -1705,7 +1602,7 @@ commander@^6.2.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-versions@^3.6.0: version "3.6.0" @@ -1722,7 +1619,7 @@ compressible@^2.0.12: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== configstore@^5.0.0: version "5.0.1" @@ -1736,10 +1633,10 @@ configstore@^5.0.0: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== content-disposition@0.5.4: version "0.5.4" @@ -1771,20 +1668,10 @@ cookie@0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== cors@^2.8.5: version "2.8.5" @@ -1795,9 +1682,9 @@ cors@^2.8.5: vary "^1" cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -1806,15 +1693,15 @@ cosmiconfig@^7.0.0: yaml "^1.10.0" couchbase@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/couchbase/-/couchbase-3.2.4.tgz#ba879c02a5079cd8487bc0fe2fb8d5d397678c5d" - integrity sha512-Tp1o7ARj1U4WtYoSaKo3PBzNEurbqizwLxe+em7LlwfWDyf1WxGUUFu1Gy7okq3CFZPFdtUUMAh++oDJu/piVA== + version "3.2.7" + resolved "https://registry.yarnpkg.com/couchbase/-/couchbase-3.2.7.tgz#437eeb3db57f1645ff625f7892d6e684b12b2d24" + integrity sha512-ByECtfpXVE/h0dXHv/hgZjEyn49WDbW9KbXK++RC69jp2ZedsV24ekwlMxd9V0Yot9pGFLock0AC3p9/vLJGhQ== dependencies: bindings "^1.5.0" - debug "^4.3.2" - nan "^2.15.0" - parse-duration "^1.0.0" - prebuild-install "^6.1.4" + debug "^4.3.4" + nan "^2.17.0" + parse-duration "^1.0.2" + prebuild-install "^7.1.1" couchset@^0.0.14: version "0.0.14" @@ -1857,13 +1744,6 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cron-parser@^4.2.1: - version "4.9.0" - resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.9.0.tgz#0340694af3e46a0894978c6f52a6dbb5c0f11ad5" - integrity sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q== - dependencies: - luxon "^3.2.1" - cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1884,13 +1764,6 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -cryptiles@3.x.x: - version "3.1.4" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.4.tgz#769a68c95612b56faadfcebf57ac86479cbe8322" - integrity sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw== - dependencies: - boom "5.x.x" - crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -1901,29 +1774,44 @@ cssfilter@0.0.10: resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== dependencies: - assert-plus "^1.0.0" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" -date-and-time@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/date-and-time/-/date-and-time-2.3.0.tgz#1b509be4c938dbbf5fc9c14d66e1daf9fe3cef13" - integrity sha512-DY53oj742mykXjZzDxT7NxH5cxwBRb7FsVG5+8pcV96qU9JQd0UhA21pQB18fwwsXOXeSM0RJV4OzgVxu8eatg== +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" -debug@2.6.9, debug@^2.6.9: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -1941,34 +1829,27 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: - mimic-response "^2.0.0" + mimic-response "^3.1.0" dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== +deep-eql@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" @@ -1982,22 +1863,28 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - object-keys "^1.0.12" + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^1.1.0: version "1.5.1" @@ -2014,27 +1901,27 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-libc@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" - integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== -dicer@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.1.tgz#abf28921e3475bc5e801e74e0159fd94f927ba97" - integrity sha512-ObioMtXnmjYs3aRtpIJt9rgQSPCIhKVkFPip+E9GUDyWl8N435znUxK/JfNwGZJ2wnn5JKQ7Ly3vOK5Q5dylGA== +dicer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" + integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== dependencies: - streamsearch "^1.1.0" + streamsearch "0.1.2" diff@5.0.0: version "5.0.0" @@ -2049,7 +1936,7 @@ diff@^4.0.1: doctrine@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" - integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM= + integrity sha512-qiB/Rir6Un6Ad/TIgTRzsremsTGWzs8j7woXvp14jgq00676uBiBT5eUOi+FgRywZFVy5Us/c04ISRpZhRbS6w== dependencies: esutils "^1.1.6" isarray "0.0.1" @@ -2076,9 +1963,9 @@ dot-prop@^5.2.0: is-obj "^2.0.0" dotenv@*: - version "16.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" - integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== dotenv@^10.0.0: version "10.0.0" @@ -2091,22 +1978,14 @@ dotenv@^8.2.0: integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== duplexify@^4.0.0, duplexify@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + version "4.1.3" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" + integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== dependencies: end-of-stream "^1.4.1" inherits "^2.0.3" readable-stream "^3.1.1" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" + stream-shift "^1.0.2" ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" @@ -2148,16 +2027,17 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: once "^1.4.0" enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" + strip-ansi "^6.0.1" ent@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== error-ex@^1.3.1: version "1.3.2" @@ -2166,31 +2046,92 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.3" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -2202,9 +2143,9 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" @@ -2219,7 +2160,7 @@ escape-string-regexp@4.0.0: escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eslint-config-prettier@^6.11.0: version "6.15.0" @@ -2228,13 +2169,14 @@ eslint-config-prettier@^6.11.0: dependencies: get-stdin "^6.0.0" -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.13.0" + resolve "^1.22.4" eslint-loader@^4.0.2: version "4.0.2" @@ -2247,32 +2189,35 @@ eslint-loader@^4.0.2: object-hash "^2.0.3" schema-utils "^2.6.5" -eslint-module-utils@^2.7.2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== dependencies: debug "^3.2.7" - find-up "^2.1.0" eslint-plugin-import@^2.20.2: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" eslint-plugin-json@^2.1.1: version "2.1.2" @@ -2386,9 +2331,9 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -2412,7 +2357,7 @@ estraverse@^5.1.0, estraverse@^5.2.0: esutils@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" - integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U= + integrity sha512-RG1ZkUT7iFJG9LSHr7KDuuMSlujfeTtMNIcInURxKAxhMtwQhI3NrQhz26gZQYlsYZQKzsnwtpKrFKj9K9Qu1A== esutils@^2.0.2: version "2.0.3" @@ -2455,16 +2400,16 @@ expand-template@^2.0.3: integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== express@^4.17.1: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -2491,7 +2436,7 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend@^3.0.2, extend@~3.0.1: +extend@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -2505,35 +2450,20 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.2.7: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -2549,17 +2479,17 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" - integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== + version "1.0.6" + resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" + integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -2626,13 +2556,6 @@ find-up@5.0.0, find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2649,20 +2572,21 @@ find-versions@^4.0.0: semver-regex "^3.1.2" firebase-admin@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-10.0.2.tgz#d1142fb40738fa9b62f6625c4e3fc8cbc0ba61c6" - integrity sha512-MLH0SPmC4L0aCHvPjs1KThraru/T84T3hxiPY3uCH7NZEgE/T5n4GwecwU3RcM3X+br75BIBY7qhaR5uCxhdXA== + version "10.3.0" + resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-10.3.0.tgz#6ac2a528d11e52e20cb7e417730b057b83900422" + integrity sha512-A0wgMLEjyVyUE+heyMJYqHRkPVjpebhOYsa47RHdrTM4ltApcx8Tn86sUmjqxlfh09gNnILAm7a8q5+FmgBYpg== dependencies: - "@firebase/database-compat" "^0.1.1" - "@firebase/database-types" "^0.9.3" + "@fastify/busboy" "^1.1.0" + "@firebase/database-compat" "^0.2.0" + "@firebase/database-types" "^0.9.7" "@types/node" ">=12.12.47" - dicer "^0.3.0" jsonwebtoken "^8.5.1" jwks-rsa "^2.0.2" - node-forge "^1.0.0" + node-forge "^1.3.1" + uuid "^8.3.2" optionalDependencies: - "@google-cloud/firestore" "^4.5.0" - "@google-cloud/storage" "^5.3.0" + "@google-cloud/firestore" "^4.15.1" + "@google-cloud/storage" "^5.18.3" flat-cache@^2.0.1: version "2.0.1" @@ -2683,24 +2607,12 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -follow-redirects@^1.14.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.1: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" + is-callable "^1.1.3" forwarded@0.2.0: version "0.2.0" @@ -2741,22 +2653,37 @@ fs-minipass@^2.0.0: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gauge@^3.0.0: version "3.0.2" @@ -2773,30 +2700,16 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - gaxios@^4.0.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.2.tgz#845827c2dc25a0213c8ab4155c7a28910f5be83f" - integrity sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q== + version "4.3.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" + integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== dependencies: abort-controller "^3.0.0" extend "^3.0.2" https-proxy-agent "^5.0.0" is-stream "^2.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" gcp-metadata@^4.2.0: version "4.3.1" @@ -2811,30 +2724,27 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -2847,30 +2757,19 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: - assert-plus "^1.0.0" + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.0: version "5.1.2" @@ -2892,14 +2791,14 @@ glob@7.1.6: path-is-absolute "^1.0.0" glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -2910,10 +2809,17 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -google-auth-library@^7.0.0, google-auth-library@^7.14.0: - version "7.14.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.0.tgz#9d6a20592f7b4d4c463cd3e93934c4b1711d5dc6" - integrity sha512-or8r7qUqGVI3W8lVSdPh0ZpeFyQHeE73g5c0p+bLNTTUFXJ+GSeDQmZRZ2p4H8cF/RJYa4PNvi/A1ar1uVNLFA== +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +google-auth-library@^7.14.0, google-auth-library@^7.14.1: + version "7.14.1" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" + integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== dependencies: arrify "^2.0.0" base64-js "^1.3.0" @@ -2926,12 +2832,12 @@ google-auth-library@^7.0.0, google-auth-library@^7.14.0: lru-cache "^6.0.0" google-gax@^2.24.1: - version "2.30.1" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.30.1.tgz#57a2826d53837bc74b071c3d27355c7bed5a9939" - integrity sha512-AR00wrunctUqwKQFl15Yq5bo9NuFLnT0zguZYCf8eAqoOUMbxn9V1L0ONCtV4+P9z7sLu+cjtgl+5b4eRZvktg== + version "2.30.5" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.30.5.tgz#e836f984f3228900a8336f608c83d75f9cb73eff" + integrity sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ== dependencies: - "@grpc/grpc-js" "~1.5.0" - "@grpc/proto-loader" "^0.6.1" + "@grpc/grpc-js" "~1.6.0" + "@grpc/proto-loader" "^0.6.12" "@types/long" "^4.0.0" abort-controller "^3.0.0" duplexify "^4.0.0" @@ -2941,20 +2847,27 @@ google-gax@^2.24.1: node-fetch "^2.6.1" object-hash "^3.0.0" proto3-json-serializer "^0.1.8" - protobufjs "6.11.2" + protobufjs "6.11.3" retry-request "^4.0.0" google-p12-pem@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.3.tgz#5497998798ee86c2fc1f4bb1f92b7729baf37537" - integrity sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ== + version "3.1.4" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" + integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== dependencies: - node-forge "^1.0.0" + node-forge "^1.3.1" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphql-query-complexity@^0.7.0: version "0.7.2" @@ -2963,22 +2876,13 @@ graphql-query-complexity@^0.7.0: dependencies: lodash.get "^4.4.2" -graphql-redis-subscriptions@^2.3.1: +graphql-redis-subscriptions@^2.3.1, graphql-redis-subscriptions@^2.4.0, graphql-redis-subscriptions@^2.4.2: version "2.6.0" resolved "https://registry.yarnpkg.com/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.6.0.tgz#c733e97a39acf02c2345dc7e971fca5c9fe6c06d" integrity sha512-hWAPkCNSFKpEOJBMLAcbpGl/gv+s1Yho2JIwP9MK2RlvqlWiqhAYqjA/HVRK86nkYsRkBwGgqvaNxtV1fAexBQ== optionalDependencies: ioredis "^5.2.4" -graphql-redis-subscriptions@^2.4.0, graphql-redis-subscriptions@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.4.2.tgz#338e77bd180cc5bfc810699ff5f0f5fdc380f90d" - integrity sha512-zMd1G6uZcEvqHZ6PsQ63BfRtw5Bg4cccql1pfkEQsj1vXVWe4p+o8DqNfd9DDUFXIqhHpqkSeN/49BlIwud4Ag== - dependencies: - iterall "^1.3.0" - optionalDependencies: - ioredis "^4.17.3" - graphql-subscriptions@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" @@ -2998,6 +2902,16 @@ graphql-type-json@^0.3.2: resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== +graphql-upload@13: + version "13.0.0" + resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-13.0.0.tgz#1a255b64d3cbf3c9f9171fa62a8fb0b9b59bb1d9" + integrity sha512-YKhx8m/uOtKu4Y1UzBFJhbBGJTlk7k4CydlUUiNrtxnwZv0WigbRHP+DVhRNKt7u7DXOtcKZeYJlGtnMXvreXA== + dependencies: + busboy "^0.3.1" + fs-capacitor "^6.2.0" + http-errors "^1.8.1" + object-path "^0.11.8" + graphql-upload@15.0.2: version "15.0.2" resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-15.0.2.tgz#851667589439ee617238e2d90253000a2601ac04" @@ -3030,91 +2944,67 @@ gtoken@^5.0.4: google-p12-pem "^3.1.3" jws "^4.0.0" -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== hash-stream-validation@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz#ee68b41bf822f7f44db1142ec28ba9ee7ccb7512" integrity sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ== -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - integrity sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ== +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" + function-bind "^1.1.2" he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== - -http-errors@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" - integrity sha1-GX4izevUGYWF6GlO9nhhl7ke2UI= - dependencies: - inherits "~2.0.1" - statuses "1" - http-errors@2.0.0, http-errors@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -3126,10 +3016,21 @@ http-errors@2.0.0, http-errors@^2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-agent@^5.0.0: version "5.0.0" @@ -3140,19 +3041,10 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" @@ -3206,7 +3098,7 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" @@ -3216,12 +3108,12 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3250,13 +3142,13 @@ inquirer@^7.0.0: strip-ansi "^6.0.0" through "^2.3.6" -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" + es-errors "^1.3.0" + hasown "^2.0.0" side-channel "^1.0.4" interpret@^1.0.0: @@ -3264,22 +3156,7 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ioredis@*, ioredis@^5.2.4, ioredis@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" - integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== - dependencies: - "@ioredis/commands" "^1.1.1" - cluster-key-slot "^1.1.0" - debug "^4.3.4" - denque "^2.1.0" - lodash.defaults "^4.2.0" - lodash.isarguments "^3.1.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - -ioredis@^4.17.3, ioredis@^4.19.4: +ioredis@^4.19.4: version "4.28.5" resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.5.tgz#5c149e6a8d76a7f8fa8a504ffc85b7d5b6797f9f" integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A== @@ -3296,15 +3173,38 @@ ioredis@^4.17.3, ioredis@^4.19.4: redis-parser "^3.0.0" standard-as-callback "^2.1.0" +ioredis@^5.2.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" + integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" @@ -3328,17 +3228,24 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.8.0, is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" is-date-object@^1.0.1: version "1.0.5" @@ -3350,19 +3257,12 @@ is-date-object@^1.0.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -3376,15 +3276,15 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" @@ -3396,7 +3296,7 @@ is-number@^7.0.0: is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== is-obj@^2.0.0: version "2.0.0" @@ -3419,12 +3319,14 @@ is-regex@^1.1.4: is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" is-stream-ended@^0.1.4: version "0.1.4" @@ -3450,17 +3352,24 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.1: +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== @@ -3470,32 +3379,27 @@ is-weakref@^1.0.1: isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== iterall@^1.2.1, iterall@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== -jose@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jose/-/jose-2.0.5.tgz#29746a18d9fff7dcf9d5d2a6f62cb0c7cd27abd3" - integrity sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA== +jose@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/jose/-/jose-2.0.7.tgz#3aabbaec70bff313c108b9406498a163737b16ba" + integrity sha512-5hFWIigKqC+e/lRyQhfnirrAqUdIPMB7SJRqflJaO29dW7q5DFvH1XCSTmv6PQ6pb++0k6MJlLRoS0Wv4s38Wg== dependencies: "@panva/asn1.js" "^1.0.0" @@ -3519,11 +3423,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -3536,54 +3435,37 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + version "3.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" @@ -3604,24 +3486,20 @@ jsonwebtoken@^8.5.1: semver "^5.6.0" jsonwebtoken@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz#81d8c901c112c24e497a55daf6b2be1225b40145" - integrity sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg== + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== dependencies: jws "^3.2.2" - lodash "^4.17.21" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" ms "^2.1.1" - semver "^7.3.8" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" + semver "^7.5.4" jwa@^1.4.1: version "1.4.1" @@ -3642,13 +3520,14 @@ jwa@^2.0.0: safe-buffer "^5.0.1" jwks-rsa@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-2.0.5.tgz#5dc911cdade803a149b7d4d41404a7c1bf2c221a" - integrity sha512-fliHfsiBRzEU0nXzSvwnh0hynzGB0WihF+CinKbSRlaqRxbqqKf2xbBPgwc8mzf18/WgwlG8e5eTpfSTBcU4DQ== + version "2.1.5" + resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-2.1.5.tgz#bb7bf8c5767836bc273bf5b27870066aca39c1bb" + integrity sha512-IODtn1SwEm7n6GQZnQLY0oxKDrMh7n/jRH1MzE8mlxWMrh2NnMyOsXTebu8vJ1qCpmuTJcL4DdiE0E4h8jnwsA== dependencies: - "@types/express-jwt" "0.0.42" - debug "^4.3.2" - jose "^2.0.5" + "@types/express" "^4.17.14" + "@types/jsonwebtoken" "^8.5.9" + debug "^4.3.4" + jose "^2.0.6" limiter "^1.1.5" lru-memoizer "^2.1.4" @@ -3671,15 +3550,15 @@ jws@^4.0.0: levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" libphonenumber-js@^1.9.43: - version "1.10.42" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.42.tgz#38112294b2ee3f2ac3813c79390b7a77fc7e833d" - integrity sha512-/as6xI3D4Utfd28CCUPvMqX4oVXGMzk4ytzR52ju+sI/sN68LZpr9ED3Kh2kRfBbOALsLeeOSWdtyUPIbNWPrw== + version "1.10.59" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.59.tgz#ece26801dcf11fe3f8265bbc01981d9d808f9e6c" + integrity sha512-HeTsOrDF/hWhEiKqZVwg9Cqlep5x2T+IYDENvT2VRj3iX8JQ7Y+omENv+AIn0vC8m6GYhivfCed5Cgfw27r5SA== limiter@^1.1.5: version "1.1.5" @@ -3727,22 +3606,14 @@ listr2@^3.2.2: wrap-ansi "^7.0.0" loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3760,79 +3631,74 @@ locate-path@^6.0.0: lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.flatten@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== lodash.isarguments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== lodash.isboolean@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.1.0.tgz#d41b8b33530cb3be088853208ad30092d2c27961" - integrity sha1-1BuLM1MMs74IiFMgitMAktLCeWE= - -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3863,21 +3729,26 @@ log-update@^4.0.0: wrap-ansi "^6.2.0" loglevel@^1.6.8: - version "1.8.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" - integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: - get-func-name "^2.0.0" + get-func-name "^2.0.1" "lru-cache@7.10.1 - 7.13.1": version "7.13.1" @@ -3894,24 +3765,19 @@ lru-cache@^6.0.0: lru-cache@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" - integrity sha1-HRdnnAac2l0ECZGgnbwsDbN35V4= + integrity sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw== dependencies: pseudomap "^1.0.1" yallist "^2.0.0" lru-memoizer@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.1.4.tgz#b864d92b557f00b1eeb322156a0409cb06dafac6" - integrity sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.2.0.tgz#b9d90c91637b4b1a423ef76f3156566691293df8" + integrity sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw== dependencies: lodash.clonedeep "^4.5.0" lru-cache "~4.0.0" -luxon@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" - integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== - make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -3950,19 +3816,19 @@ methods@~1.1.2: integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.8, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -3984,10 +3850,10 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== minimatch@3.0.4: version "3.0.4" @@ -3996,17 +3862,17 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^3.0.0: version "3.3.6" @@ -4034,11 +3900,11 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" @@ -4079,7 +3945,7 @@ mocha@^8.2.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -4091,36 +3957,15 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msgpackr-extract@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz#e05ec1bb4453ddf020551bcd5daaf0092a2c279d" - integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A== - dependencies: - node-gyp-build-optional-packages "5.0.7" - optionalDependencies: - "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" - -msgpackr@^1.5.2: - version "1.9.7" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.9.7.tgz#8f13c06d7a22946a6d8351804ce39a6a9e74ca83" - integrity sha512-baUNaLvKQvVhzfWTNO07njwbZK1Lxjtb0P1JL6/EhXdLTHzR57/mZqqJC39TtQKvOmkJA4pcejS4dbk7BDgLLA== - optionalDependencies: - msgpackr-extract "^3.0.2" - mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +nan@^2.17.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== nanoid@3.1.20: version "3.1.20" @@ -4135,7 +3980,7 @@ napi-build-utils@^1.0.1: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" @@ -4147,12 +3992,12 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-abi@^2.21.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" - integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== +node-abi@^3.3.0: + version "3.56.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.56.0.tgz#ca807d5ff735ac6bbbd684ae3ff2debc1c2a40a7" + integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== dependencies: - semver "^5.4.1" + semver "^7.3.5" node-abort-controller@^3.0.1: version "3.1.1" @@ -4160,40 +4005,21 @@ node-abort-controller@^3.0.1: integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== node-addon-api@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" - integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== - -node-cron@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/node-cron/-/node-cron-3.0.2.tgz#bb0681342bd2dfb568f28e464031280e7f06bd01" - integrity sha512-iP8l0yGlNpE0e6q1o185yOApANRe47UPbLf4YxfbiNHt/RU5eBcGB/e0oudruheSf+LQeDMezqC5BVAb5wwRcQ== - dependencies: - uuid "8.3.2" + version "7.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb" + integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== -node-fetch@^2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^2.6.7: +node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-forge@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" - integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== - -node-gyp-build-optional-packages@5.0.7: - version "5.0.7" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" - integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== +node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== nopt@^5.0.0: version "5.0.0" @@ -4214,16 +4040,6 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -4234,25 +4050,10 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= - -object-assign@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.0.0.tgz#f8309b09083b01261ece3ef7373f2b57b8dd7042" - integrity sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI= - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^2.0.3: version "2.2.0" @@ -4264,12 +4065,12 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4279,24 +4080,43 @@ object-path@^0.11.8: resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" object-keys "^1.1.1" -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.fromentries@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" on-finished@2.4.1: version "2.4.1" @@ -4308,7 +4128,7 @@ on-finished@2.4.1: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -4339,14 +4159,7 @@ optionator@^0.8.3: os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-limit@^2.2.0: version "2.3.0" @@ -4362,13 +4175,6 @@ p-limit@^3.0.1, p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4395,11 +4201,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -4412,10 +4213,10 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-duration@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.2.tgz#b9aa7d3a1363cc7e8845bea8fd3baf8a11df5805" - integrity sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg== +parse-duration@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c" + integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ== parse-json@^5.0.0: version "5.2.0" @@ -4437,11 +4238,6 @@ path-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4450,12 +4246,12 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -4482,12 +4278,12 @@ pathval@^1.1.1: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -4513,29 +4309,33 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -prebuild-install@^6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" - integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +prebuild-install@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== dependencies: - detect-libc "^1.0.3" + detect-libc "^2.0.0" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" - node-abi "^2.21.0" - npmlog "^4.0.1" + node-abi "^3.3.0" pump "^3.0.0" rc "^1.2.7" - simple-get "^3.0.3" + simple-get "^4.0.0" tar-fs "^2.0.0" tunnel-agent "^0.6.0" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier-linter-helpers@^1.0.0: version "1.0.0" @@ -4545,14 +4345,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^2.0.5: - version "2.6.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" - integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== progress@^2.0.0: version "2.0.3" @@ -4560,16 +4355,35 @@ progress@^2.0.0: integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== proto3-json-serializer@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz#f80f9afc1efe5ed9a9856bbbd17dc7cabd7ce9a3" - integrity sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw== + version "0.1.9" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz#705ddb41b009dd3e6fcd8123edd72926abf65a34" + integrity sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ== dependencies: protobufjs "^6.11.2" -protobufjs@6.11.2, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: - version "6.11.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" - integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== +protobufjs@6.11.3: + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + 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.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +protobufjs@^6.11.2, protobufjs@^6.11.3, protobufjs@^6.8.6: + version "6.11.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" + integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -4585,6 +4399,24 @@ protobufjs@6.11.2, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: "@types/node" ">=13.7.0" long "^4.0.0" +protobufjs@^7.2.4: + version "7.2.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" + integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== + 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/node" ">=13.7.0" + long "^5.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -4596,7 +4428,7 @@ proxy-addr@~2.0.7: pseudomap@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== pump@^3.0.0: version "3.0.0" @@ -4615,28 +4447,18 @@ pumpify@^2.0.0: inherits "^2.0.3" pump "^3.0.0" -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@6.11.0, qs@^6.11.0: +qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -qs@~6.5.1: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -4654,16 +4476,6 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - raw-body@2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" @@ -4684,29 +4496,7 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -readable-stream@^2.0.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -4725,7 +4515,7 @@ readdirp@~3.5.0: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" @@ -4737,19 +4527,29 @@ redis-commands@1.7.0: redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== redis-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== dependencies: redis-errors "^1.0.0" reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + version "0.1.14" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.14.tgz#24cf721fe60677146bb77eeb0e1f9dece3d65859" + integrity sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A== + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" regexpp@^2.0.1: version "2.0.1" @@ -4761,55 +4561,27 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -request@2.85.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" - integrity sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requireindex@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162" - integrity sha1-5UBLgVV+91225JxacgBIk/4D4WI= + integrity sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg== resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.1.6, resolve@^1.20.0, resolve@^1.3.2: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.1.6, resolve@^1.22.4, resolve@^1.3.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -4840,9 +4612,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== rimraf@2.6.3: version "2.6.3" @@ -4866,9 +4638,9 @@ rimraf@^3.0.2: glob "^7.1.3" roadman@^0.3.12: - version "0.3.12" - resolved "https://registry.yarnpkg.com/roadman/-/roadman-0.3.12.tgz#101dfcd281be3f3992b5eddae324f4265f3540b3" - integrity sha512-6wkRgLCwCoTPtOmwxDb1BJlxmJTKM5xTdRXEqKWrEIoiKe/zZPXKjMQparbEUUuYQI8Gizf6XDgtEddWC2HY1A== + version "0.3.18" + resolved "https://registry.yarnpkg.com/roadman/-/roadman-0.3.18.tgz#638f0735ea003ebfaa14da7dc86dace394f257d8" + integrity sha512-MYhQYdKWeD8HtaOFABn2q20jm55TRssrwklPJXIKPiazcVyIx5+JKrVLOgTYb23u5vAFdr03cdnvI7qI3/qz5w== dependencies: apollo-server-express "^3.6.2" apollo-server-lambda "^3.10.2" @@ -4881,7 +4653,7 @@ roadman@^0.3.12: graphql "^15.0.0" graphql-redis-subscriptions "^2.3.1" graphql-type-json "^0.3.2" - graphql-upload "15.0.2" + graphql-upload "13" ioredis "^4.19.4" jsonwebtoken "^9.0.1" lodash "^4.17.20" @@ -4910,23 +4682,37 @@ rxjs@^6.6.0: tslib "^1.9.0" rxjs@^7.5.1: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -4943,34 +4729,27 @@ schema-utils@^2.6.5: semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== semver-regex@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3" - integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== - -semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "3.1.4" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.4.tgz#13053c0d4aa11d070a2f2872b6b1e3ae1e1971b4" + integrity sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA== -semver@^6.0.0, semver@^6.1.2: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.1.2, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5, semver@^7.3.8, semver@^7.5.2: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== +semver@^7.3.2, semver@^7.3.5, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -5010,10 +4789,32 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" setprototypeof@1.2.0: version "1.2.0" @@ -5031,7 +4832,7 @@ sha.js@^2.4.11: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" @@ -5045,7 +4846,7 @@ shebang-command@^2.0.0: shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" @@ -5062,13 +4863,14 @@ shelljs@^0.8.5: rechoir "^0.6.2" side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" @@ -5080,12 +4882,12 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: - decompress-response "^4.2.0" + decompress-response "^6.0.0" once "^1.3.1" simple-concat "^1.0.0" @@ -5121,18 +4923,6 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -snakeize@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/snakeize/-/snakeize-0.1.0.tgz#10c088d8b58eb076b3229bb5a04e232ce126422d" - integrity sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0= - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - integrity sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg== - dependencies: - hoek "4.x.x" - source-map-support@^0.5.17: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -5149,38 +4939,23 @@ source-map@^0.6.0: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== standard-as-callback@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== -statuses@1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + stream-events@^1.0.4, stream-events@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" @@ -5188,10 +4963,15 @@ stream-events@^1.0.4, stream-events@^1.0.5: dependencies: stubs "^3.0.0" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +stream-shift@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== streamsearch@^1.1.0: version "1.1.0" @@ -5203,15 +4983,6 @@ string-argv@0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - "string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -5238,21 +5009,33 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" string_decoder@^1.1.1: version "1.3.0" @@ -5261,13 +5044,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -5277,22 +5053,10 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -stringstream@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" - integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA== - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" @@ -5313,7 +5077,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" @@ -5328,20 +5092,12 @@ strip-json-comments@3.1.1, strip-json-comments@^3.0.1: strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -stripe@^10.17.0: - version "10.17.0" - resolved "https://registry.yarnpkg.com/stripe/-/stripe-10.17.0.tgz#b65d8c9d55ec7190b866a77dffe9843941ddced7" - integrity sha512-JHV2KoL+nMQRXu3m9ervCZZvi4DDCJfzHUE6CmtJxR9TmizyYfrVuhGvnsZLLnheby9Qrnf4Hq6iOEcejGwnGQ== - dependencies: - "@types/node" ">=8.1.0" - qs "^6.11.0" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== stubs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" - integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= + integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== subscriptions-transport-ws@^0.11.0: version "0.11.0" @@ -5417,9 +5173,9 @@ tar-stream@^2.1.4: readable-stream "^3.1.1" tar@^6.1.11: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -5428,10 +5184,10 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -teeny-request@^7.0.0: - version "7.1.3" - resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.1.3.tgz#5a3d90c559a6c664a993477b138e331a518765ba" - integrity sha512-Ew3aoFzgQEatLA5OBIjdr1DWJUaC1xardG+qbPPo5k/y/3fMwXLxpjh5UB5dVfElktLaQbbMs80chkz53ByvSg== +teeny-request@^7.1.3: + version "7.2.0" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.2.0.tgz#41347ece068f08d741e7b86df38a4498208b2633" + integrity sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw== dependencies: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" @@ -5439,15 +5195,20 @@ teeny-request@^7.0.0: stream-events "^1.0.5" uuid "^8.0.0" +text-decoding@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-decoding/-/text-decoding-1.0.0.tgz#38a5692d23b5c2b12942d6e245599cb58b1bc52f" + integrity sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tmp@^0.0.33: version "0.0.33" @@ -5468,17 +5229,10 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tough-cookie@~2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== - dependencies: - punycode "^1.4.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-morph@^12.0.0: version "12.2.0" @@ -5508,14 +5262,14 @@ ts-node@^9.1.1: source-map-support "^0.5.17" yn "3.1.1" -tsconfig-paths@^3.12.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz#4fcc48f9ccea8826c41b9ca093479de7f5018976" - integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" + json5 "^1.0.2" + minimist "^1.2.6" strip-bom "^3.0.0" tslib@1.9.0: @@ -5523,17 +5277,12 @@ tslib@1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== -tslib@2.3.1, tslib@^2.0.1, tslib@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.4.0: +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -5590,23 +5339,18 @@ tsutils@^3.0.0, tsutils@^3.17.1: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -5643,6 +5387,50 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -5651,20 +5439,25 @@ typedarray-to-buffer@^3.1.5: is-typedarray "^1.0.0" typescript@^4.4.3: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -5689,35 +5482,30 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^3.1.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== validator@^13.7.0: version "13.11.0" @@ -5739,15 +5527,6 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vscode-json-languageservice@^3.7.0: version "3.11.0" resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz#ad574b36c4346bd7830f1d34b5a5213d3af8d232" @@ -5760,9 +5539,9 @@ vscode-json-languageservice@^3.7.0: vscode-uri "^2.1.2" vscode-languageserver-textdocument@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" - integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== vscode-languageserver-types@3.16.0-next.2: version "3.16.0-next.2" @@ -5770,9 +5549,9 @@ vscode-languageserver-types@3.16.0-next.2: integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== vscode-nls@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840" - integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.2.0.tgz#3cb6893dd9bd695244d8a024bdf746eea665cc3f" + integrity sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng== vscode-uri@^2.1.2: version "2.1.2" @@ -5782,7 +5561,7 @@ vscode-uri@^2.1.2: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== websocket-driver@>=0.5.1: version "0.7.4" @@ -5806,7 +5585,7 @@ whatwg-mimetype@^3.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -5827,6 +5606,17 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35" integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -5848,7 +5638,7 @@ wide-align@1.1.3: dependencies: string-width "^1.0.2 || 2" -wide-align@^1.1.0, wide-align@^1.1.2: +wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -5856,9 +5646,9 @@ wide-align@^1.1.0, wide-align@^1.1.2: string-width "^1.0.2 || 2 || 3 || 4" word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== workerpool@6.1.0: version "6.1.0" @@ -5886,7 +5676,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" @@ -5916,9 +5706,9 @@ xdg-basedir@^4.0.0: integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xss@^1.0.8: - version "1.0.14" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" - integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + version "1.0.15" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a" + integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg== dependencies: commander "^2.20.3" cssfilter "0.0.10" @@ -5931,7 +5721,7 @@ y18n@^5.0.5: yallist@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== yallist@^4.0.0: version "4.0.0" @@ -5953,6 +5743,11 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" @@ -5976,6 +5771,19 @@ yargs@16.2.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"