diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bb98ffe..f334354 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - node: ['12.x', '14.x', '16.x'] + node: ['14.x', '16.x', '18.x'] os: [ubuntu-latest, windows-latest, macOS-latest] steps: @@ -27,6 +27,10 @@ jobs: - name: Test run: yarn test --ci --coverage --maxWorkers=2 + env: + API_URL: ${{ secrets.API_URL }} + APP_KEY: ${{ secrets.APP_KEY }} + APP_SECRET: ${{ secrets.APP_SECRET }} - name: Build run: yarn build diff --git a/.github/workflows/size.yml b/.github/workflows/size.yml deleted file mode 100644 index 6021cda..0000000 --- a/.github/workflows/size.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: size -on: [pull_request] -jobs: - size: - runs-on: ubuntu-latest - env: - CI_JOB_NUMBER: 1 - steps: - - uses: actions/checkout@v1 - - uses: andresz1/size-limit-action@v1 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/package-lock.json b/package-lock.json index 825e63d..fb6820c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "typescript": "^4.5.5" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/@ampproject/remapping": { @@ -11448,19 +11448,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/tsutils/node_modules/typescript": { - "version": "3.9.10", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -14097,8 +14084,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "6.2.0", @@ -14377,15 +14363,13 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/babel-plugin-annotate-pure-calls/-/babel-plugin-annotate-pure-calls-0.4.0.tgz", "integrity": "sha512-oi4M/PWUJOU9ZyRGoPTfPMqdyMp06jbJAomd3RcyYuzUtBOddv98BqLm96Lucpi2QFoQHkdGQt0ACvw7VzVEQA==", - "dev": true, - "requires": {} + "dev": true }, "babel-plugin-dev-expression": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.3.tgz", "integrity": "sha512-rP5LK9QQTzCW61nVVzw88En1oK8t8gTsIeC6E61oelxNsU842yMjF0G1MxhvUpCkxCEIj7sE8/e5ieTheT//uw==", - "dev": true, - "requires": {} + "dev": true }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", @@ -15880,8 +15864,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -17580,8 +17563,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "25.2.6", @@ -20884,12 +20866,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true - }, - "typescript": { - "version": "3.9.10", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true, - "peer": true } } }, @@ -21322,8 +21298,7 @@ "version": "7.5.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true, - "requires": {} + "dev": true }, "xml-name-validator": { "version": "3.0.0", diff --git a/package.json b/package.json index 3e82d3d..807914e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "src" ], "engines": { - "node": ">=12" + "node": ">=14" }, "scripts": { "start": "tsdx watch", diff --git a/src/index.ts b/src/index.ts index 4a5d90f..737a261 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ import { createOrUpdateUser, CLAIM_USER_ID, CLAIM_IS_VERIFIED_USER, + deleteUser, } from './lib/core'; import { createSmartLink } from './lib/smart_links'; import expressLib from './express'; @@ -26,9 +27,10 @@ const claims = { function createInstance(config?: TConfig): IRowndClient { const instConfig = { ...defaultConfig, ...config }; + var initHandle; if (instConfig.app_key) { - fetchAppConfig(instConfig) + initHandle = fetchAppConfig(instConfig) .then(app => (instConfig._app = app)) .catch(err => { throw new Error(`Failed to fetch app config: ${err.message}`); @@ -41,9 +43,11 @@ function createInstance(config?: TConfig): IRowndClient { fetchUserInfo: (opts: FetchUserInfoOpts) => fetchUserInfo(opts, instConfig), createOrUpdateUser: (user: RowndUser) => createOrUpdateUser(user, instConfig), + deleteUser: (userId: String) => deleteUser(userId, instConfig), createSmartLink: (opts: CreateSmartLinkOpts) => createSmartLink(opts, instConfig), express: expressLib(instConfig), + appConfig: initHandle, }; } diff --git a/src/lib/core.ts b/src/lib/core.ts index 9357bd3..de7a546 100644 --- a/src/lib/core.ts +++ b/src/lib/core.ts @@ -153,3 +153,19 @@ export async function createOrUpdateUser( return resp; } + +export async function deleteUser( + userId: String, + config: TConfig +): Promise { + await got.delete( + `${config.api_url}/applications/${config._app!.id}/users/${userId}/data`, + { + headers: { + 'x-rownd-app-key': config.app_key, + 'x-rownd-app-secret': config.app_secret, + 'content-type': 'application/json', + }, + } + ); +} diff --git a/src/types.d.ts b/src/types.d.ts index 95d2a73..20e33f9 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -9,8 +9,10 @@ export interface IRowndClient { validateToken: (token: string) => Promise; fetchUserInfo: (token: FetchUserInfoOpts) => Promise; createOrUpdateUser: (user: TUser) => Promise; + deleteUser: (userId: String) => Promise; createSmartLink: (opts: TCreateSmartLinkOpts) => Promise; express: IRowndExpressClient; + appConfig: Promise | undefined; } interface IRowndExpressClient { diff --git a/test/client.test.ts b/test/client.test.ts index ae2929d..cc361e3 100644 --- a/test/client.test.ts +++ b/test/client.test.ts @@ -2,7 +2,7 @@ import { createInstance } from '../src'; import { createConfig } from '../src/lib/config'; import { TConfig } from '../src/types'; -const TOKEN: string = process.env.TOKEN as string; +// const TOKEN: string = process.env.TOKEN as string; const testConfig: TConfig = createConfig({ api_url: process.env.API_URL, @@ -13,10 +13,13 @@ const testConfig: TConfig = createConfig({ const client = createInstance(testConfig); describe('user profile handling', () => { - it('validate a good token', async () => { - const tokenObj = await client.validateToken(TOKEN); - expect(tokenObj.user_id).toBeDefined(); + beforeAll(() => { + return client.appConfig; // ensure app config has been fetched }); + // it('validate a good token', async () => { + // const tokenObj = await client.validateToken(TOKEN); + // expect(tokenObj.user_id).toBeDefined(); + // }); it('fetches a user', async () => { const user = await client.fetchUserInfo({ user_id: 'mth-test-user-1' }); @@ -27,9 +30,18 @@ describe('user profile handling', () => { const originalUser = await client.fetchUserInfo({ user_id: 'mth-test-user-1', }); - const updatedUser = await client.createOrUpdateUser(originalUser); - expect(updatedUser.data).toBeDefined(); + // Make sure the user has an email address + originalUser.data.email = 'testuser@rownd.app'; + + try { + const updatedUser = await client.createOrUpdateUser(originalUser); + + expect(updatedUser.data).toBeDefined(); + } catch (err) { + var error: any = err; + fail(error.message + ': ' + error?.response?.body); + } }); it('creates a login link', async () => { diff --git a/yarn.lock b/yarn.lock index 9d3426c..16b12fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,7 +21,7 @@ "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz" "version" "7.17.0" -"@babel/core@^6.0.0-0 || 7.x", "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.4.4", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.4.4", "@babel/core@^7.7.5": "integrity" "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==" "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz" "version" "7.17.0" @@ -1266,7 +1266,7 @@ dependencies: "defer-to-connect" "^2.0.0" -"@types/babel__core@^7.1.7", "@types/babel__core@^7.1.9": +"@types/babel__core@^7.1.7": "integrity" "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==" "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz" "version" "7.1.18" @@ -1451,7 +1451,7 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@>=10.0.0": +"@types/node@*": "integrity" "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==" "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz" "version" "17.0.15" @@ -1520,7 +1520,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^2.12.0", "@typescript-eslint/eslint-plugin@2.x": +"@typescript-eslint/eslint-plugin@^2.12.0": "integrity" "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==" "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz" "version" "2.34.0" @@ -1540,7 +1540,7 @@ "eslint-scope" "^5.0.0" "eslint-utils" "^2.0.0" -"@typescript-eslint/parser@^2.0.0", "@typescript-eslint/parser@^2.12.0", "@typescript-eslint/parser@2.x": +"@typescript-eslint/parser@^2.12.0": "integrity" "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==" "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz" "version" "2.34.0" @@ -1594,16 +1594,16 @@ "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" "version" "6.2.0" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.0", "acorn@^7.1.1": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" - "acorn@^6.0.1": "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" "version" "6.4.2" +"acorn@^7.1.0", "acorn@^7.1.1": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" + "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.3": "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" @@ -1829,7 +1829,7 @@ "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" "version" "2.2.0" -"babel-eslint@^10.0.3", "babel-eslint@10.x": +"babel-eslint@^10.0.3": "integrity" "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==" "resolved" "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz" "version" "10.1.0" @@ -2776,11 +2776,6 @@ "is-date-object" "^1.0.1" "is-symbol" "^1.0.2" -"esbuild-darwin-64@0.14.19": - "integrity" "sha512-7AVoNnlLkU2Cm7yaJkPO3RxDwjbXR5pv6JQlnhUEjGdq2+anR235whUf9bJ77s3PgawLKN4bd/FiS+zTnrR5DA==" - "resolved" "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.19.tgz" - "version" "0.14.19" - "esbuild@^0.14.18": "integrity" "sha512-aBbxc+wvD608wYlpKGtOjUGnhiM/0LLndrkVL8dYxIRb3I+lEBJ1w3i2A4rfd5z3Tf4IzJJ1c+HHliC02WQdJg==" "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.14.19.tgz" @@ -2867,14 +2862,14 @@ "debug" "^3.2.7" "find-up" "^2.1.0" -"eslint-plugin-flowtype@^3.13.0", "eslint-plugin-flowtype@3.x || 4.x": +"eslint-plugin-flowtype@^3.13.0": "integrity" "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==" "resolved" "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz" "version" "3.13.0" dependencies: "lodash" "^4.17.15" -"eslint-plugin-import@^2.18.2", "eslint-plugin-import@2.x": +"eslint-plugin-import@^2.18.2": "integrity" "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==" "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz" "version" "2.25.4" @@ -2893,7 +2888,7 @@ "resolve" "^1.20.0" "tsconfig-paths" "^3.12.0" -"eslint-plugin-jsx-a11y@^6.2.3", "eslint-plugin-jsx-a11y@6.x": +"eslint-plugin-jsx-a11y@^6.2.3": "integrity" "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==" "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz" "version" "6.5.1" @@ -2918,12 +2913,12 @@ dependencies: "prettier-linter-helpers" "^1.0.0" -"eslint-plugin-react-hooks@^2.2.0", "eslint-plugin-react-hooks@1.x || 2.x": +"eslint-plugin-react-hooks@^2.2.0": "integrity" "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==" "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz" "version" "2.5.1" -"eslint-plugin-react@^7.14.3", "eslint-plugin-react@7.x": +"eslint-plugin-react@^7.14.3": "integrity" "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==" "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz" "version" "7.28.0" @@ -2970,7 +2965,7 @@ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" "version" "1.3.0" -"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "eslint@^5.0.0 || ^6.0.0", "eslint@^6.1.0", "eslint@>= 4.12.1", "eslint@>=3.14.1", "eslint@>=5.0.0", "eslint@6.x": +"eslint@^6.1.0": "integrity" "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==" "resolved" "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz" "version" "6.8.0" @@ -4382,7 +4377,7 @@ "jest-regex-util" "^25.2.6" "jest-snapshot" "^25.5.1" -"jest-resolve@*", "jest-resolve@^25.5.1": +"jest-resolve@^25.5.1": "integrity" "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==" "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz" "version" "25.5.1" @@ -4546,7 +4541,7 @@ "merge-stream" "^2.0.0" "supports-color" "^7.0.0" -"jest@^25.3.0", "jest@>=25 <26": +"jest@^25.3.0": "integrity" "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==" "resolved" "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz" "version" "25.5.4" @@ -5522,7 +5517,7 @@ dependencies: "fast-diff" "^1.1.2" -"prettier@^1.19.1", "prettier@>=1.13.0": +"prettier@^1.19.1": "integrity" "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" "resolved" "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz" "version" "1.19.1" @@ -5785,7 +5780,7 @@ "stealthy-require" "^1.1.1" "tough-cookie" "^2.3.3" -"request@^2.34", "request@^2.88.0": +"request@^2.88.0": "integrity" "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==" "resolved" "https://registry.npmjs.org/request/-/request-2.88.2.tgz" "version" "2.88.2" @@ -5961,7 +5956,7 @@ dependencies: "estree-walker" "^0.6.1" -"rollup@^1.20.0 || ^2.0.0", "rollup@^1.20.0||^2.0.0", "rollup@^1.32.1", "rollup@>=0.31.2", "rollup@>=0.66.0 <3", "rollup@>=1.26.3": +"rollup@^1.32.1": "integrity" "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==" "resolved" "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz" "version" "1.32.1" @@ -6204,7 +6199,7 @@ "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" "version" "1.0.5" -"size-limit@^7.0.8", "size-limit@7.0.8": +"size-limit@^7.0.8": "integrity" "sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==" "resolved" "https://registry.npmjs.org/size-limit/-/size-limit-7.0.8.tgz" "version" "7.0.8" @@ -6864,7 +6859,7 @@ dependencies: "is-typedarray" "^1.0.0" -"typescript@^3.7.3", "typescript@>=2.4.0", "typescript@>=3.4 <4.0": +"typescript@^3.7.3": "integrity" "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==" "resolved" "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz" "version" "3.9.10" @@ -6874,10 +6869,6 @@ "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz" "version" "4.5.5" -"typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": - "integrity" "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==" - "version" "3.9.10" - "unbox-primitive@^1.0.1": "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz"