From 035e345d57225fe4923c8ed98a192e24dfa03806 Mon Sep 17 00:00:00 2001 From: Kevin Barabash Date: Thu, 16 Feb 2023 12:08:52 -0500 Subject: [PATCH] FEI-4957.7: Generate .js.flow files from .d.ts files (#529) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary: We want to generate .js.flow files from our .d.ts files so that wonder-stuff packages can be used in codebases that are still using Flow. This PR adds a build script to run flowgen on each .d.ts file in the dist folder of each package. It also adds a script for removing .d.ts files that were generated from .test.ts files. Both scripts are written in TypeScript and use swc-node/register to run. I've added package.json scripts to make this easier. I'll research this further to see if there's a nice shebang approach we can use in the future, but this should suffice for now. Issue: FEI-4957 ## Test plan: - yarn clean - yarn build:types - yarn build:flowtypes - See that .d.ts and .js.flow files have been added to each packages' dist folder - See that there are no __tests__ folders in the dist folder - Copy the dist folders for wonder-stuff-core and wonder-stuff-testing into the node_modules folder of wonder-blocks - Restart flow in wonder-blocks, see that there are two Flow errors in wonder-blocks-icon (this is expected since the Flow types generated from the .d.ts files are different from the Flow types in the original code) Author: kevinbarabash Reviewers: jeresig, github-code-scanning[bot] Required Reviewers: Approved By: jeresig Checks: ✅ CodeQL, ⌛ Lint, typecheck, and coverage check (ubuntu-latest, 16.x), ✅ Prime node_modules cache for primary configuration (ubuntu-latest, 16.x), ✅ gerald, ⏭ dependabot, ✅ Analyze (javascript) Pull Request URL: https://github.com/Khan/wonder-stuff/pull/529 --- .changeset/modern-turtles-invent.md | 10 ++ .flowconfig | 26 --- .github/workflows/node-ci.yml | 9 +- build-scripts/gen-flow-types.ts | 18 ++ build-scripts/remove-test-types-from-dist.ts | 21 +++ package.json | 8 +- yarn.lock | 165 ++++++++++++++++++- 7 files changed, 217 insertions(+), 40 deletions(-) create mode 100644 .changeset/modern-turtles-invent.md delete mode 100644 .flowconfig create mode 100644 build-scripts/gen-flow-types.ts create mode 100644 build-scripts/remove-test-types-from-dist.ts diff --git a/.changeset/modern-turtles-invent.md b/.changeset/modern-turtles-invent.md new file mode 100644 index 00000000..8c858804 --- /dev/null +++ b/.changeset/modern-turtles-invent.md @@ -0,0 +1,10 @@ +--- +"@khanacademy/wonder-stuff-server-google": patch +"@khanacademy/wonder-stuff-testing": patch +"@khanacademy/wonder-stuff-sentry": patch +"@khanacademy/wonder-stuff-server": patch +"@khanacademy/wonder-stuff-core": patch +"@khanacademy/wonder-stuff-i18n": patch +--- + +Generate Flow types from TypeScript types diff --git a/.flowconfig b/.flowconfig deleted file mode 100644 index 3d4b369b..00000000 --- a/.flowconfig +++ /dev/null @@ -1,26 +0,0 @@ -[ignore] -/coverage -/dist -/.vscode -/bin - -[options] -module.name_mapper='@khanacademy/\(wonder-stuff-[^/]*\)' -> '/packages/\1/src/index.js' -enums=true -emoji=true -exact_by_default=true -module.use_strict=true - -[lints] -deprecated-type=error -sketchy-null=error -sketchy-number=error -unclear-type=error -untyped-import=error -untyped-type-import=error - -[declarations] -/node_modules - -[libs] -flow-typed diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 7d3d411a..15fa2f86 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -73,11 +73,10 @@ jobs: run: yarn build - name: Build Types - # There isn't an easy way for us to type check our tests without - # also including them in dist folder when we build the .d.ts files - # so we have to manually remove them. - # TODO(kevin): Figure out how to have the `build:types` script do this. - run: yarn build:types && rm -rf packages/*/dist/**/__tests__ + run: yarn build:types + + - name: Build Flow Types + run: yarn build:flowtypes # Linting / type checking - name: Eslint diff --git a/build-scripts/gen-flow-types.ts b/build-scripts/gen-flow-types.ts new file mode 100644 index 00000000..9d45b52f --- /dev/null +++ b/build-scripts/gen-flow-types.ts @@ -0,0 +1,18 @@ +import {execSync} from "child_process"; +import * as fg from "fast-glob"; +import * as path from "path"; + +const rootDir = path.join(__dirname, ".."); +const files = fg.sync("packages/wonder-stuff-*/dist/**/*.d.ts", {cwd: rootDir}); + +for (const inFile of files) { + const outFile = inFile.replace(".d.ts", ".js.flow"); + const command = `yarn flowgen ${inFile} -o ${outFile} --add-flow-header`; + + try { + execSync(command, {cwd: rootDir}); + console.log(`✅ wrote: ${outFile}`); + } catch (e) { + console.log(`❌ error processing: ${inFile}: ${e}`); + } +} diff --git a/build-scripts/remove-test-types-from-dist.ts b/build-scripts/remove-test-types-from-dist.ts new file mode 100644 index 00000000..dccc6886 --- /dev/null +++ b/build-scripts/remove-test-types-from-dist.ts @@ -0,0 +1,21 @@ +import * as fs from "fs"; +import * as fg from "fast-glob"; +import * as path from "path"; + +const rootDir = path.join(__dirname, ".."); +const files = fg.sync("packages/wonder-stuff-*/dist/**/__tests__/*.d.ts", { + cwd: rootDir, +}); + +for (const file of files) { + fs.unlinkSync(path.join(rootDir, file)); +} + +const dirs = fg.sync("packages/wonder-stuff-*/dist/**/__tests__", { + cwd: rootDir, + onlyFiles: false, +}); + +for (const dir of dirs) { + fs.rmdirSync(path.join(rootDir, dir)); +} diff --git a/package.json b/package.json index 88dda299..49ebf3cc 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,8 @@ "@rollup/plugin-babel": "^6.0.3", "@rollup/plugin-node-resolve": "^15.0.1", "@rollup/plugin-replace": "^5.0.2", + "@swc-node/register": "^1.6.2", + "@swc/core": "^1.3.35", "@types/express": "^4.17.17", "@types/express-winston": "^4.0.0", "@types/jest": "^29.4.0", @@ -53,6 +55,7 @@ "fast-glob": "^3.2.12", "flow-bin": "^0.199.1", "flow-enums-runtime": "^0.0.6", + "flowgen": "^1.21.0", "heapdump": "^0.3.15", "jest": "^29.4.3", "jest-extended": "^3.2.3", @@ -73,14 +76,15 @@ "scripts": { "build": "rollup -c build-settings/rollup.config.js", "build:prodsizecheck": "rollup -c build-settings/rollup.config.js --configPlatforms='browser' --configFormats='esm' --configEnvironment='production'", - "build:types": "yarn tsc --build --verbose tsconfig-build.json", + "build:types": "yarn tsc --build --verbose tsconfig-build.json && node -r @swc-node/register build-scripts/remove-test-types-from-dist.ts", + "build:flowtypes": "node -r @swc-node/register build-scripts/gen-flow-types.ts", "watch": "rollup -c build-settings/rollup.config.js --watch", "clean": "rm -rf packages/wonder-stuff-*/dist && rm -rf packages/wonder-stuff-*/node_modules && rm -f packages/*/tsconfig.tsbuildinfo", "coverage": "yarn run jest --coverage", "format": "prettier --write .", "lint": "eslint --config .eslintrc.js packages", "lint:ci": "eslint --config .eslintrc.js", - "publish:ci": "node utils/pre-publish-check-ci.js && git diff --stat --exit-code HEAD && yarn build && changeset publish", + "publish:ci": "node utils/pre-publish-check-ci.js && git diff --stat --exit-code HEAD && yarn build && yarn build:types && yarn build:flowtypes && changeset publish", "test": "yarn jest", "typecheck": "tsc --project tsconfig-check.json", "nochangeset": "yarn changeset add --empty" diff --git a/yarn.lock b/yarn.lock index 71c5f0d5..fe6c5b95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,7 +10,7 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== @@ -308,7 +308,7 @@ "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/highlight@^7.18.6": +"@babel/highlight@^7.16.7", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== @@ -1995,6 +1995,97 @@ dependencies: "@sinonjs/commons" "^2.0.0" +"@swc-node/core@^1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@swc-node/core/-/core-1.10.1.tgz#fa1c5730353217936903b78086786b1285f3a167" + integrity sha512-4aiqLb5Uz+zDt7oIMAtH69+l1BvKV3k7fMYNNLjgdSM7qmFwrpHwu+Ss9nOYPTCFlbKCUMP/70aD5Gt2skmJaw== + +"@swc-node/register@^1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@swc-node/register/-/register-1.6.2.tgz#51735130a0bcbd60322a3cd71f77739ed7b34a79" + integrity sha512-7kzUOrw5RhSW23VU9RtEOlH71MQZ4cfUPgu245f3tKjYIu1CkxNJVX48FAiGJ6+3QgJMXLr1anT9FeeCmX12xw== + dependencies: + "@swc-node/core" "^1.10.1" + "@swc-node/sourcemap-support" "^0.3.0" + colorette "^2.0.19" + debug "^4.3.4" + pirates "^4.0.5" + tslib "^2.5.0" + +"@swc-node/sourcemap-support@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@swc-node/sourcemap-support/-/sourcemap-support-0.3.0.tgz#e8a0d139bd3e8db39635f63fde43dbe6c39237cc" + integrity sha512-gqBJSmJMWomZFxlppaKea7NeAqFrDrrS0RMt24No92M3nJWcyI9YKGEQKl+EyJqZ5gh6w1s0cTklMHMzRwA1NA== + dependencies: + source-map-support "^0.5.21" + tslib "^2.5.0" + +"@swc/core-darwin-arm64@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.35.tgz#55ff0cc069769ce8bf6562ca0e724fe9c43deb8c" + integrity sha512-zQUFkHx4gZpu0uo2IspvPnKsz8bsdXd5bC33xwjtoAI1cpLerDyqo4v2zIahEp+FdKZjyVsLHtfJiQiA1Qka3A== + +"@swc/core-darwin-x64@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.35.tgz#270543a2aad6ddbc2d8e8d9a0b025bc08cef9a48" + integrity sha512-oOSkSGWtALovaw22lNevKD434OQTPf8X+dVPvPMrJXJpJ34dWDlFWpLntoc+arvKLNZ7LQmTuk8rR1hkrAY7cw== + +"@swc/core-linux-arm-gnueabihf@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.35.tgz#d2c81406202202962c09451ec58e37efacb15c38" + integrity sha512-Yie8k00O6O8BCATS/xeKStquV4OYSskUGRDXBQVDw1FrE23PHaSeHCgg4q6iNZjJzXCOJbaTCKnYoIDn9DMf7A== + +"@swc/core-linux-arm64-gnu@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.35.tgz#f4670584fbe71525d919fa06db3ad778cee242e6" + integrity sha512-Zlv3WHa/4x2p51HSvjUWXHfSe1Gl2prqImUZJc8NZOlj75BFzVuR0auhQ+LbwvIQ3gaA1LODX9lyS9wXL3yjxA== + +"@swc/core-linux-arm64-musl@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.35.tgz#fd116255cca2d8e098637e95f38ae08f95a47db6" + integrity sha512-u6tCYsrSyZ8U+4jLMA/O82veBfLy2aUpn51WxQaeH7wqZGy9TGSJXoO8vWxARQ6b72vjsnKDJHP4MD8hFwcctg== + +"@swc/core-linux-x64-gnu@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.35.tgz#7a0fb187f1e9baa38d05273a7576c4eaf80a96b8" + integrity sha512-Dtxf2IbeH7XlNhP1Qt2/MvUPkpEbn7hhGfpSRs4ot8D3Vf5QEX4S/QtC1OsFWuciiYgHAT1Ybjt4xZic9DSkmA== + +"@swc/core-linux-x64-musl@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.35.tgz#ad2632b9ae0ea2bfd1461f121b324063c3d6755e" + integrity sha512-4XavNJ60GprjpTiESCu5daJUnmErixPAqDitJSMu4TV32LNIE8G00S9pDLXinDTW1rgcGtQdq1NLkNRmwwovtg== + +"@swc/core-win32-arm64-msvc@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.35.tgz#5761d0f6efd9affa5571104f1a1951b8b530ec45" + integrity sha512-dNGfKCUSX2M4qVyaS80Lyos0FkXyHRCvrdQ2Y4Hrg3FVokiuw3yY6fLohpUfQ5ws3n2A39dh7jGDeh34+l0sGA== + +"@swc/core-win32-ia32-msvc@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.35.tgz#53ebcf1a6abb0e5152c17da3871d695dfdc07338" + integrity sha512-ChuPSrDR+JBf7S7dEKPicnG8A3bM0uWPsW2vG+V2wH4iNfNxKVemESHosmYVeEZXqMpomNMvLyeHep1rjRsc0Q== + +"@swc/core-win32-x64-msvc@1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.35.tgz#186170a7f33d1a08ce00800baf293e6d114659a9" + integrity sha512-/RvphT4WfuGfIK84Ha0dovdPrKB1bW/mc+dtdmhv2E3EGkNc5FoueNwYmXWRimxnU7X0X7IkcRhyKB4G5DeAmg== + +"@swc/core@^1.3.35": + version "1.3.35" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.35.tgz#a96fa52651e56dc00af7b0b83750be33e151bfa8" + integrity sha512-KmiBin0XSVzJhzX19zTiCqmLslZ40Cl7zqskJcTDeIrRhfgKdiAsxzYUanJgMJIRjYtl9Kcg1V/Ip2o2wL8v3w== + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.35" + "@swc/core-darwin-x64" "1.3.35" + "@swc/core-linux-arm-gnueabihf" "1.3.35" + "@swc/core-linux-arm64-gnu" "1.3.35" + "@swc/core-linux-arm64-musl" "1.3.35" + "@swc/core-linux-x64-gnu" "1.3.35" + "@swc/core-linux-x64-musl" "1.3.35" + "@swc/core-win32-arm64-msvc" "1.3.35" + "@swc/core-win32-ia32-msvc" "1.3.35" + "@swc/core-win32-x64-msvc" "1.3.35" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -3035,6 +3126,11 @@ color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + colors@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -3053,6 +3149,11 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -4078,6 +4179,20 @@ flow-enums-runtime@^0.0.6: resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz#5bb0cd1b0a3e471330f4d109039b7eba5cb3e787" integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== +flowgen@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.21.0.tgz#f7ecb693892c4bd069492dbf77db561bbb451aa9" + integrity sha512-pFNFFyMLRmW6njhOIm5TrbGUDTv64aujmys2KrkRE2NYD8sXwJUyicQRwU5SPRBRJnFSD/FNlnHo2NnHI5eJSw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/highlight" "^7.16.7" + commander "^6.1.0" + lodash "^4.17.20" + prettier "^2.5.1" + shelljs "^0.8.4" + typescript "~4.4.4" + typescript-compiler "^1.4.1-2" + fn.name@1.x.x: version "1.1.0" resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" @@ -4262,7 +4377,7 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4618,6 +4733,11 @@ internal-slot@^1.0.3: 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== + ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -5534,7 +5654,7 @@ lodash.startcase@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== -lodash@^4.17.21: +lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6384,7 +6504,7 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pirates@^4.0.4: +pirates@^4.0.4, pirates@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== @@ -6439,7 +6559,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.7.1, prettier@^2.8.4: +prettier@^2.5.1, prettier@^2.7.1, prettier@^2.8.4: version "2.8.4" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== @@ -6691,6 +6811,13 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -7021,6 +7148,15 @@ shebang-regex@^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.4: + 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" + shimmer@^1.1.0, shimmer@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" @@ -7113,7 +7249,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@~0.5.20: 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== @@ -7491,6 +7627,11 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -7556,11 +7697,21 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typescript-compiler@^1.4.1-2: + version "1.4.1-2" + resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" + integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== + typescript@^4.9.5: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@~4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"