diff --git a/.changeset/config.json b/.changeset/config.json index fd09fa30d24..4a798d21da7 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -21,7 +21,9 @@ "firebase-repo-scripts-prune-dts" ], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { - "onlyUpdatePeerDependentsWhenOutOfRange": true, - "useCalculatedVersionForSnapshots": true + "onlyUpdatePeerDependentsWhenOutOfRange": true + }, + "snapshot": { + "useCalculatedVersion": true } } diff --git a/.changeset/fluffy-pumpkins-train.md b/.changeset/fluffy-pumpkins-train.md new file mode 100644 index 00000000000..3396c0444a9 --- /dev/null +++ b/.changeset/fluffy-pumpkins-train.md @@ -0,0 +1,50 @@ +--- +'@firebase/rules-unit-testing': patch +'@firebase/analytics': patch +'@firebase/analytics-compat': patch +'@firebase/analytics-interop-types': patch +'@firebase/analytics-types': patch +'@firebase/app': patch +'@firebase/app-check': patch +'@firebase/app-check-compat': patch +'@firebase/app-check-interop-types': patch +'@firebase/app-check-types': patch +'@firebase/app-compat': patch +'@firebase/app-types': patch +'@firebase/auth': patch +'@firebase/auth-compat': patch +'@firebase/auth-interop-types': patch +'@firebase/auth-types': patch +'@firebase/component': patch +'@firebase/database': patch +'@firebase/database-compat': patch +'@firebase/database-types': patch +'firebase': minor +'@firebase/firestore': patch +'@firebase/firestore-compat': patch +'@firebase/firestore-types': patch +'@firebase/functions': patch +'@firebase/functions-compat': patch +'@firebase/functions-types': patch +'@firebase/installations': patch +'@firebase/installations-compat': patch +'@firebase/installations-types': patch +'@firebase/logger': patch +'@firebase/messaging': patch +'@firebase/messaging-compat': patch +'@firebase/messaging-interop-types': patch +'@firebase/messaging-types': patch +'@firebase/performance': patch +'@firebase/performance-compat': patch +'@firebase/performance-types': patch +'@firebase/remote-config': patch +'@firebase/remote-config-compat': patch +'@firebase/remote-config-types': patch +'@firebase/storage': patch +'@firebase/storage-compat': patch +'@firebase/storage-types': patch +'@firebase/util': patch +'@firebase/webchannel-wrapper': patch +--- + +Upgrade TypeScript to 4.7.4. diff --git a/package.json b/package.json index 0a65b161283..abe4e10850c 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,8 @@ "@babel/core": "7.17.10", "@babel/plugin-transform-modules-commonjs": "7.17.9", "@babel/preset-env": "7.17.10", - "@babel/register": "7.17.7", "@babel/preset-typescript": "7.16.7", + "@babel/register": "7.17.7", "@changesets/changelog-github": "0.4.7", "@changesets/cli": "2.25.0", "@types/chai": "4.3.1", @@ -75,23 +75,24 @@ "@types/clone": "2.1.1", "@types/eslint": "7.29.0", "@types/inquirer": "8.2.1", + "@types/js-yaml": "4.0.5", "@types/listr": "0.14.4", "@types/long": "4.0.2", "@types/mocha": "9.1.1", "@types/mz": "2.7.4", "@types/node": "12.20.50", + "@types/request": "2.48.8", "@types/sinon": "9.0.11", "@types/sinon-chai": "3.2.8", "@types/tmp": "0.2.3", "@types/yargs": "17.0.13", - "@types/js-yaml": "4.0.5", - "@types/request": "2.48.8", "@typescript-eslint/eslint-plugin": "4.33.0", "@typescript-eslint/eslint-plugin-tslint": "4.33.0", "@typescript-eslint/parser": "4.33.0", "api-documenter-me": "0.1.1", "api-extractor-me": "0.1.2", "babel-loader": "8.2.5", + "babel-plugin-transform-import-meta": "2.1.1", "chai": "4.3.6", "chai-as-promised": "7.1.1", "chalk": "4.1.2", @@ -150,7 +151,7 @@ "ts-node": "10.9.1", "tslint": "6.1.3", "typedoc": "0.16.11", - "typescript": "4.2.2", + "typescript": "4.7.4", "watch": "1.0.2", "webpack": "4.46.0", "yargs": "17.6.0" diff --git a/repo-scripts/prune-dts/prune-dts.ts b/repo-scripts/prune-dts/prune-dts.ts index f031a7bf08a..46ffecc19ec 100644 --- a/repo-scripts/prune-dts/prune-dts.ts +++ b/repo-scripts/prune-dts/prune-dts.ts @@ -192,6 +192,7 @@ function maybeHideConstructor( function prunePrivateImports< T extends ts.InterfaceDeclaration | ts.ClassDeclaration >( + factory: ts.NodeFactory, program: ts.Program, host: ts.CompilerHost, sourceFile: ts.SourceFile, @@ -233,13 +234,13 @@ function prunePrivateImports< if (exportedTypes.length > 0) { prunedHeritageClauses.push( - ts.updateHeritageClause(heritageClause, exportedTypes) + factory.updateHeritageClause(heritageClause, exportedTypes) ); } } if (ts.isClassDeclaration(node)) { - return ts.updateClassDeclaration( + return factory.updateClassDeclaration( node, node.decorators, node.modifiers, @@ -252,7 +253,7 @@ function prunePrivateImports< ] ) as T; } else if (ts.isInterfaceDeclaration(node)) { - return ts.updateInterfaceDeclaration( + return factory.updateInterfaceDeclaration( node, node.decorators, node.modifiers, @@ -339,11 +340,23 @@ function extractJSDocComment( } }); - if (comments.length > 0) { + if (comments.length > 0 && symbol.declarations) { const jsDocTags = ts.getJSDocTags(symbol.declarations[overloadCount]); const maybeNewline = jsDocTags?.length > 0 ? '\n' : ''; + const joinedComments = comments + .map(comment => { + if (comment.kind === 'linkText') { + return comment.text.trim(); + } + return comment.text; + }) + .join(''); + const formattedComments = joinedComments + .replace('*', '\n') + .replace(' \n', '\n') + .replace('\n ', '\n'); return ts.factory.createJSDocComment( - comments[0].text + maybeNewline, + formattedComments + maybeNewline, jsDocTags ); } @@ -399,19 +412,21 @@ function extractExportedSymbol( // See if there is an exported symbol that extends this private symbol. // In this case, we can safely use the public symbol instead. for (const symbol of allExportedSymbols) { - for (const declaration of symbol.declarations) { - if ( - ts.isClassDeclaration(declaration) || - ts.isInterfaceDeclaration(declaration) - ) { - for (const heritageClause of declaration.heritageClauses || []) { - for (const type of heritageClause.types || []) { - if (ts.isIdentifier(type.expression)) { - const subclassName = type.expression.escapedText; - if (subclassName === localSymbolName) { - // TODO: We may need to change this to return a Union type if - // more than one public type corresponds to the private type. - return symbol; + if (symbol.declarations) { + for (const declaration of symbol.declarations) { + if ( + ts.isClassDeclaration(declaration) || + ts.isInterfaceDeclaration(declaration) + ) { + for (const heritageClause of declaration.heritageClauses || []) { + for (const type of heritageClause.types || []) { + if (ts.isIdentifier(type.expression)) { + const subclassName = type.expression.escapedText; + if (subclassName === localSymbolName) { + // TODO: We may need to change this to return a Union type if + // more than one public type corresponds to the private type. + return symbol; + } } } } @@ -425,8 +440,8 @@ function extractExportedSymbol( // symbol. Note that this is not always safe as we might replace the local // symbol with a less restrictive type. const localSymbol = typeChecker.getSymbolAtLocation(typeName); - if (localSymbol) { - for (const declaration of localSymbol!.declarations) { + if (localSymbol?.declarations) { + for (const declaration of localSymbol.declarations) { if ( ts.isClassDeclaration(declaration) || ts.isInterfaceDeclaration(declaration) @@ -453,6 +468,7 @@ function dropPrivateApiTransformer( context: ts.TransformationContext ): ts.Transformer { const typeChecker = program.getTypeChecker(); + const { factory } = context; return (sourceFile: ts.SourceFile) => { function visit(node: ts.Node): ts.Node { @@ -469,7 +485,7 @@ function dropPrivateApiTransformer( if ( !node.modifiers?.find(m => m.kind === ts.SyntaxKind.ExportKeyword) ) { - return ts.createToken(ts.SyntaxKind.WhitespaceTrivia); + return factory.createNotEmittedStatement(node); } } @@ -482,7 +498,7 @@ function dropPrivateApiTransformer( ) { // Remove any imports that reference internal APIs, while retaining // their public members. - return prunePrivateImports(program, host, sourceFile, node); + return prunePrivateImports(factory, program, host, sourceFile, node); } else if ( ts.isPropertyDeclaration(node) || ts.isMethodDeclaration(node) || @@ -491,7 +507,7 @@ function dropPrivateApiTransformer( // Remove any class and interface members that are prefixed with // underscores. if (hasPrivatePrefix(node.name as ts.Identifier)) { - return ts.createToken(ts.SyntaxKind.WhitespaceTrivia); + return factory.createNotEmittedStatement(node); } } else if (ts.isTypeReferenceNode(node)) { // For public types that refer internal types, find a public type that @@ -502,9 +518,9 @@ function dropPrivateApiTransformer( node.typeName ); return publicName - ? ts.updateTypeReferenceNode( + ? factory.updateTypeReferenceNode( node, - ts.createIdentifier(publicName.name), + factory.createIdentifier(publicName.name), node.typeArguments ) : node; diff --git a/scripts/build/create-overloads.ts b/scripts/build/create-overloads.ts index 67f0f0a09dc..b3a9ada28e7 100644 --- a/scripts/build/create-overloads.ts +++ b/scripts/build/create-overloads.ts @@ -125,6 +125,7 @@ function keepPublicFunctionsTransformer( return (sourceFile: ts.SourceFile) => { const typeChecker = program.getTypeChecker(); const overloads: ts.Statement[] = []; + const { factory } = context; function visit(node: ts.Node): ts.Node { if (ts.isFunctionDeclaration(node)) { // return early if the function doesn't have any parameter of the type we are looking for @@ -137,7 +138,7 @@ function keepPublicFunctionsTransformer( return false; }) ) { - return ts.createToken(ts.SyntaxKind.WhitespaceTrivia); + return factory.createNotEmittedStatement(node); } const newParameters = node.parameters.map(param => { @@ -146,14 +147,14 @@ function keepPublicFunctionsTransformer( if ( param.type.typeName.getText(sourceFile) === replaceOption.match ) { - return ts.updateParameter( + return factory.updateParameterDeclaration( param, param.decorators, param.modifiers, param.dotDotDotToken, param.name, param.questionToken, - ts.createTypeReferenceNode( + factory.createTypeReferenceNode( replaceOption.replacement, param.type.typeArguments ), @@ -173,7 +174,7 @@ function keepPublicFunctionsTransformer( }); overloads.push( - ts.updateFunctionDeclaration( + factory.updateFunctionDeclaration( node, node.decorators, [], @@ -189,7 +190,7 @@ function keepPublicFunctionsTransformer( // remove all nodes other than the source file itself if (!ts.isSourceFile(node)) { - return ts.createToken(ts.SyntaxKind.WhitespaceTrivia); + return factory.createNotEmittedStatement(node); } return node; @@ -214,42 +215,49 @@ function keepPublicFunctionsTransformer( } // hardcode adding `import { FirebaseApp as FirebaseAppCompat } from '@firebase/app-compat'` - const appCompatImport = ts.createImportDeclaration( + const appCompatImport = factory.createImportDeclaration( undefined, undefined, - ts.createImportClause( + factory.createImportClause( + false, undefined, - ts.createNamedImports([ - ts.createImportSpecifier( - ts.createIdentifier('FirebaseApp'), - ts.createIdentifier('FirebaseAppCompat') + factory.createNamedImports([ + factory.createImportSpecifier( + false, + factory.createIdentifier('FirebaseApp'), + factory.createIdentifier('FirebaseAppCompat') ) ]) ), - ts.createLiteral('@firebase/app-compat') + factory.createStringLiteral('@firebase/app-compat') ); - const importStatement = ts.createImportDeclaration( + const importStatement = factory.createImportDeclaration( undefined, undefined, - ts.createImportClause( + factory.createImportClause( + false, undefined, - ts.createNamedImports( + factory.createNamedImports( Array.from(typesToImport).map(typeName => - ts.createImportSpecifier(undefined, ts.createIdentifier(typeName)) + factory.createImportSpecifier( + true, + undefined, + factory.createIdentifier(typeName) + ) ) ) ), - ts.createLiteral(moduleNameToEnhance) + factory.createStringLiteral(moduleNameToEnhance) ); - const moduleToEnhance = ts.createModuleDeclaration( + const moduleToEnhance = factory.createModuleDeclaration( undefined, - [ts.createModifier(ts.SyntaxKind.DeclareKeyword)], - ts.createStringLiteral(moduleNameToEnhance), - ts.createModuleBlock(overloads) + [factory.createModifier(ts.SyntaxKind.DeclareKeyword)], + factory.createStringLiteral(moduleNameToEnhance), + factory.createModuleBlock(overloads) ); - return ts.updateSourceFileNode(transformed, [ + return factory.updateSourceFile(transformed, [ appCompatImport, importStatement, moduleToEnhance @@ -302,7 +310,7 @@ function findTypes( // include the type if it's not in the excludes list or a builtin type if (!typesToIgnore.includes(typeName)) { const symbol = typeCheck.getSymbolAtLocation(node.typeName); - const declaration = symbol?.declarations[0]; + const declaration = symbol?.declarations?.[0]; // ignore type parameters. if (!declaration || !ts.isTypeParameterDeclaration(declaration)) { diff --git a/scripts/release/utils/workspace.ts b/scripts/release/utils/workspace.ts index 357b320d894..077e3124b2a 100644 --- a/scripts/release/utils/workspace.ts +++ b/scripts/release/utils/workspace.ts @@ -33,7 +33,16 @@ const workspaces = rawWorkspaces.map(workspace => `${root}/${workspace}`); export function mapWorkspaceToPackages( workspaces: string[] ): Promise { - return Promise.all( + const workspacePromises: Promise[] = workspaces.map( + workspace => + new Promise(resolve => { + glob(workspace, (err, paths) => { + if (err) throw err; + resolve(paths); + }); + }) + ); + return Promise.all[]>( workspaces.map( workspace => new Promise(resolve => { @@ -43,7 +52,9 @@ export function mapWorkspaceToPackages( }); }) ) - ).then(paths => paths.reduce((arr, val) => arr.concat(val), [])); + ).then(paths => + paths.reduce((arr: string[], val: string[]) => arr.concat(val), []) + ); } function mapPackagestoPkgJson(packagePaths: string[]) { diff --git a/yarn.lock b/yarn.lock index b9ed94cf40d..fcb1d57f8ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40,6 +40,13 @@ dependencies: "@babel/highlight" "^7.16.7" +"@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" @@ -416,6 +423,11 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": version "7.15.7" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" @@ -426,6 +438,11 @@ resolved "https://registry.npmjs.org/@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.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" @@ -482,6 +499,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.15.4", "@babel/parser@^7.15.5", "@babel/parser@^7.7.2": version "7.15.7" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" @@ -497,6 +523,11 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== +"@babel/parser@^7.18.10": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" + integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -1178,6 +1209,15 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/template@^7.4.4": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": version "7.15.4" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" @@ -1257,6 +1297,15 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.18.10": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@changesets/apply-release-plan@^6.1.1": version "6.1.1" resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-6.1.1.tgz#14ec261c11c9b90d110a83b8b96412ddb7303ddf" @@ -3174,11 +3223,16 @@ resolved "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8": version "7.0.9" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/json-stable-stringify@1.0.34": version "1.0.34" resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" @@ -4627,6 +4681,14 @@ babel-plugin-polyfill-regenerator@^0.3.0: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" +babel-plugin-transform-import-meta@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-import-meta/-/babel-plugin-transform-import-meta-2.1.1.tgz#da2d6fa492dab1998d2f3f977d74225d957e7704" + integrity sha512-XWEzH1lKhpNDGqZRIPSHbS77tJbPKpRzydQRoJ6KLj0eynQy+MJSo/C75GtMNWnJsP1sGOAvlWcTMMHnWNBSXg== + dependencies: + "@babel/template" "^7.4.4" + tslib "^2.2.0" + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -7778,6 +7840,17 @@ fast-glob@^3.0.3, fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + 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.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -8800,7 +8873,7 @@ globby@10.0.1: merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: +globby@^11.0.0, globby@^11.0.1, globby@^11.0.2: version "11.0.4" resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -8812,6 +8885,18 @@ globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + globby@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" @@ -9477,7 +9562,7 @@ ignore@^5.1.1, ignore@^5.1.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -ignore@^5.1.8: +ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -11925,7 +12010,7 @@ merge-stream@^2.0.0: resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@1.4.1, merge2@^1.2.3, merge2@^1.3.0: +merge2@1.4.1, merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -16481,7 +16566,7 @@ tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.3.1: +tslib@^2, tslib@^2.2.0, tslib@^2.3.1: version "2.4.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -16690,6 +16775,11 @@ typescript@4.2.2: resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== +typescript@4.7.4: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + typescript@~4.1.3: version "4.1.6" resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.6.tgz#1becd85d77567c3c741172339e93ce2e69932138"