diff --git a/.changeset/unlucky-seahorses-boil.md b/.changeset/unlucky-seahorses-boil.md new file mode 100644 index 0000000..bd10e4e --- /dev/null +++ b/.changeset/unlucky-seahorses-boil.md @@ -0,0 +1,5 @@ +--- +'iql': minor +--- + +chore: start refactor to engines diff --git a/docs/modules.md b/docs/modules.md index 9f976c6..ed361dd 100644 --- a/docs/modules.md +++ b/docs/modules.md @@ -4,6 +4,10 @@ ## Table of contents +### References + +- [query](modules.md#query) + ### Interfaces - [IParamAggregator](interfaces/IParamAggregator.md) @@ -21,13 +25,19 @@ - [extend](modules.md#extend) - [intervalStringValue](modules.md#intervalstringvalue) - [intervalToMilliseconds](modules.md#intervaltomilliseconds) -- [query](modules.md#query) +- [pg](modules.md#pg) + +## References + +### query + +Renames and exports: [pg](modules.md#pg) ## Type aliases ### QueryCompiler -Ƭ **QueryCompiler**<`Result`, `Params`, `From`, `To`\>: `BaseQuery`<`Result`, `Params`, `From`, `To`\> & { `compile`: (`params`: `Params`) => `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\> } +Ƭ **QueryCompiler**<`Result`, `Params`, `From`, `To`, `Compiled`\>: `BaseQuery`<`Result`, `Params`, `From`, `To`\> & { `compile`: (`params`: `Params`) => `Compiled` } Return type of the query/extend functions @@ -39,6 +49,7 @@ Return type of the query/extend functions | `Params` | `Params` | | `From` | extends `Record`<`string`, `unknown`[]\>{} | | `To` | extends `Record`<`string`, `unknown`\>{} | +| `Compiled` | `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\> | ___ @@ -80,7 +91,7 @@ Value types accepted by the pg library ### extend -▸ `Const` **extend**<`T`, `U`, `K`, `L`, `M`, `N`\>(`input`, `change`): [`QueryCompiler`](modules.md#querycompiler)<`K`, `L`, `M` & `T`, `N` & `U`\> +▸ `Const` **extend**<`T`, `U`, `K`, `L`, `M`, `N`\>(`input`, `change`): [`QueryCompiler`](modules.md#querycompiler)<`K`, `L`, `M` & `T`, `N` & `U`, `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\>\> const findB = extend(findA, { to: { @@ -110,14 +121,14 @@ const publicUser = findB.toPublic(rows[0]); // publicUser.happy === true | Name | Type | | :------ | :------ | -| `input` | [`QueryCompiler`](modules.md#querycompiler)<`K`, `L`, `M`, `N`\> | +| `input` | [`QueryCompiler`](modules.md#querycompiler)<`K`, `L`, `M`, `N`, `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\>\> | | `change` | `Object` | | `change.from?` | { [R in string \| number \| symbol]: function} | | `change.to?` | { [R in string \| number \| symbol]: function} | #### Returns -[`QueryCompiler`](modules.md#querycompiler)<`K`, `L`, `M` & `T`, `N` & `U`\> +[`QueryCompiler`](modules.md#querycompiler)<`K`, `L`, `M` & `T`, `N` & `U`, `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\>\> ___ @@ -157,9 +168,9 @@ Translates Postgres intervals to milliseconds ___ -### query +### pg -▸ `Const` **query**<`T`, `K`\>(`template`, ...`args`): [`QueryCompiler`](modules.md#querycompiler)<`T`, `K`, `Object`, `Object`\> +▸ `Const` **pg**<`T`, `K`\>(`template`, ...`args`): [`QueryCompiler`](modules.md#querycompiler)<`T`, `K`, `Object`, `Object`, `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\>\> ```typescript interface IRawUser { @@ -202,4 +213,4 @@ OR id IN (${(agg) => agg.values('ids')}); -- Same as above #### Returns -[`QueryCompiler`](modules.md#querycompiler)<`T`, `K`, `Object`, `Object`\> +[`QueryCompiler`](modules.md#querycompiler)<`T`, `K`, `Object`, `Object`, `QueryConfig`<[`ValueType`](modules.md#valuetype)[]\>\> diff --git a/package.json b/package.json index 2c5c727..a9518ed 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "@changesets/cli": "2.17.0", "@commitlint/cli": "13.1.0", "@commitlint/config-conventional": "13.1.0", + "@google-cloud/bigquery": "5.9.0", "@types/jest": "27.0.1", "@types/pg": "8.6.1", "@jest/types": "27.1.1", diff --git a/src/extend.ts b/src/extend.ts new file mode 100644 index 0000000..c786322 --- /dev/null +++ b/src/extend.ts @@ -0,0 +1,51 @@ +import type { QueryCompiler } from './interfaces'; + +/** + * const findB = extend(findA, { + * to: { + * public: (raw) => ({ ...raw, happy: true }), + * }, + * from: { + * register: (id: string) => ({ id }), + * }, + * }); + * + * const params = findB.fromRegister('iql'); // row is of type IUserParams + * const { rows } = await pg.query>(findB.compile(params)); + * const publicUser = findB.toPublic(rows[0]); // publicUser.happy === true + */ +export const extend = < + T extends Record, + U extends Record, + K, + L, + M extends Record, + N extends Record, +>( + input: QueryCompiler, + change: { + from?: { [R in keyof T]: (...args: T[R]) => L }; + to?: { [R in keyof U]: (raw: K) => U[R] }; + }, +): QueryCompiler => + ({ + ...input, + ...(change.from + ? Object.entries(change.from).reduce( + (acc, [from, value]) => ({ + ...acc, + [`from${from[0].toUpperCase()}${from.slice(1)}`]: value as (...args: T[keyof T]) => L, + }), + {}, + ) + : {}), + ...(change.to + ? Object.entries(change.to).reduce( + (acc, [from, value]) => ({ + ...acc, + [`to${from[0].toUpperCase()}${from.slice(1)}`]: value as (raw: K) => U[keyof U], + }), + {}, + ) + : {}), + } as QueryCompiler); diff --git a/src/index.ts b/src/index.ts index 7f550bb..68f12de 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,4 @@ -export type { - IParamAggregator, - IPostgresInterval, - QueryCompiler, - QueryParameters, - QueryResult, - ValueType, -} from './interfaces'; -export { extend, query } from './query'; -export { intervalStringValue, intervalToMilliseconds } from './interval'; +export { extend } from './extend'; +export type { IParamAggregator, QueryCompiler, QueryParameters, QueryResult, ValueType } from './interfaces'; +export { intervalStringValue, intervalToMilliseconds, query as pg, query } from './pg'; +export type { IPostgresInterval } from './pg'; diff --git a/src/interfaces.ts b/src/interfaces.ts index 5800807..c9de200 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -1,16 +1,5 @@ import type { QueryConfig } from 'pg'; -/** - * Postgres internal representation of intervals - */ -export interface IPostgresInterval { - days?: number; - hours?: number; - minutes?: number; - seconds?: number; - milliseconds?: number; -} - /** * Value types accepted by the pg library */ @@ -59,8 +48,9 @@ export type QueryCompiler< Params, From extends Record = {}, To extends Record = {}, + Compiled = QueryConfig, > = BaseQuery & { - compile(params: Params): QueryConfig; + compile(params: Params): Compiled; }; /** diff --git a/src/__tests__/interval.spec.ts b/src/pg/__tests__/interval.spec.ts similarity index 100% rename from src/__tests__/interval.spec.ts rename to src/pg/__tests__/interval.spec.ts diff --git a/src/__tests__/query.spec.ts b/src/pg/__tests__/query.spec.ts similarity index 86% rename from src/__tests__/query.spec.ts rename to src/pg/__tests__/query.spec.ts index 54d5e63..8d3e4ec 100644 --- a/src/__tests__/query.spec.ts +++ b/src/pg/__tests__/query.spec.ts @@ -1,8 +1,8 @@ -import { extend, query } from '..'; +import { extend, pg } from '../..'; -describe('query', () => { +describe('pg', () => { it('should accept an array of parameters', () => { - const findMe = query<{ id: string }, [string]>` + const findMe = pg<{ id: string }, [string]>` SELECT * FROM public.foo WHERE id = $1::TEXT `; @@ -22,7 +22,7 @@ describe('query', () => { }); it('should access key of parameters', () => { - const findMe = query<{ id: string }, { id: string }>` + const findMe = pg<{ id: string }, { id: string }>` SELECT * FROM public.foo WHERE id = ${'id'}::TEXT `; @@ -43,7 +43,7 @@ describe('query', () => { it('should add .value to parameters', () => { const id = 'asdasda'; - const findMe = query<{ id: string }>` + const findMe = pg<{ id: string }>` SELECT * FROM public.foo WHERE id = ${(agg) => agg.value(id)}::TEXT `; @@ -61,7 +61,7 @@ describe('query', () => { }); it('should use same parameter for multiple calls to same key', () => { - const findMe = query<{ id: string }, { id: string }>` + const findMe = pg<{ id: string }, { id: string }>` SELECT * FROM public.foo WHERE id = ${'id'}::TEXT OR id = ${'id'}::TEXT @@ -83,7 +83,7 @@ describe('query', () => { }); it('should compile to same config with multiple calls', () => { - const findMe = query<{ id: string }, { id: string }>` + const findMe = pg<{ id: string }, { id: string }>` SELECT * FROM public.foo WHERE id = ${'id'}::TEXT `; @@ -105,7 +105,7 @@ describe('query', () => { }); it('should access multiple keys', () => { - const findMe = query<{ id: string }, { bar: string; id: string }>` + const findMe = pg<{ id: string }, { bar: string; id: string }>` SELECT id FROM public.foo WHERE id = ${'id'}::TEXT AND foo = ${'bar'}::TEXT @@ -128,7 +128,7 @@ describe('query', () => { }); it('should ignore order of params', () => { - const findMe = query<{ id: string }, { bar: string; id: string }>` + const findMe = pg<{ id: string }, { bar: string; id: string }>` SELECT id FROM public.foo WHERE id = ${'id'}::TEXT AND foo = ${'bar'}::TEXT @@ -151,7 +151,7 @@ describe('query', () => { }); it('should parse array in .values', () => { - const findMe = query<{ id: string }, string[]>` + const findMe = pg<{ id: string }, string[]>` SELECT id FROM public.foo WHERE id in (${(agg, items) => agg.values(items)}) `; @@ -171,7 +171,7 @@ describe('query', () => { }); it('should access array by key in .values', () => { - const findMe = query<{ id: string }, { id: string; tags: string[] }>` + const findMe = pg<{ id: string }, { id: string; tags: string[] }>` SELECT id FROM public.foo WHERE id = ${'id'} AND tags in (${(agg) => agg.values('tags')}) @@ -194,7 +194,7 @@ describe('query', () => { }); it('should work with no helpers with extend', () => { - const findMe = query<{ id: string }, string[]>` + const findMe = pg<{ id: string }, string[]>` SELECT id FROM public.foo WHERE id in (${(agg, values) => agg.values(values)}) `; @@ -205,7 +205,7 @@ describe('query', () => { }); it('should add helpers with extend', () => { - const findMe = query<{ id: string }, string[]>` + const findMe = pg<{ id: string }, string[]>` SELECT id FROM public.foo WHERE id in (${(agg, values) => agg.values(values)}) `; @@ -221,8 +221,8 @@ describe('query', () => { expect(findMeExtended.fromId(result)).toStrictEqual([result.id]); }); - it('should create diiferent query names', () => { - const findMe = query` + it('should create different query names', () => { + const findMe = pg` SELECT * FROM public.foo WHERE a in (${(agg, { a }) => agg.values(a)}) AND b in (${(agg, { b }) => agg.values(b)}); @@ -235,7 +235,7 @@ describe('query', () => { }); it('should not fail for empty query', () => { - const findMe = query``; + const findMe = pg``; expect(findMe.compile()).toStrictEqual({ name: expect.stringContaining(''), diff --git a/src/pg/index.ts b/src/pg/index.ts new file mode 100644 index 0000000..1b10b7c --- /dev/null +++ b/src/pg/index.ts @@ -0,0 +1,3 @@ +export type { IPostgresInterval } from './interfaces'; +export { intervalStringValue, intervalToMilliseconds } from './interval'; +export { query } from './query'; diff --git a/src/pg/interfaces.ts b/src/pg/interfaces.ts new file mode 100644 index 0000000..f436a61 --- /dev/null +++ b/src/pg/interfaces.ts @@ -0,0 +1,10 @@ +/** + * Postgres internal representation of intervals + */ +export interface IPostgresInterval { + days?: number; + hours?: number; + minutes?: number; + seconds?: number; + milliseconds?: number; +} diff --git a/src/interval.ts b/src/pg/interval.ts similarity index 100% rename from src/interval.ts rename to src/pg/interval.ts diff --git a/src/query.ts b/src/pg/query.ts similarity index 66% rename from src/query.ts rename to src/pg/query.ts index 22c591d..f46945a 100644 --- a/src/query.ts +++ b/src/pg/query.ts @@ -1,6 +1,6 @@ import { createHash } from 'crypto'; -import type { BuilderInput, IParamAggregator, QueryCompiler, QueryParameters, ValueType } from './interfaces'; +import type { BuilderInput, IParamAggregator, QueryCompiler, QueryParameters, ValueType } from '../interfaces'; /** * Utility function to generate a consistent query name @@ -92,53 +92,3 @@ export const query = ( return { name, text, values: agg.props }; }, }); - -/** - * const findB = extend(findA, { - * to: { - * public: (raw) => ({ ...raw, happy: true }), - * }, - * from: { - * register: (id: string) => ({ id }), - * }, - * }); - * - * const params = findB.fromRegister('iql'); // row is of type IUserParams - * const { rows } = await pg.query>(findB.compile(params)); - * const publicUser = findB.toPublic(rows[0]); // publicUser.happy === true - */ -export const extend = < - T extends Record, - U extends Record, - K, - L, - M extends Record, - N extends Record, ->( - input: QueryCompiler, - change: { - from?: { [R in keyof T]: (...args: T[R]) => L }; - to?: { [R in keyof U]: (raw: K) => U[R] }; - }, -): QueryCompiler => - ({ - ...input, - ...(change.from - ? Object.entries(change.from).reduce( - (acc, [from, value]) => ({ - ...acc, - [`from${from[0].toUpperCase()}${from.slice(1)}`]: value as (...args: T[keyof T]) => L, - }), - {}, - ) - : {}), - ...(change.to - ? Object.entries(change.to).reduce( - (acc, [from, value]) => ({ - ...acc, - [`to${from[0].toUpperCase()}${from.slice(1)}`]: value as (raw: K) => U[keyof U], - }), - {}, - ) - : {}), - } as QueryCompiler); diff --git a/yarn.lock b/yarn.lock index 19fb4ea..6cc1e0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -699,6 +699,56 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@google-cloud/bigquery@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@google-cloud/bigquery/-/bigquery-5.9.0.tgz#c0651ebe6ab2015af55aea4a3528ae280e225dec" + integrity sha512-w0nculne+yasgT059RbFIz5/37DFCC231wqhXdnHduS2z5SnQnkOhvv52GDxDQUJITRwKT45Dytd2sQjiXjLcA== + dependencies: + "@google-cloud/common" "^3.1.0" + "@google-cloud/paginator" "^3.0.0" + "@google-cloud/promisify" "^2.0.0" + arrify "^2.0.1" + big.js "^6.0.0" + duplexify "^4.0.0" + extend "^3.0.2" + is "^3.3.0" + p-event "^4.1.0" + stream-events "^1.0.5" + uuid "^8.0.0" + +"@google-cloud/common@^3.1.0": + version "3.7.2" + resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.7.2.tgz#2f1feef9aaeb4f392d627ceab06e7eaa03329f58" + integrity sha512-5Q9f74IbZaY6xAwJSNFy5SrGwbm1j7mpv+6A/r+K2dymjsXBH5UauB0tziaMwWoVVaMq1IQnZF9lgtfqqvxcUg== + 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.0.2" + retry-request "^4.2.2" + teeny-request "^7.0.0" + +"@google-cloud/paginator@^3.0.0": + version "3.0.6" + resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.6.tgz#02a59dccd348d515069779a4f77a4a4fd15594da" + integrity sha512-XCTm/GfQIlc1ZxpNtTSs/mnZxC2cePNhxU3X8EzHXKIJ2JFncmJj2Fcd2IP+gbmZaSZnY0juFxbUCkIeuu/2eQ== + dependencies: + arrify "^2.0.0" + extend "^3.0.2" + +"@google-cloud/projectify@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@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.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" + integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -1204,6 +1254,13 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" @@ -1399,6 +1456,11 @@ arrify@^1.0.1: resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= +arrify@^2.0.0, arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -1490,6 +1552,11 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +base64-js@^1.3.0: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + better-path-resolve@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" @@ -1497,6 +1564,16 @@ better-path-resolve@1.0.0: dependencies: is-windows "^1.0.0" +big.js@^6.0.0: + version "6.1.1" + resolved "https://registry.npmjs.org/big.js/-/big.js-6.1.1.tgz#63b35b19dc9775c94991ee5db7694880655d5537" + integrity sha512-1vObw81a8ylZO5ePrtMay0n018TcftpTA5HFKDaSuiUDBo8biRBtjIobw60OpwuvrGk+FsxKamqN4cnmj/eXdg== + +bignumber.js@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" + integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + boxen@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -1562,6 +1639,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/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.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -2068,6 +2150,23 @@ dotenv@^8.1.0: resolved "https://registry.npmjs.org/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.npmjs.org/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.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + electron-to-chromium@^1.3.723: version "1.3.752" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" @@ -2088,6 +2187,13 @@ emoji-regex@^9.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmjs.org/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.0, enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -2095,6 +2201,11 @@ enquirer@^2.3.0, enquirer@^2.3.5, enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" +ent@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2481,6 +2592,11 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/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.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + execa@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -2526,6 +2642,11 @@ expect@^27.1.1: jest-message-util "^27.1.1" jest-regex-util "^27.0.6" +extend@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + extendable-error@^0.1.5: version "0.1.7" resolved "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" @@ -2572,6 +2693,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-text-encoding@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" + integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== + fastq@^1.6.0: version "1.11.0" resolved "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" @@ -2700,6 +2826,25 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +gaxios@^4.0.0: + version "4.3.1" + resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.3.1.tgz#d45fd94a63ec0fc657d40343c31cab5e24c75f3b" + integrity sha512-9qXV7yrMCGzTrphl9/YGMVH41oSg0rhn1j3wJWed4Oqk45/hXDD2wBT5J1NjQcqTCcv4g3nFnyQ7reSRHNgBgw== + 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.npmjs.org/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" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -2800,6 +2945,28 @@ globby@^11.0.0, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +google-auth-library@^7.0.2: + version "7.9.1" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.9.1.tgz#b90a3a0fa67d6ba78c43ffdeeb0a66fcebe6fb91" + integrity sha512-cWGykH2WBR+UuYPGRnGVZ6Cjq2ftQiEIFjQWNIRIauZH7hUWoYTr/lkKUqLTYt5dex77nlWWVQ8aPV80mhfp5w== + 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-p12-pem@^3.0.3: + version "3.1.2" + resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz#c3d61c2da8e10843ff830fdb0d2059046238c1d4" + integrity sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A== + dependencies: + node-forge "^0.10.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" @@ -2810,6 +2977,15 @@ grapheme-splitter@^1.0.4: resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +gtoken@^5.0.4: + version "5.3.1" + resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz#c1c2598a826f2b5df7c6bb53d7be6cf6d50c3c78" + integrity sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ== + dependencies: + gaxios "^4.0.0" + google-p12-pem "^3.0.3" + jws "^4.0.0" + handlebars@^4.7.7: version "4.7.7" resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" @@ -2878,7 +3054,7 @@ html-escaper@^2.0.0: resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-proxy-agent@^4.0.1: +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== @@ -3161,6 +3337,11 @@ is-windows@^1.0.0: resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" + integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3679,6 +3860,13 @@ jsesc@^2.5.1: resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/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-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3747,6 +3935,23 @@ jsonparse@^1.2.0: array-includes "^3.1.2" object.assign "^4.1.2" +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/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" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + kind-of@^6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -4111,10 +4316,15 @@ neo-async@^2.6.0: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-fetch@^2.5.0: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-fetch@^2.5.0, node-fetch@^2.6.1: + version "2.6.2" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0" + integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA== + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== node-int64@^0.4.0: version "0.4.0" @@ -4228,7 +4438,7 @@ object.values@^1.1.4: define-properties "^1.1.3" es-abstract "^1.18.2" -once@^1.3.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -4288,6 +4498,13 @@ p-each-series@^2.1.0: resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== +p-event@^4.1.0: + version "4.2.0" + resolved "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + p-filter@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -4354,6 +4571,13 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -4719,7 +4943,7 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -readable-stream@3, readable-stream@^3.0.0: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -4822,6 +5046,14 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +retry-request@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" + integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== + dependencies: + debug "^4.1.1" + extend "^3.0.2" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -4848,16 +5080,16 @@ rxjs@^6.6.7: dependencies: tslib "^1.9.0" +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - safe-regex@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" @@ -5073,6 +5305,18 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +stream-events@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/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.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + stream-transform@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz#e68cc062cced5b8ee669ae97f4be473eee5d9227" @@ -5209,6 +5453,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -5255,6 +5504,17 @@ table@^6.0.9: string-width "^4.2.0" strip-ansi "^6.0.0" +teeny-request@^7.0.0: + version "7.1.2" + resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.2.tgz#69f8d4c3c2958cf0040f9a5c32a5c9db591d412a" + integrity sha512-Mr4NYZuniKDpgcLxdBkDE1CcWy98Aw1ennn6oNofen+XWUvDs+ZZzBAujy6XOAVwwLLZMwEQSfdljUI+ebs4Ww== + dependencies: + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.1" + stream-events "^1.0.5" + uuid "^8.0.0" + term-size@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -5551,7 +5811,7 @@ util-deprecate@^1.0.1: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==