diff --git a/.eslintrc.json b/.eslintrc.json index 42fdf78bd6..d21952753f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,6 +1,7 @@ { "env": { - "es6": true, + "es2017": true, + "mocha": true, "node": true }, "extends": ["eslint:recommended"], diff --git a/generators/generator-bot-adaptive/.mocharc.json b/generators/generator-bot-adaptive/.mocharc.json new file mode 100644 index 0000000000..860b7e7f60 --- /dev/null +++ b/generators/generator-bot-adaptive/.mocharc.json @@ -0,0 +1,7 @@ +{ + "checkLeaks": true, + "exit": true, + "forbidOnly": true, + "forbidPending": true, + "recursive": true +} diff --git a/generators/generator-bot-adaptive/package.json b/generators/generator-bot-adaptive/package.json index 3bbd646400..98ca42a60a 100644 --- a/generators/generator-bot-adaptive/package.json +++ b/generators/generator-bot-adaptive/package.json @@ -20,19 +20,23 @@ "url": "https://github.com/Microsoft/botframework-components.git" }, "scripts": { - "lint": "eslint -c .eslintrc.json ." + "lint": "eslint -c .eslintrc.json .", + "test": "mocha" }, "dependencies": { "globby": "^11.0.2", "normalize-path": "^3.0.0", "runtypes": "~5.1.0", "uuid": "^8.3.1", - "yeoman-generator": "^1.1.1" + "yeoman-generator": "^2.0.5" }, "devDependencies": { + "ejs": "^3.1.6", "eslint": "latest", "eslint-config-prettier": "latest", "eslint-plugin-prettier": "latest", - "prettier": "latest" + "mocha": "^8.3.2", + "prettier": "latest", + "yeoman-test": "^6.0.0" } } diff --git a/generators/generator-bot-adaptive/test/dotnet-functions.test.js b/generators/generator-bot-adaptive/test/dotnet-functions.test.js new file mode 100644 index 0000000000..04cb7cd664 --- /dev/null +++ b/generators/generator-bot-adaptive/test/dotnet-functions.test.js @@ -0,0 +1,308 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const fs = require('fs'); +const helpers = require('yeoman-test'); +const path = require('path'); +const TemplateFileReader = require('./templateFileReader'); + +const botName = 'DotNetFunctions'; +const generatorPath = path.join(__dirname, '..', 'generators', 'app'); +const integration = 'functions'; +const platform = 'dotnet'; +const reader = new TemplateFileReader(path.join(generatorPath, 'templates')); + +describe(`generator-bot-adaptive --platform ${platform} --integration ${integration}`, function () { + let runResult; + + before(async function () { + runResult = await helpers + .create(generatorPath) + .withArguments([botName]) + .withOptions({ platform, integration }) + .run(); + }); + + after(function () { + if (runResult) { + runResult.restore(); + } + }); + + it(`should create file ${botName}.sln`, function () { + const filePath = path.join(`${botName}.sln`); + + const actualContent = fs.readFileSync(filePath).toString('utf8'); + const projectType = 'FAE04EC0-301F-11D3-BF4B-00C04F79EFBC'; + + const botProjectGuidExpression = new RegExp( + `Project\\(\\"\\{${projectType}\\}\\"\\) = \\"${botName}\\", ` + + `\\"${botName}\\\\${botName}.csproj\\", ` + + `\\"\\{(.+)\\}\\"`, + 'gi' + ); + + const botProjectGuid = botProjectGuidExpression.exec(actualContent)[1]; + + const solutionGuidExpression = /SolutionGuid = \{(.+)\}/gi; + const solutionGuid = solutionGuidExpression.exec(actualContent)[1]; + + const content = reader.getTemplateFileContent( + path.join('dotnet', 'botName.sln'), + { + botName, + botProjectGuid, + projectType, + solutionGuid, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'ActivitySerializationSettings.cs' + )}`, function () { + const filePath = path.join(botName, 'ActivitySerializationSettings.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'functions', 'ActivitySerializationSettings.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'appsettings.json' + )}`, function () { + const filePath = path.join(botName, 'appsettings.json'); + const content = reader.getJsonFileContent( + path.join('assets', 'appsettings.json'), + { + luis: { + name: botName, + }, + runtime: { + command: `func start --script-root ${path.join( + 'bin', + 'Debug', + 'netcoreapp3.1' + )}`, + key: `adaptive-runtime-${platform}-${integration}`, + }, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + `${botName}.botproj` + )}`, function () { + const filePath = path.join(botName, `${botName}.botproj`); + const content = reader.getJsonFileContent( + path.join('assets', 'botName.botproj'), + { + name: botName, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + `${botName}.csproj` + )}`, function () { + const filePath = path.join(botName, `${botName}.csproj`); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'functions', 'botName.csproj'), + { + botName, + packageReferences: '', + sdkVersion: '4.13.2', + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'host.json')}`, function () { + const filePath = path.join(botName, 'host.json'); + const content = reader.getFileContent( + path.join('dotnet', 'functions', 'host.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'local.settings.json' + )}`, function () { + const filePath = path.join(botName, 'local.settings.json'); + const content = reader.getFileContent( + path.join('dotnet', 'functions', 'local.settings.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'Startup.cs')}`, function () { + const filePath = path.join(botName, 'Startup.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'functions', 'Startup.cs'), + { + botName, + settingsDirectory: 'string.Empty', + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Properties', + 'serviceDependencies.json' + )}`, function () { + const filePath = path.join( + botName, + 'Properties', + 'serviceDependencies.json' + ); + const content = reader.getFileContent( + path.join('dotnet', 'functions', 'Properties', 'serviceDependencies.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Properties', + 'serviceDependencies.local.json' + )}`, function () { + const filePath = path.join( + botName, + 'Properties', + 'serviceDependencies.local.json' + ); + + const content = reader.getFileContent( + path.join( + 'dotnet', + 'functions', + 'Properties', + 'serviceDependencies.local.json' + ) + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Triggers', + 'MessagesTrigger.cs' + )}`, function () { + const filePath = path.join(botName, 'Triggers', 'MessagesTrigger.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'functions', 'Triggers', 'MessagesTrigger.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Triggers', + 'SkillsTrigger.cs' + )}`, function () { + const filePath = path.join(botName, 'Triggers', 'SkillsTrigger.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'functions', 'Triggers', 'SkillsTrigger.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Triggers', + 'StaticFilesTrigger.cs' + )}`, function () { + const filePath = path.join(botName, 'Triggers', 'StaticFilesTrigger.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'functions', 'Triggers', 'StaticFilesTrigger.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.schema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.schema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.schema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.uischema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.uischema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.uischema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.ps1' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.ps1'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.ps1') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.sh' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.sh'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.sh') + ); + + runResult.assertFileContent(filePath, content); + }); +}); diff --git a/generators/generator-bot-adaptive/test/dotnet-webapp.test.js b/generators/generator-bot-adaptive/test/dotnet-webapp.test.js new file mode 100644 index 0000000000..b3a99461ab --- /dev/null +++ b/generators/generator-bot-adaptive/test/dotnet-webapp.test.js @@ -0,0 +1,253 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const fs = require('fs'); +const helpers = require('yeoman-test'); +const path = require('path'); +const TemplateFileReader = require('./templateFileReader'); + +const botName = 'DotNetWebApp'; +const generatorPath = path.join(__dirname, '..', 'generators', 'app'); +const integration = 'webapp'; +const platform = 'dotnet'; +const reader = new TemplateFileReader(path.join(generatorPath, 'templates')); + +describe(`generator-bot-adaptive --platform ${platform} --integration ${integration}`, function () { + let runResult; + + before(async function () { + runResult = await helpers + .create(generatorPath) + .withArguments([botName]) + .withOptions({ platform, integration }) + .run(); + }); + + after(function () { + if (runResult) { + runResult.restore(); + } + }); + + it(`should create file ${botName}.sln`, function () { + const filePath = path.join(`${botName}.sln`); + + const actualContent = fs.readFileSync(filePath).toString('utf8'); + const projectType = '9A19103F-16F7-4668-BE54-9A1E7A4F7556'; + + const botProjectGuidExpression = new RegExp( + `Project\\(\\"\\{${projectType}\\}\\"\\) = \\"${botName}\\", ` + + `\\"${botName}\\\\${botName}.csproj\\", ` + + `\\"\\{(.+)\\}\\"`, + 'gi' + ); + + const botProjectGuid = botProjectGuidExpression.exec(actualContent)[1]; + + const solutionGuidExpression = /SolutionGuid = \{(.+)\}/gi; + const solutionGuid = solutionGuidExpression.exec(actualContent)[1]; + + const content = reader.getTemplateFileContent( + path.join('dotnet', 'botName.sln'), + { + botName, + botProjectGuid, + projectType, + solutionGuid, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'appsettings.json' + )}`, function () { + const filePath = path.join(botName, 'appsettings.json'); + const content = reader.getJsonFileContent( + path.join('assets', 'appsettings.json'), + { + luis: { + name: botName, + }, + runtime: { + command: `dotnet run --project ${botName}.csproj`, + key: `adaptive-runtime-${platform}-${integration}`, + }, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + `${botName}.botproj` + )}`, function () { + const filePath = path.join(botName, `${botName}.botproj`); + const content = reader.getJsonFileContent( + path.join('assets', 'botName.botproj'), + { + name: botName, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + `${botName}.csproj` + )}`, function () { + const filePath = path.join(botName, `${botName}.csproj`); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'webapp', 'botName.csproj'), + { + botName, + packageReferences: '', + sdkVersion: '4.13.2', + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'Program.cs')}`, function () { + const filePath = path.join(botName, 'Program.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'webapp', 'Program.cs'), + { + botName, + settingsDirectory: 'string.Empty', + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'Startup.cs')}`, function () { + const filePath = path.join(botName, 'Startup.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'webapp', 'Startup.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Controllers', + 'BotController.cs' + )}`, function () { + const filePath = path.join(botName, 'Controllers', 'BotController.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'webapp', 'Controllers', 'BotController.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Controllers', + 'SkillController.cs' + )}`, function () { + const filePath = path.join(botName, 'Controllers', 'SkillController.cs'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'webapp', 'Controllers', 'SkillController.cs'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'Properties', + 'launchSettings.json' + )}`, function () { + const filePath = path.join(botName, 'Properties', 'launchSettings.json'); + const content = reader.getFileContent( + path.join('dotnet', 'webapp', 'Properties', 'launchSettings.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.schema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.schema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.schema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.uischema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.uischema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.uischema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.ps1' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.ps1'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.ps1') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.sh' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.sh'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.sh') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'wwwroot', + 'default.htm' + )}`, function () { + const filePath = path.join(botName, 'wwwroot', 'default.htm'); + const content = reader.getTemplateFileContent( + path.join('dotnet', 'webapp', 'wwwroot', 'default.htm'), + { + botName, + } + ); + + runResult.assertFileContent(filePath, content); + }); +}); diff --git a/generators/generator-bot-adaptive/test/js-functions.test.js b/generators/generator-bot-adaptive/test/js-functions.test.js new file mode 100644 index 0000000000..c3c990981a --- /dev/null +++ b/generators/generator-bot-adaptive/test/js-functions.test.js @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const helpers = require('yeoman-test'); +const path = require('path'); +const TemplateFileReader = require('./templateFileReader'); + +const botName = 'JavaScriptFunctions'; +const generatorPath = path.join(__dirname, '..', 'generators', 'app'); +const integration = 'functions'; +const platform = 'js'; +const reader = new TemplateFileReader(path.join(generatorPath, 'templates')); + +describe(`generator-bot-adaptive --platform ${platform} --integration ${integration}`, function () { + let runResult; + + before(async function () { + runResult = await helpers + .create(generatorPath) + .withArguments([botName]) + .withOptions({ platform, integration }) + .run(); + }); + + after(function () { + if (runResult) { + runResult.restore(); + } + }); + + it(`should create file ${path.join( + botName, + 'appsettings.json' + )}`, function () { + const filePath = path.join(botName, 'appsettings.json'); + const content = reader.getJsonFileContent( + path.join('assets', 'appsettings.json'), + { + luis: { + name: botName, + }, + runtime: { + command: `npm run dev --`, + key: `adaptive-runtime-${platform}-${integration}`, + }, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'host.json')}`, function () { + const filePath = path.join(botName, 'host.json'); + const content = reader.getFileContent( + path.join('js', 'functions', 'host.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'index.js')}`, function () { + const filePath = path.join(botName, 'index.js'); + const content = reader.getTemplateFileContent( + path.join('js', 'functions', 'index.js'), + { + settingsDirectory: 'process.cwd()', + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + `${botName}.botproj` + )}`, function () { + const filePath = path.join(botName, `${botName}.botproj`); + const content = reader.getJsonFileContent( + path.join('assets', 'botName.botproj'), + { + name: botName, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'local.settings.json' + )}`, function () { + const filePath = path.join(botName, 'local.settings.json'); + const content = reader.getFileContent( + path.join('js', 'functions', 'local.settings.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'package.json')}`, function () { + const filePath = path.join(botName, 'package.json'); + const content = { + name: botName, + private: true, + scripts: { + dev: 'cross-env NODE_ENV=dev func start', + }, + dependencies: { + 'cross-env': 'latest', + 'botbuilder-ai-luis': '4.13.4-preview', + 'botbuilder-ai-qna': '4.13.4-preview', + 'botbuilder-dialogs-adaptive-runtime-integration-azure-functions': + '4.13.4-preview', + }, + }; + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'messages', + 'function.json' + )}`, function () { + const filePath = path.join(botName, 'messages', 'function.json'); + const content = reader.getFileContent( + path.join('js', 'functions', 'messages', 'function.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.schema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.schema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.schema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.uischema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.uischema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.uischema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.ps1' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.ps1'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.ps1') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.sh' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.sh'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.sh') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'skills', + 'function.json' + )}`, function () { + const filePath = path.join(botName, 'skills', 'function.json'); + const content = reader.getFileContent( + path.join('js', 'functions', 'skills', 'function.json') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'static', + 'function.json' + )}`, function () { + const filePath = path.join(botName, 'static', 'function.json'); + const content = reader.getFileContent( + path.join('js', 'functions', 'static', 'function.json') + ); + + runResult.assertFileContent(filePath, content); + }); +}); diff --git a/generators/generator-bot-adaptive/test/js-webapp.test.js b/generators/generator-bot-adaptive/test/js-webapp.test.js new file mode 100644 index 0000000000..2028572509 --- /dev/null +++ b/generators/generator-bot-adaptive/test/js-webapp.test.js @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const helpers = require('yeoman-test'); +const path = require('path'); +const TemplateFileReader = require('./templateFileReader'); + +const botName = 'JavaScriptWebApp'; +const generatorPath = path.join(__dirname, '..', 'generators', 'app'); +const integration = 'webapp'; +const platform = 'js'; +const reader = new TemplateFileReader(path.join(generatorPath, 'templates')); + +describe(`generator-bot-adaptive --platform ${platform} --integration ${integration}`, function () { + let runResult; + + before(async function () { + runResult = await helpers + .create(generatorPath) + .withArguments([botName]) + .withOptions({ platform, integration }) + .run(); + }); + + after(function () { + if (runResult) { + runResult.restore(); + } + }); + + it(`should create file ${path.join( + botName, + 'appsettings.json' + )}`, function () { + const filePath = path.join(botName, 'appsettings.json'); + const content = reader.getJsonFileContent( + path.join('assets', 'appsettings.json'), + { + luis: { + name: botName, + }, + runtime: { + command: `npm run dev --`, + key: `adaptive-runtime-${platform}-${integration}`, + }, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'index.js')}`, function () { + const filePath = path.join(botName, 'index.js'); + const content = reader.getTemplateFileContent( + path.join('js', 'webapp', 'index.js'), + { + settingsDirectory: 'process.cwd()', + } + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + `${botName}.botproj` + )}`, function () { + const filePath = path.join(botName, `${botName}.botproj`); + const content = reader.getJsonFileContent( + path.join('assets', 'botName.botproj'), + { + name: botName, + } + ); + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'package.json')}`, function () { + const filePath = path.join(botName, 'package.json'); + const content = { + name: botName, + private: true, + scripts: { + dev: 'cross-env NODE_ENV=dev node index.js', + }, + dependencies: { + 'cross-env': 'latest', + 'botbuilder-ai-luis': '4.13.4-preview', + 'botbuilder-ai-qna': '4.13.4-preview', + 'botbuilder-dialogs-adaptive-runtime-integration-express': + '4.13.4-preview', + }, + }; + + runResult.assertJsonFileContent(filePath, content); + }); + + it(`should create file ${path.join(botName, 'web.config')}`, function () { + const filePath = path.join(botName, 'web.config'); + const content = reader.getFileContent( + path.join('js', 'webapp', 'web.config') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.schema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.schema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.schema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'sdk.uischema' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'sdk.uischema'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'sdk.uischema') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.ps1' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.ps1'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.ps1') + ); + + runResult.assertFileContent(filePath, content); + }); + + it(`should create file ${path.join( + botName, + 'schemas', + 'update-schema.sh' + )}`, function () { + const filePath = path.join(botName, 'schemas', 'update-schema.sh'); + const content = reader.getFileContent( + path.join('assets', 'schemas', 'update-schema.sh') + ); + + runResult.assertFileContent(filePath, content); + }); +}); diff --git a/generators/generator-bot-adaptive/test/templateFileReader.js b/generators/generator-bot-adaptive/test/templateFileReader.js new file mode 100644 index 0000000000..45f8da7b7f --- /dev/null +++ b/generators/generator-bot-adaptive/test/templateFileReader.js @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const ejs = require('ejs'); +const fs = require('fs'); +const path = require('path'); + +module.exports = class { + constructor(templatesRoot) { + this.templatesRoot = templatesRoot; + } + + getFileContent(relativePath) { + return fs + .readFileSync(path.join(this.templatesRoot, relativePath), 'utf8') + .trim(); + } + + getJsonFileContent(relativePath, data) { + return Object.assign(JSON.parse(this.getFileContent(relativePath)), data); + } + + getTemplateFileContent(relativePath, data) { + return ejs.render(this.getFileContent(relativePath), data); + } +}; diff --git a/generators/generator-bot-core-assistant/generators/app/index.js b/generators/generator-bot-core-assistant/generators/app/index.js index 2ec266b4e9..b19b308c8c 100644 --- a/generators/generator-bot-core-assistant/generators/app/index.js +++ b/generators/generator-bot-core-assistant/generators/app/index.js @@ -9,13 +9,13 @@ const { } = require('@microsoft/generator-bot-adaptive'); const packageReferences = { - [platforms.dotnet]: [ + [platforms.dotnet.name]: [ { name: 'Microsoft.Bot.Components.HelpAndCancel', version: '1.0.0', }, ], - [platforms.js]: [ + [platforms.js.name]: [ { name: '@microsoft/bot-components-helpandcancel', version: 'latest' }, ], }; diff --git a/generators/generator-bot-core-language/generators/app/index.js b/generators/generator-bot-core-language/generators/app/index.js index 1afaed5f05..e831c00de2 100644 --- a/generators/generator-bot-core-language/generators/app/index.js +++ b/generators/generator-bot-core-language/generators/app/index.js @@ -9,7 +9,7 @@ const { } = require('@microsoft/generator-bot-adaptive'); const packageReferences = { - [platforms.dotnet]: [ + [platforms.dotnet.name]: [ { name: 'Microsoft.Bot.Components.HelpAndCancel', version: '1.0.0', @@ -19,7 +19,7 @@ const packageReferences = { version: '1.0.0', }, ], - [platforms.js]: [ + [platforms.js.name]: [ { name: '@microsoft/bot-components-helpandcancel', version: 'latest' }, { name: '@microsoft/bot-components-welcome', version: 'latest' }, ], diff --git a/yarn.lock b/yarn.lock index 7ea6daa0be..faed4e0a0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -138,15 +138,18 @@ __metadata: version: 0.0.0-use.local resolution: "@microsoft/generator-bot-adaptive@workspace:generators/generator-bot-adaptive" dependencies: + ejs: ^3.1.6 eslint: latest eslint-config-prettier: latest eslint-plugin-prettier: latest globby: ^11.0.2 + mocha: ^8.3.2 normalize-path: ^3.0.0 prettier: latest runtypes: ~5.1.0 uuid: ^8.3.1 - yeoman-generator: ^1.1.1 + yeoman-generator: ^2.0.5 + yeoman-test: ^6.0.0 languageName: unknown linkType: soft @@ -398,6 +401,24 @@ __metadata: languageName: node linkType: hard +"@sinonjs/commons@npm:^1.6.0, @sinonjs/commons@npm:^1.8.1": + version: 1.8.3 + resolution: "@sinonjs/commons@npm:1.8.3" + dependencies: + type-detect: 4.0.8 + checksum: a7f3181512f67bbb9059dc9247febfda6dea58fc2a918360b208c6fde193b0c2cbe628650b0d13b4ba69f144470788eb6c2ef8a84e050dce4808be8511da4316 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^6.0.0, @sinonjs/fake-timers@npm:^6.0.1": + version: 6.0.1 + resolution: "@sinonjs/fake-timers@npm:6.0.1" + dependencies: + "@sinonjs/commons": ^1.7.0 + checksum: 64458b908773638dda08b555a00e6fbbbc679735348291dc1b7f437ada2f60242537fdc48e4ee82d2573d86984ec87e755b66a96c0ed9ebf0f46b4c6687ccde2 + languageName: node + linkType: hard + "@sinonjs/formatio@npm:^2.0.0": version: 2.0.0 resolution: "@sinonjs/formatio@npm:2.0.0" @@ -428,6 +449,17 @@ __metadata: languageName: node linkType: hard +"@sinonjs/samsam@npm:^5.3.1": + version: 5.3.1 + resolution: "@sinonjs/samsam@npm:5.3.1" + dependencies: + "@sinonjs/commons": ^1.6.0 + lodash.get: ^4.4.2 + type-detect: ^4.0.8 + checksum: 0277cd0b71146efed3d243edddc98362adcc25c13e0067b91500fd990792194be64b0ace6f4ba9f98cdec60ee46749e24aad44b46193cfa73096c5ef309b00a1 + languageName: node + linkType: hard + "@sinonjs/text-encoding@npm:^0.7.1": version: 0.7.1 resolution: "@sinonjs/text-encoding@npm:0.7.1" @@ -674,6 +706,13 @@ __metadata: languageName: node linkType: hard +"@ungap/promise-all-settled@npm:1.1.2": + version: 1.1.2 + resolution: "@ungap/promise-all-settled@npm:1.1.2" + checksum: be6c80a2fcea2fc4ed9ccf707da9837c2f501ba21312bf9b39f8b0c4ac7e581ed37909f4f64f8dab0c51c0ae5bdf2a45b59d9a215050876b3f27e6844dba30b6 + languageName: node + linkType: hard + "JSONStream@npm:^1.2.1, JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -820,20 +859,13 @@ __metadata: languageName: node linkType: hard -"ansi-colors@npm:^4.1.1": +"ansi-colors@npm:4.1.1, ansi-colors@npm:^4.1.1": version: 4.1.1 resolution: "ansi-colors@npm:4.1.1" checksum: 50d8dfbce25602caea1b170ecf4c71c4c9c58d2d1e3186fb5712848c0610d05fe60b8bb6a9eaebd9b54f1db3baf6f603e04214cce597cc7799bc9f47fd9a797a languageName: node linkType: hard -"ansi-escapes@npm:^1.1.0": - version: 1.4.0 - resolution: "ansi-escapes@npm:1.4.0" - checksum: c0e83fa29b2776150b2acc04340a6028a98e8aa11485b2356e09b87d85961b74127a1187cd1a4946e05e17f758cda6e7ec7086945f4f1c3bec3dab9d6ab0d986 - languageName: node - linkType: hard - "ansi-escapes@npm:^3.0.0": version: 3.2.0 resolution: "ansi-escapes@npm:3.2.0" @@ -958,6 +990,13 @@ __metadata: languageName: node linkType: hard +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 160b7a25d2a7097fd5fdf25eb8a99e037340078f70e6c7cfdef305837ed14d54570b2b13261bcae26c8cd44ad6e9a7136a0110d815ac65a7891c69c7bf2f4afd + languageName: node + linkType: hard + "arr-diff@npm:^2.0.0": version: 2.0.0 resolution: "arr-diff@npm:2.0.0" @@ -1128,7 +1167,7 @@ __metadata: languageName: node linkType: hard -"async@npm:^2.0.0, async@npm:^2.1.4, async@npm:^2.6.0, async@npm:^2.6.2, async@npm:^2.6.3": +"async@npm:^2.1.4, async@npm:^2.6.0, async@npm:^2.6.2, async@npm:^2.6.3": version: 2.6.3 resolution: "async@npm:2.6.3" dependencies: @@ -1387,6 +1426,13 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: c1b41a26ddc6620eb7f1ee6c29c812f5942a4e328e74263f995872cfb8ca3aee08542beb25cd10fd7ef16e4f16603e25c35a26e776c01fd55277e5035e829e0e + languageName: node + linkType: hard + "base64url@npm:^3.0.0": version: 3.0.1 resolution: "base64url@npm:3.0.1" @@ -1446,6 +1492,13 @@ __metadata: languageName: node linkType: hard +"binaryextensions@npm:^4.15.0": + version: 4.15.0 + resolution: "binaryextensions@npm:4.15.0" + checksum: c594a31c1699460a9786cd3fa57cef73eab9635dc6eba586738ea7f012dcc92d10d00f4ce60c42d2de21b0931b4fdb6b560d8095e515f69e3ebe757f8dd60be1 + languageName: node + linkType: hard + "bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" @@ -1455,6 +1508,17 @@ __metadata: languageName: node linkType: hard +"bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: ^5.5.0 + inherits: ^2.0.4 + readable-stream: ^3.4.0 + checksum: 15d009339c2eeaedb9dab39c48f910a2fd6a9ba11400e61990917ebf3b25fa32cd9b80c7531a95467078258f6a59bd3f5d93323565423a7843855a16a1794261 + languageName: node + linkType: hard + "botbuilder-core@npm:4.13.4": version: 4.13.4 resolution: "botbuilder-core@npm:4.13.4" @@ -1672,6 +1736,13 @@ __metadata: languageName: node linkType: hard +"browser-stdout@npm:1.3.1": + version: 1.3.1 + resolution: "browser-stdout@npm:1.3.1" + checksum: 2f91b1ad26f3401ae68801d901754331811e257aeed4ee0eb287cc2ff375c8fffadb2d14a16654eeb0729e3b1ae6d84642ba7a3119880843d774ee1db2b898b3 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -1726,6 +1797,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: 1750ac396eb36e0157ff5299509723ac0681338ef6cd40b039bc86d59c8b9a9494e99db992836eb6d637de0b270b53ec1a62d4a1c9faeaa51468cc340e553984 + languageName: node + linkType: hard + "builtins@npm:^1.0.3": version: 1.0.3 resolution: "builtins@npm:1.0.3" @@ -1803,6 +1884,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^6.0.0": + version: 6.2.0 + resolution: "camelcase@npm:6.2.0" + checksum: 654700600a80cb1f06ab85b3e2fe80333f94b441884d40826becdac549774f51b0317c6dcb6040416df26241fa9481eb58d0c1659d4d6d5627dcd4259be61beb + languageName: node + linkType: hard + "capture-exit@npm:^1.2.0": version: 1.2.0 resolution: "capture-exit@npm:1.2.0" @@ -1826,7 +1914,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^1.0.0, chalk@npm:^1.1.3": +"chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" dependencies: @@ -1860,6 +1948,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^4.1.1": + version: 4.1.1 + resolution: "chalk@npm:4.1.1" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 445c12db7aeed0046500a1e4184d31209a77d165654c885a789c41c8598a6a95bd2392180987cac572c967b93a2a730dda778bb7f87fa06ca63fd8592f8cc59f + languageName: node + linkType: hard + "chardet@npm:^0.4.0": version: 0.4.2 resolution: "chardet@npm:0.4.2" @@ -1874,7 +1972,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.0": +"chokidar@npm:3.5.1, chokidar@npm:^3.4.0": version: 3.5.1 resolution: "chokidar@npm:3.5.1" dependencies: @@ -1907,15 +2005,6 @@ __metadata: languageName: node linkType: hard -"class-extend@npm:^0.1.0": - version: 0.1.2 - resolution: "class-extend@npm:0.1.2" - dependencies: - object-assign: ^2.0.0 - checksum: 094a230862fefb3b1e4b59b55f7b53c8bc00213d9518deaef1baba2d05220644f4fbb20f108012f15eefa4e1fb37ba786c00621aa3c76823461f221198bbdd43 - languageName: node - linkType: hard - "class-utils@npm:^0.3.5": version: 0.3.6 resolution: "class-utils@npm:0.3.6" @@ -1935,15 +2024,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^1.0.1": - version: 1.0.2 - resolution: "cli-cursor@npm:1.0.2" - dependencies: - restore-cursor: ^1.0.1 - checksum: 72cd1457558c76665a26b37e539f01f59266274a90ff101719231ce3ebed9d10eb5426942bc2b4b477203e6b3829f88970532347ad168928a99314de90c0d8de - languageName: node - linkType: hard - "cli-cursor@npm:^2.1.0": version: 2.1.0 resolution: "cli-cursor@npm:2.1.0" @@ -1962,6 +2042,13 @@ __metadata: languageName: node linkType: hard +"cli-spinners@npm:^2.5.0": + version: 2.6.0 + resolution: "cli-spinners@npm:2.6.0" + checksum: 653ba6818e0091d4ad7aa052022f6c6a0df0d4674ff6069f6ae366e6130c1eb91a6c332ddfdd2029d234411632ff6428950aa3311872daf515ce54da498c1357 + languageName: node + linkType: hard + "cli-table@npm:^0.3.1": version: 0.3.5 resolution: "cli-table@npm:0.3.5" @@ -1996,6 +2083,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^7.0.0 + checksum: c49ac1d13f6dda4beaa11b26f62867e0e9892eb985951187d7c691793e0fe08b9bc15cedfaf4dc6d2e9a4d1516704c0c9dcb671ebcd758dbabb18b5d757fbdb5 + languageName: node + linkType: hard + "clone-buffer@npm:^1.0.0": version: 1.0.0 resolution: "clone-buffer@npm:1.0.0" @@ -2030,6 +2128,13 @@ __metadata: languageName: node linkType: hard +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: aaaa58f9906002d9c07630682536cb00581ee02d7a76cfa8573ad59784add4d5d6d4afe894c21899b974044f153f8c5c6419ffc8b1cdde61bf104ad52e3a185d + languageName: node + linkType: hard + "clone@npm:^2.1.1": version: 2.1.2 resolution: "clone@npm:2.1.2" @@ -2141,18 +2246,6 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.4.7": - version: 1.6.2 - resolution: "concat-stream@npm:1.6.2" - dependencies: - buffer-from: ^1.0.0 - inherits: ^2.0.3 - readable-stream: ^2.2.2 - typedarray: ^0.0.6 - checksum: 7a97b7a7d0938e36800bdb6f5caf938bac8c523a6ec15df1f2ac41d3785541be30a6671c9f4c0d1ac9609e6ab29dcab8f54d1c84035e3e3b7b24f9336da68ab0 - languageName: node - linkType: hard - "console-control-strings@npm:^1.0.0, console-control-strings@npm:~1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -2208,17 +2301,6 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^5.0.1": - version: 5.1.0 - resolution: "cross-spawn@npm:5.1.0" - dependencies: - lru-cache: ^4.0.1 - shebang-command: ^1.2.0 - which: ^1.2.9 - checksum: 96018c42a94a2f69e27c11688db638c343109e4eda5cc6586a83a1d2f102ef2ef4d184919593036748d386ddb67cc3e66658fefec85a4659958cde792f1a9ddc - languageName: node - linkType: hard - "cross-spawn@npm:^6.0.0, cross-spawn@npm:^6.0.5": version: 6.0.5 resolution: "cross-spawn@npm:6.0.5" @@ -2307,13 +2389,6 @@ __metadata: languageName: node linkType: hard -"dateformat@npm:^2.0.0": - version: 2.2.0 - resolution: "dateformat@npm:2.2.0" - checksum: 8715d47401cc7ed3c16dcfd7f9d7fdb2d514c4f74976030b31679d1ef1f3c97f8da4abb4328ec390a0fa093ffe27a4d20f1267b55128ddcac862466fa9416f1f - languageName: node - linkType: hard - "dateformat@npm:^3.0.3": version: 3.0.3 resolution: "dateformat@npm:3.0.3" @@ -2328,7 +2403,19 @@ __metadata: languageName: node linkType: hard -"debug@npm:^2.0.0, debug@npm:^2.1.0, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9": +"debug@npm:4.3.1, debug@npm:^4.1.1": + version: 4.3.1 + resolution: "debug@npm:4.3.1" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 0d41ba5177510e8b388dfd7df143ab0f9312e4abdaba312595461511dac88e9ef8101939d33b4e6d37e10341af6a5301082e4d7d6f3deb4d57bc05fc7d296fad + languageName: node + linkType: hard + +"debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -2358,18 +2445,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.1.1": - version: 4.3.1 - resolution: "debug@npm:4.3.1" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 0d41ba5177510e8b388dfd7df143ab0f9312e4abdaba312595461511dac88e9ef8101939d33b4e6d37e10341af6a5301082e4d7d6f3deb4d57bc05fc7d296fad - languageName: node - linkType: hard - "decamelize@npm:^1.1.1": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -2377,6 +2452,13 @@ __metadata: languageName: node linkType: hard +"decamelize@npm:^4.0.0": + version: 4.0.0 + resolution: "decamelize@npm:4.0.0" + checksum: 3846161a3b6ba7043dd0e8cb8101676fcbd92a60bd228e63fe17116ebfaddff8d730e33c9e93a9e02c049c53e0e37013174225f27b95bb21d703359999a4aab9 + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.0": version: 0.2.0 resolution: "decode-uri-component@npm:0.2.0" @@ -2393,13 +2475,6 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:^0.4.0": - version: 0.4.2 - resolution: "deep-extend@npm:0.4.2" - checksum: fc6df90e4e29ff70090a4b28a85eec1b87a65a8dfa731cc1b298d41fd6a3e18fa643e1ee80cc9089401c427eb4d9fbe687f2a895d6676a3a86668e6daa517297 - languageName: node - linkType: hard - "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -2423,6 +2498,15 @@ __metadata: languageName: node linkType: hard +"defaults@npm:^1.0.3": + version: 1.0.3 + resolution: "defaults@npm:1.0.3" + dependencies: + clone: ^1.0.2 + checksum: 974f63dd0acb79d14e94ac0f2ea69a880ab2a6e4b341bb9bdc2409b4091b928abe2709a4e140528948d02f29c286efdef22851d1dc972636eed2ce8e1c5b7465 + languageName: node + linkType: hard + "define-properties@npm:^1.1.3": version: 1.1.3 resolution: "define-properties@npm:1.1.3" @@ -2504,10 +2588,10 @@ __metadata: languageName: node linkType: hard -"diff@npm:^2.1.2": - version: 2.2.3 - resolution: "diff@npm:2.2.3" - checksum: 42660ec943d924b90d212843432e4788bfbbbda4b32ee5e6873dd4e9490fe9f080c9555c0e9accb4865ea2d42f14297c399292aa141c92d05d868692e032c69b +"diff@npm:5.0.0": + version: 5.0.0 + resolution: "diff@npm:5.0.0" + checksum: ef241d3b20017b8a1a6f20d184035b836de662203638e16eb57267653a56392ea82e1f9c12b28836e6e22aa25c28c59847aaeb35dd65e77e75c822c7e848e7e8 languageName: node linkType: hard @@ -2518,7 +2602,7 @@ __metadata: languageName: node linkType: hard -"diff@npm:^4.0.1": +"diff@npm:^4.0.1, diff@npm:^4.0.2": version: 4.0.2 resolution: "diff@npm:4.0.2" checksum: 81b5cd7ddde6f0ba2a532d434cfdca365aedd6cc62bb133e851e66e071d40382a30924a07c1034bd3d5a2e332146f64514b73c06fe2ebc0490a67f0c98da79fb @@ -2656,14 +2740,14 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^2.3.1, ejs@npm:^2.5.9, ejs@npm:^2.6.1": +"ejs@npm:^2.5.9, ejs@npm:^2.6.1": version: 2.7.4 resolution: "ejs@npm:2.7.4" checksum: f066d9a932fb921bdb6e87133d747d5e3408a1c1303f9a15e5a7a3973afdf444a672c98c2f6d97b9a1a76363bd8ae6d05286f26c6b6b7b9674dfc5802fc8546d languageName: node linkType: hard -"ejs@npm:^3.1.5": +"ejs@npm:^3.1.5, ejs@npm:^3.1.6": version: 3.1.6 resolution: "ejs@npm:3.1.6" dependencies: @@ -2773,6 +2857,20 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: 1e31ff50d66f47cd0dfffa702061127116ccf9886d1f54a802a7b3bc95b94cab0cbf5b145cc5ac199036df6fd9d1bb24af1fa1bfed87c94879e950fbee5f86d1 + languageName: node + linkType: hard + +"escape-string-regexp@npm:4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: c747be8d5ff7873127e3e0cffe7d2206a37208077fa9c30a3c1bb4f26bebd081c8c24d5fba7a99449f9d20670bea3dc5e1b6098b0f074b099bd38766271a272f + languageName: node + linkType: hard + "escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -3013,13 +3111,6 @@ __metadata: languageName: node linkType: hard -"exit-hook@npm:^1.0.0": - version: 1.1.1 - resolution: "exit-hook@npm:1.1.1" - checksum: 4f89f35c225f6e28e86e85770185a02d650162e93e671a1040315a86f42fdf851f837152b2c38ded703eaae8e9934cb0f8db217a2896ff01d8125879cad1101a - languageName: node - linkType: hard - "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -3093,24 +3184,13 @@ __metadata: languageName: node linkType: hard -"extend@npm:^3.0.0, extend@npm:~3.0.2": +"extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" checksum: 1406da1f0c4b00b839497e4cdd0ec4303ce2ae349144b7c28064a5073c93ce8c08da4e8fb1bc5cb459ffcdff30a35fc0fe54344eb88320e70100c1baea6f195c languageName: node linkType: hard -"external-editor@npm:^1.1.0": - version: 1.1.1 - resolution: "external-editor@npm:1.1.1" - dependencies: - extend: ^3.0.0 - spawn-sync: ^1.0.15 - tmp: ^0.0.29 - checksum: 0c682c3322e3eb5d4ac1776a7a912c5810893cdbbd0801605e6140e4125e6d85ff9ca7775e05202341ab4f516a780c58fd31b9e6ba2291e8531e9c501f9c19e0 - languageName: node - linkType: hard - "external-editor@npm:^2.1.0": version: 2.2.0 resolution: "external-editor@npm:2.2.0" @@ -3246,16 +3326,6 @@ __metadata: languageName: node linkType: hard -"figures@npm:^1.3.5": - version: 1.7.0 - resolution: "figures@npm:1.7.0" - dependencies: - escape-string-regexp: ^1.0.5 - object-assign: ^4.1.0 - checksum: 17f76820de5201632650d0ea10b5485111677df96423a2401158e85eeb277344551fea908d4ca7407f4fa99ac2e7a70839ece89ce6185e7fa6787245aeb7fd87 - languageName: node - linkType: hard - "figures@npm:^2.0.0": version: 2.0.0 resolution: "figures@npm:2.0.0" @@ -3368,6 +3438,16 @@ __metadata: languageName: node linkType: hard +"find-up@npm:5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: cd0b77415bc59e5af31e4e1b29c6ff8d965d9ca3c60a4b74161f8f116c0d1ad8d35bc6e53bf8f92c69e704e98183f1628a363ed7d519eb28eff54378b8f167a7 + languageName: node + linkType: hard + "find-up@npm:^1.0.0": version: 1.1.2 resolution: "find-up@npm:1.1.2" @@ -3415,6 +3495,15 @@ __metadata: languageName: node linkType: hard +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 549b3012e9c8e90da9eab25c283443a39a6c5b0a35a6d382827e4bfc5e88161d1dac5faf667f6255571a42edc58e679b432a1452b9bdbd7ab16718a740bef556 + languageName: node + linkType: hard + "flatted@npm:^3.1.0": version: 3.1.1 resolution: "flatted@npm:3.1.1" @@ -3626,6 +3715,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 9dd9e1e2591039ee4c38c897365b904f66f1e650a8c1cb7b7db8ce667fa63e88cc8b13282b74df9d93de481114b3304a0487880d31cd926dfda6efe71455855d + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1": version: 1.1.1 resolution: "get-intrinsic@npm:1.1.1" @@ -3761,20 +3857,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"glob@npm:^6.0.1": - version: 6.0.4 - resolution: "glob@npm:6.0.4" - dependencies: - inflight: ^1.0.4 - inherits: 2 - minimatch: 2 || 3 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 83f9fcdca06df4a40cbf99f20877dbadc0def23fab197303a9a96f726e2f003d6c442b8d455b93745c0d05e6dd574929526db47852f12b762bc93023ba7e84db - languageName: node - linkType: hard - -"glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:7.1.6, glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.1.6 resolution: "glob@npm:7.1.6" dependencies: @@ -3813,7 +3896,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"globby@npm:^11.0.1": +"globby@npm:^11.0.1, globby@npm:^11.0.3": version: 11.0.3 resolution: "globby@npm:11.0.3" dependencies: @@ -3841,33 +3924,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"globby@npm:^4.0.0": - version: 4.1.0 - resolution: "globby@npm:4.1.0" - dependencies: - array-union: ^1.0.1 - arrify: ^1.0.0 - glob: ^6.0.1 - object-assign: ^4.0.1 - pify: ^2.0.0 - pinkie-promise: ^2.0.0 - checksum: 2d974923450c9fade708c93ff28b17c0bc307fad677d2646564a3c034e69da7f67c50035ffc5cc0eea5660f029e1a49cd0967183809a54d10bacf73b2f8faed4 - languageName: node - linkType: hard - -"globby@npm:^6.1.0": - version: 6.1.0 - resolution: "globby@npm:6.1.0" - dependencies: - array-union: ^1.0.1 - glob: ^7.0.3 - object-assign: ^4.0.1 - pify: ^2.0.0 - pinkie-promise: ^2.0.0 - checksum: 7acac933247f203624c502e6db54995d355ae2ce618be40a6a125c73bac9fa1bb775cf2b0959d92807605534f7b29cf711bc354febb8a6dc2ecbaa1cbf59efa5 - languageName: node - linkType: hard - "globby@npm:^7.1.1": version: 7.1.1 resolution: "globby@npm:7.1.1" @@ -3993,15 +4049,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"grouped-queue@npm:^0.3.0": - version: 0.3.3 - resolution: "grouped-queue@npm:0.3.3" - dependencies: - lodash: ^4.17.2 - checksum: ed0952865c6e33bad91fbffaa8169a3e15850b9eee9fcd381cd96930f6c9be2074f1c731f785470d316d26bde896efc0df692e65c267cd779fe63c107cf27d18 - languageName: node - linkType: hard - "grouped-queue@npm:^1.1.0": version: 1.1.0 resolution: "grouped-queue@npm:1.1.0" @@ -4011,6 +4058,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"growl@npm:1.10.5": + version: 1.10.5 + resolution: "growl@npm:1.10.5" + checksum: e1dae8dde6e43aa7e18c864094f4690b3a48cf45779b9302a18c24b90a7038084ecffb931f89b52ce76fffd72123ae46755c0b5abca541de5eef75879e610257 + languageName: node + linkType: hard + "growly@npm:^1.3.0": version: 1.3.0 resolution: "growly@npm:1.3.0" @@ -4168,6 +4222,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"he@npm:1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 212122003c20c8c17ac0c83a419b4c8e835411ff6ab9195d053ea6e4a0597cc005b5b8eabcbd57b0b0c0fe676f0049e09315845fff4e051198845491cbba260e + languageName: node + linkType: hard + "home-or-tmp@npm:^2.0.0": version: 2.0.0 resolution: "home-or-tmp@npm:2.0.0" @@ -4240,6 +4303,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 6c1cfab995ecab3b0dbb6cfb7e192686eb02f0f8e788f2d962e1fc02e2d5ab38a85e06d417221f136bd029663a77cdb920d99605d68d3730a05597dd7910426a + languageName: node + linkType: hard + "ignore@npm:^3.3.5": version: 3.3.10 resolution: "ignore@npm:3.3.10" @@ -4339,28 +4409,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"inquirer@npm:^1.0.2": - version: 1.2.3 - resolution: "inquirer@npm:1.2.3" - dependencies: - ansi-escapes: ^1.1.0 - chalk: ^1.0.0 - cli-cursor: ^1.0.1 - cli-width: ^2.0.0 - external-editor: ^1.1.0 - figures: ^1.3.5 - lodash: ^4.3.0 - mute-stream: 0.0.6 - pinkie-promise: ^2.0.0 - run-async: ^2.2.0 - rx: ^4.1.0 - string-width: ^1.0.1 - strip-ansi: ^3.0.0 - through: ^2.3.6 - checksum: 189a0fb7c7c27075c79103240ccaaa50d614f12f0150378059c3eaf510b82a7594543fd6f1d8fda12eac0db07f6e6c4d120dac3f62e4f03ad13ed39a458e7f06 - languageName: node - linkType: hard - "inquirer@npm:^5.2.0": version: 5.2.0 resolution: "inquirer@npm:5.2.0" @@ -4403,6 +4451,28 @@ fsevents@~2.3.1: languageName: node linkType: hard +"inquirer@npm:^8.0.0": + version: 8.1.0 + resolution: "inquirer@npm:8.1.0" + dependencies: + ansi-escapes: ^4.2.1 + chalk: ^4.1.1 + cli-cursor: ^3.1.0 + cli-width: ^3.0.0 + external-editor: ^3.0.3 + figures: ^3.0.0 + lodash: ^4.17.21 + mute-stream: 0.0.8 + ora: ^5.3.0 + run-async: ^2.4.0 + rxjs: ^6.6.6 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + through: ^2.3.6 + checksum: 386a465a5045d2968a7eaae8d84fed3c4fcec7cbf8bfd030541e8ea82b8f7a2132f98935b1321a3d0af39c196a09f38bb3cfd3105d7812799062235e45839b11 + languageName: node + linkType: hard + "interpret@npm:^1.0.0": version: 1.4.0 resolution: "interpret@npm:1.4.0" @@ -4677,6 +4747,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: d79b435e5134ccd60dfe035117b1cddd5c5100e90b2d33428adfe1667e26f0114cc1bc7b3ff84a1b107de8ef27f155e3ecc3bb08c0e502a15c66300b4a45d9e5 + languageName: node + linkType: hard + "is-negative-zero@npm:^2.0.1": version: 2.0.1 resolution: "is-negative-zero@npm:2.0.1" @@ -4737,7 +4814,14 @@ fsevents@~2.3.1: languageName: node linkType: hard -"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": +"is-plain-obj@npm:^2.1.0": + version: 2.1.0 + resolution: "is-plain-obj@npm:2.1.0" + checksum: 2314302f9140d1e9607731d523f207d8000281aebbabe0083210342c0758976f75f0f5db405e55910bd4dc9a04baddbeab9d476290642b5a0d31431cc9bda4b3 + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" dependencies: @@ -4830,6 +4914,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 00ca6f5581b81d55c567d259175cb1af08c60ae95f6aad69adadfdfbe098c60ef5617ad440770d821f1710773987c0b13ed6dd375cd9ab1bd7b7dd8f9a42625c + languageName: node + linkType: hard + "is-utf8@npm:^0.2.0, is-utf8@npm:^0.2.1": version: 0.2.1 resolution: "is-utf8@npm:0.2.1" @@ -4881,6 +4972,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"isbinaryfile@npm:^4.0.8": + version: 4.0.8 + resolution: "isbinaryfile@npm:4.0.8" + checksum: 414258852a8962a0e1c6dcbebfc0422489cc7684488fcde6f08de2378596d4888696b3593b40df5f9c7897538891d006fd3edc35994cc75473d71e4012aa2263 + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -4995,7 +5093,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"istextorbinary@npm:^2.1.0, istextorbinary@npm:^2.2.1, istextorbinary@npm:^2.5.1": +"istextorbinary@npm:^2.2.1, istextorbinary@npm:^2.5.1": version: 2.6.0 resolution: "istextorbinary@npm:2.6.0" dependencies: @@ -5421,6 +5519,17 @@ fsevents@~2.3.1: languageName: node linkType: hard +"js-yaml@npm:4.0.0": + version: 4.0.0 + resolution: "js-yaml@npm:4.0.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: ee9b16cdbba690ec70f46d61737b28b35e26e6d51606c466de7fa876d3517de0cfdffd2e1ef21263d5ca3b32659d2e4c65255f50d6e236f022305bce72242d46 + languageName: node + linkType: hard + "js-yaml@npm:^3.13.1, js-yaml@npm:^3.7.0": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" @@ -5752,18 +5861,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"load-json-file@npm:^2.0.0": - version: 2.0.0 - resolution: "load-json-file@npm:2.0.0" - dependencies: - graceful-fs: ^4.1.2 - parse-json: ^2.2.0 - pify: ^2.0.0 - strip-bom: ^3.0.0 - checksum: c6ea93d36099dd6e778c6c018c9e184ad65d278a9538c2280f959b040b1a9a756d8856bdaf8a38c8f1454eca19bf4798ea59f79ccd8bb1c33aa8b7ecbe157f0c - languageName: node - linkType: hard - "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -5796,6 +5893,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 4c379638152e0e5fda9a8cc07005702f81fcb9899db0f66d691ac1e64193dea670af14e96c50f14d82d45959daa4c400cb712c158cffe22ae265bfc1b1e3a221 + languageName: node + linkType: hard + "lodash.escaperegexp@npm:^4.1.2": version: 4.1.2 resolution: "lodash.escaperegexp@npm:4.1.2" @@ -5908,19 +6014,19 @@ fsevents@~2.3.1: languageName: node linkType: hard -"lodash@npm:^4.11.1, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.2, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.3.0": +"lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.3.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 4983720b9abca930a4a46f18db163d7dad8dd00dbed6db0cc7b499b33b717cce69f80928b27bbb1ff2cbd3b19d251ee90669a8b5ea466072ca81c2ebe91e7468 languageName: node linkType: hard -"log-symbols@npm:^1.0.1": - version: 1.0.2 - resolution: "log-symbols@npm:1.0.2" +"log-symbols@npm:4.0.0": + version: 4.0.0 + resolution: "log-symbols@npm:4.0.0" dependencies: - chalk: ^1.0.0 - checksum: 69ba19d52b32bdcc659752321bc89e21d697088b7dce8ed1fed9582e3e37eef6a859502eeb721d8b7d08f0b5cb3d92b16a4321e01393ba8bace23f2a834be077 + chalk: ^4.0.0 + checksum: 2cbdb0427d1853f2bd36645bff42aaca200902284f28aadacb3c0fa4c8c43fe6bfb71b5d61ab08b67063d066d7c55b8bf5fbb43b03e4a150dbcdd643e9cd1dbf languageName: node linkType: hard @@ -5933,6 +6039,16 @@ fsevents@~2.3.1: languageName: node linkType: hard +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: 57be4aeb6a6ecb81d8267600836f81928da1d846ad13384a9a22d179e27590fdb680946edbd15642a31735183adaa3dc6aae2d20e619a19fa0d54e1aee945915 + languageName: node + linkType: hard + "lolex@npm:^2.4.2": version: 2.7.5 resolution: "lolex@npm:2.7.5" @@ -5974,16 +6090,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"lru-cache@npm:^4.0.1": - version: 4.1.5 - resolution: "lru-cache@npm:4.1.5" - dependencies: - pseudomap: ^1.0.2 - yallist: ^2.1.2 - checksum: 6a098d23629357451d4324e1e4fefccdd6df316df29e25571c6148220ced923258381ebeafdf919f90e28c780b650427390582618c1d5fe097873e656d062511 - languageName: node - linkType: hard - "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -6061,24 +6167,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"mem-fs-editor@npm:^3.0.0": - version: 3.0.2 - resolution: "mem-fs-editor@npm:3.0.2" - dependencies: - commondir: ^1.0.1 - deep-extend: ^0.4.0 - ejs: ^2.3.1 - glob: ^7.0.3 - globby: ^6.1.0 - mkdirp: ^0.5.0 - multimatch: ^2.0.0 - rimraf: ^2.2.8 - through2: ^2.0.0 - vinyl: ^2.0.1 - checksum: 8d601d09082ff1d152ab90278eea3eb7170631dbfaa351b5b79a479f4e04207ed99569773f8b4afe18045e86826b55ac5526f18a40c863e97cbbb8011d04eb5e - languageName: node - linkType: hard - "mem-fs-editor@npm:^4.0.0": version: 4.0.3 resolution: "mem-fs-editor@npm:4.0.3" @@ -6155,6 +6243,28 @@ fsevents@~2.3.1: languageName: node linkType: hard +"mem-fs-editor@npm:^9.0.0": + version: 9.0.1 + resolution: "mem-fs-editor@npm:9.0.1" + dependencies: + binaryextensions: ^4.15.0 + commondir: ^1.0.1 + deep-extend: ^0.6.0 + ejs: ^3.1.6 + globby: ^11.0.3 + isbinaryfile: ^4.0.8 + multimatch: ^5.0.0 + normalize-path: ^3.0.0 + textextensions: ^5.12.0 + peerDependencies: + mem-fs: ^2.1.0 + peerDependenciesMeta: + mem-fs: + optional: true + checksum: 09a4115d1447795e03d7e26dab0c283137465deeb444c9966311001012135a967596447c8dd2e14ff86064d2688fbf0d6ef6ba598054a01aec702b57f4bffaaf + languageName: node + linkType: hard + "mem-fs@npm:^1.1.0": version: 1.2.0 resolution: "mem-fs@npm:1.2.0" @@ -6296,7 +6406,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"minimatch@npm:2 || 3, minimatch@npm:^3.0.0, minimatch@npm:^3.0.3, minimatch@npm:^3.0.4": +"minimatch@npm:3.0.4, minimatch@npm:^3.0.0, minimatch@npm:^3.0.3, minimatch@npm:^3.0.4": version: 3.0.4 resolution: "minimatch@npm:3.0.4" dependencies: @@ -6361,6 +6471,42 @@ fsevents@~2.3.1: languageName: node linkType: hard +"mocha@npm:^8.3.2": + version: 8.3.2 + resolution: "mocha@npm:8.3.2" + dependencies: + "@ungap/promise-all-settled": 1.1.2 + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.1 + debug: 4.3.1 + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.1.6 + growl: 1.10.5 + he: 1.2.0 + js-yaml: 4.0.0 + log-symbols: 4.0.0 + minimatch: 3.0.4 + ms: 2.1.3 + nanoid: 3.1.20 + serialize-javascript: 5.0.1 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + which: 2.0.2 + wide-align: 1.1.3 + workerpool: 6.1.0 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + bin: + _mocha: bin/_mocha + mocha: bin/mocha + checksum: ac4f359cf4dbd3a01202d0a5ef06533b9513ae293a411b3c0743dbeff03ffcfe444636127cc103634e07c932ec2eda104c2e1e8e259d16efd7e07a0a900eb2f4 + languageName: node + linkType: hard + "moment@npm:^2.15.1, moment@npm:^2.24.0": version: 2.29.1 resolution: "moment@npm:2.29.1" @@ -6382,7 +6528,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 6e721e648a544154d5de4c114b32f573d8027ca8ec505cf6c1105e505986d6ac46934a1256735aa0eece8eb2f5b2a1230503b2dddd3b100f9f016fd8a4f15f33 @@ -6414,10 +6560,16 @@ fsevents@~2.3.1: languageName: node linkType: hard -"mute-stream@npm:0.0.6": - version: 0.0.6 - resolution: "mute-stream@npm:0.0.6" - checksum: 0fab9c5a25c6a7fa21be1414b1c8226227e543fbcbfc8f72a8755adc933364152878bf0875f4b8cfff417471d390a0cdbe725aea722e58007e66f965991ee260 +"multimatch@npm:^5.0.0": + version: 5.0.0 + resolution: "multimatch@npm:5.0.0" + dependencies: + "@types/minimatch": ^3.0.3 + array-differ: ^3.0.0 + array-union: ^2.1.0 + arrify: ^2.0.1 + minimatch: ^3.0.4 + checksum: 93fcf94313d5a62c9eac21cda21201651af7ad4fdb89c3e35d8b6031568d656f0a7a79c7275bdb2e3446994e9b7ee317b8a8cdf81c74d30e52dc8d92a2aba48b languageName: node linkType: hard @@ -6444,6 +6596,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"nanoid@npm:3.1.20": + version: 3.1.20 + resolution: "nanoid@npm:3.1.20" + bin: + nanoid: bin/nanoid.cjs + checksum: 4788d36edcfec7bb32ddf33ed8f1f46df2867f70e9b1993bb131f7677e04ead2b621e5d614d2736308be18db1d54208d8ab207b4586bd5b052f71fb9d4c0ebea + languageName: node + linkType: hard + "nanomatch@npm:^1.2.9": version: 1.2.13 resolution: "nanomatch@npm:1.2.13" @@ -6497,6 +6658,19 @@ fsevents@~2.3.1: languageName: node linkType: hard +"nise@npm:^4.1.0": + version: 4.1.0 + resolution: "nise@npm:4.1.0" + dependencies: + "@sinonjs/commons": ^1.7.0 + "@sinonjs/fake-timers": ^6.0.0 + "@sinonjs/text-encoding": ^0.7.1 + just-extend: ^4.0.2 + path-to-regexp: ^1.7.0 + checksum: 87b37725d9e0e6dc951caa40685f8726d028ac48ca87e71773cbb705e2736e084cc3087530a92b9ebe87163212ee477d37318875984b1093f79bae600ce6d7c4 + languageName: node + linkType: hard + "node-fetch@npm:2.6.1, node-fetch@npm:^2.6.0": version: 2.6.1 resolution: "node-fetch@npm:2.6.1" @@ -6671,14 +6845,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"object-assign@npm:^2.0.0": - version: 2.1.1 - resolution: "object-assign@npm:2.1.1" - checksum: d164bf221d0bfdc70bf1c153a2a172ea328d1de83c9f5b9f81523ff77d951f84ed4a41d4b3b106d91a0f8b588e4281050b8d9b44dc1edb304ce9b8af70d91297 - languageName: node - linkType: hard - -"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 66cf021898fc1b13ea573ea8635fbd5a76533f50cecbc2fcd5eee1e8029af41bcebe7023788b6d0e06cbe4401ecea075d972f78ec74467cdc571a0f1a4d1a081 @@ -6770,13 +6937,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"onetime@npm:^1.0.0": - version: 1.1.0 - resolution: "onetime@npm:1.1.0" - checksum: ddf13ecba8d11048dfd3a8b99c30a509ec0f629cc46b5bbfcfc78442f39385aa7512e92ac8d1fd980c2649bde515ffede5c14223767f7f6f96b1aab33d11f6b3 - languageName: node - linkType: hard - "onetime@npm:^2.0.0": version: 2.0.1 resolution: "onetime@npm:2.0.1" @@ -6823,6 +6983,23 @@ fsevents@~2.3.1: languageName: node linkType: hard +"ora@npm:^5.3.0": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: ^4.1.0 + chalk: ^4.1.0 + cli-cursor: ^3.1.0 + cli-spinners: ^2.5.0 + is-interactive: ^1.0.0 + is-unicode-supported: ^0.1.0 + log-symbols: ^4.1.0 + strip-ansi: ^6.0.0 + wcwidth: ^1.0.1 + checksum: 589ac687d6dfbac970f1bf4ec94f3e1cfc9e2a4dd4727a0c60dfcdef138f59b5de5694447881fa5a2793a91f0b2619a96bdd3d5425be30d155540abbe1df95b9 + languageName: node + linkType: hard + "os-homedir@npm:^1.0.0": version: 1.0.2 resolution: "os-homedir@npm:1.0.2" @@ -6841,14 +7018,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"os-shim@npm:^0.1.2": - version: 0.1.3 - resolution: "os-shim@npm:0.1.3" - checksum: 47bee41866f6b8d758aec783297075c16f383c6f1cc8d2566aa0398948d9a8ffaa02642462482e3b3f38e1f8a5a628dafccf2dc81e8860eb8fcbaec0b20cf20d - languageName: node - linkType: hard - -"os-tmpdir@npm:^1.0.1, os-tmpdir@npm:~1.0.1, os-tmpdir@npm:~1.0.2": +"os-tmpdir@npm:^1.0.1, os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" checksum: ca158a3c2e48748adc7736cdbe4c593723f8ed8581d2aae2f2a30fdb9417d4ba14bed1cd487d47561898a7b1ece88bce69745e9ce0303e1dea9ea7d22d1f1082 @@ -6915,6 +7085,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 5301db6a34fc1fe3714ae562c100a0567d8c16ce9db800f547bbe75efc045c40cd74c4a4c893279975dcf15afc1217c8d2c93fe957a156a3a43d7cce98eaad2e + languageName: node + linkType: hard + "p-locate@npm:^2.0.0": version: 2.0.0 resolution: "p-locate@npm:2.0.0" @@ -6933,6 +7112,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: a233d775c870e00c734adabd29f66f93824df076683c0d5a2dc16e5285b02d80c1bf3bab43b9881e4a5b16b37bb86f1922aebb094674703d30a4973041d5c0f6 + languageName: node + linkType: hard + "p-timeout@npm:^1.1.1": version: 1.2.1 resolution: "p-timeout@npm:1.2.1" @@ -7063,6 +7251,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 6ab15000c5bea4f3e6e6b651983276e27ee42907ea29f5bd68f0d5c425c22f1664ab53c355099723f59b0bfd31aa52d29ea499e1843bf62543e045698f4c77b2 + languageName: node + linkType: hard + "path-is-absolute@npm:^1.0.0, path-is-absolute@npm:^1.0.1": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -7111,15 +7306,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"path-type@npm:^2.0.0": - version: 2.0.0 - resolution: "path-type@npm:2.0.0" - dependencies: - pify: ^2.0.0 - checksum: d028f828dffe48a0062dc4370d5118a0c45f5fb075b013a1dfb13eadd1426eba0c8c2a13fa78f19fc4fd8771ef2012e9d062f8f970c8e56df36d4fbbe5073b26 - languageName: node - linkType: hard - "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -7342,13 +7528,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"pseudomap@npm:^1.0.2": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 1ad1802645e830d99f9c1db97efc6902d2316b660454633229f636dd59e751d00498dd325d3b18d49f2be990a2c9d28f8bfe6f9b544a8220a5faa2bfb4694bb7 - languageName: node - linkType: hard - "psl@npm:^1.1.28": version: 1.8.0 resolution: "psl@npm:1.8.0" @@ -7409,6 +7588,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: ^5.1.0 + checksum: ede2693af09732ceab1c273dd70db787f34a7b8d95bab13f1aca763483c0113452a78e53d61ff18d393dcea586d388e01f198a5132a4a85cebba31ec54164b75 + languageName: node + linkType: hard + "rc@npm:^1.0.1": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -7423,7 +7611,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"read-chunk@npm:^2.0.0, read-chunk@npm:^2.1.0": +"read-chunk@npm:^2.1.0": version: 2.1.0 resolution: "read-chunk@npm:2.1.0" dependencies: @@ -7453,16 +7641,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"read-pkg-up@npm:^2.0.0": - version: 2.0.0 - resolution: "read-pkg-up@npm:2.0.0" - dependencies: - find-up: ^2.0.0 - read-pkg: ^2.0.0 - checksum: f35e4cb4577b994fc9497886672c748de766ab034e24f029111b6bbbfe757b2e27b6d2b82a28a38f45d9d89ea8a9b1d3c04854e5f991d5deed48f4c9ff7baeb9 - languageName: node - linkType: hard - "read-pkg-up@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg-up@npm:3.0.0" @@ -7504,17 +7682,6 @@ fsevents@~2.3.1: languageName: node linkType: hard -"read-pkg@npm:^2.0.0": - version: 2.0.0 - resolution: "read-pkg@npm:2.0.0" - dependencies: - load-json-file: ^2.0.0 - normalize-package-data: ^2.3.2 - path-type: ^2.0.0 - checksum: ddf911317fba54abb447b1d76dd1785c37e1360f7b1e39d83201f6f3807572391ab7392f11727a9c4d90600ebc6616d22e72514d2291688c89ebd440148840b4 - languageName: node - linkType: hard - "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -7538,7 +7705,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"readable-stream@npm:2 || 3": +"readable-stream@npm:2 || 3, readable-stream@npm:^3.4.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" dependencies: @@ -7549,7 +7716,7 @@ fsevents@~2.3.1: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6": version: 2.3.7 resolution: "readable-stream@npm:2.3.7" dependencies: @@ -7816,16 +7983,6 @@ resolve@1.1.7: languageName: node linkType: hard -"restore-cursor@npm:^1.0.1": - version: 1.0.1 - resolution: "restore-cursor@npm:1.0.1" - dependencies: - exit-hook: ^1.0.0 - onetime: ^1.0.0 - checksum: 07ab5114eb6fe69e931f0df88ae28a3dd0018360622d3bb72bbf3b4cdbac5b6bc45e4bb502190c688484240bba3f02231d1f0a6ae68cab453c4aca168e3fccae - languageName: node - linkType: hard - "restore-cursor@npm:^2.0.0": version: 2.0.0 resolution: "restore-cursor@npm:2.0.0" @@ -7860,7 +8017,7 @@ resolve@1.1.7: languageName: node linkType: hard -"rimraf@npm:^2.2.0, rimraf@npm:^2.2.8, rimraf@npm:^2.4.4, rimraf@npm:^2.5.4, rimraf@npm:^2.6.1, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": +"rimraf@npm:^2.2.8, rimraf@npm:^2.4.4, rimraf@npm:^2.5.4, rimraf@npm:^2.6.1, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": version: 2.7.1 resolution: "rimraf@npm:2.7.1" dependencies: @@ -7919,13 +8076,6 @@ resolve@1.1.7: languageName: node linkType: hard -"rx@npm:^4.1.0": - version: 4.1.0 - resolution: "rx@npm:4.1.0" - checksum: 2f8818608864d0a3fcaf8210f4dcc9a8acef2ad041c6b9478bbf2059d1b1efe289226d436a05dfb9038996b833529c28e69eab0f10f26baf3fadc1e5fb8f24bd - languageName: node - linkType: hard - "rxjs@npm:^5.5.2": version: 5.5.12 resolution: "rxjs@npm:5.5.12" @@ -7944,7 +8094,16 @@ resolve@1.1.7: languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": +"rxjs@npm:^6.6.6": + version: 6.6.7 + resolution: "rxjs@npm:6.6.7" + dependencies: + tslib: ^1.9.0 + checksum: 1146975cbd5388ee5e61450235dc5670931e43cce71813f567977d334acc4d75c6e8d9d293df67e1fb31510b99fc8957943d4a9b550d109e4dc69967a8471543 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 0bb57f0d8f9d1fa4fe35ad8a2db1f83a027d48f2822d59ede88fd5cd4ddad83c0b497213feb7a70fbf90597a70c5217f735b0eb1850df40ce9b4ae81dd22b3f9 @@ -8046,6 +8205,15 @@ resolve@1.1.7: languageName: node linkType: hard +"serialize-javascript@npm:5.0.1": + version: 5.0.1 + resolution: "serialize-javascript@npm:5.0.1" + dependencies: + randombytes: ^2.1.0 + checksum: 97eef70a33c75e690b0c6aa2ffe622ecdfc888d3f181a5cf129e5778228dcd100febabc0f41ff793199ee79acd14cbbad0c69f1348a3893580fe424c4718889b + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -8115,19 +8283,6 @@ resolve@1.1.7: languageName: node linkType: hard -"shelljs@npm:^0.7.0": - version: 0.7.8 - resolution: "shelljs@npm:0.7.8" - dependencies: - glob: ^7.0.0 - interpret: ^1.0.0 - rechoir: ^0.6.2 - bin: - shjs: ./bin/shjs - checksum: 6eedffec68b3c32f6b8b95c7925785bfc0cc0ce16b4263e37df1d30ba3332b234ee2588bf35336502227689bbc46667da31e7b1b420cc49d5b380de3b534d5ba - languageName: node - linkType: hard - "shelljs@npm:^0.8.0, shelljs@npm:^0.8.4": version: 0.8.4 resolution: "shelljs@npm:0.8.4" @@ -8155,6 +8310,20 @@ resolve@1.1.7: languageName: node linkType: hard +"sinon@npm:^10.0.0": + version: 10.0.0 + resolution: "sinon@npm:10.0.0" + dependencies: + "@sinonjs/commons": ^1.8.1 + "@sinonjs/fake-timers": ^6.0.1 + "@sinonjs/samsam": ^5.3.1 + diff: ^4.0.2 + nise: ^4.1.0 + supports-color: ^7.1.0 + checksum: 75996724f971b015956b34b331fe2ed1af313404b7d44985468f8145e1eed3a8400a94c117857b550f79ad86be69349621ae07e06331c3b7ea9063b34687f540 + languageName: node + linkType: hard + "sinon@npm:^5.0.7": version: 5.1.1 resolution: "sinon@npm:5.1.1" @@ -8307,16 +8476,6 @@ resolve@1.1.7: languageName: node linkType: hard -"spawn-sync@npm:^1.0.15": - version: 1.0.15 - resolution: "spawn-sync@npm:1.0.15" - dependencies: - concat-stream: ^1.4.7 - os-shim: ^0.1.2 - checksum: c31c84dd8b676d9aa87522572da4b6fa9ea9fcf97b8d29bc82be1eba7126836ccfd298831c7577b1866a3698567908b7de34f387b44b52dea972d28683045b64 - languageName: node - linkType: hard - "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -8584,7 +8743,7 @@ resolve@1.1.7: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206 @@ -8607,6 +8766,15 @@ resolve@1.1.7: languageName: node linkType: hard +"supports-color@npm:8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: 0219f5c91753fea8dc8046cd4b18d39458b5dc0c6421c67c1072209faae9ba93b89283252e3b05d5c18901fd9f8b95001e3247fb93e2265f66d584a676522c75 + languageName: node + linkType: hard + "supports-color@npm:^2.0.0": version: 2.0.0 resolution: "supports-color@npm:2.0.0" @@ -8681,6 +8849,13 @@ resolve@1.1.7: languageName: node linkType: hard +"temp-dir@npm:^2.0.0": + version: 2.0.0 + resolution: "temp-dir@npm:2.0.0" + checksum: d7816d1ce5ea605ffe79f5692c96eef7e14b3dd01799be5462233046db9a169e2bee927c4391f577528137318198f5a18540c174cb6b054768213e7bffd5cb25 + languageName: node + linkType: hard + "test-exclude@npm:^4.2.1": version: 4.2.3 resolution: "test-exclude@npm:4.2.3" @@ -8708,6 +8883,13 @@ resolve@1.1.7: languageName: node linkType: hard +"textextensions@npm:^5.12.0": + version: 5.12.0 + resolution: "textextensions@npm:5.12.0" + checksum: fca9fed6c8a0d338f6300e368070883ef73004c013bbb056d56f7f00f19133016d6ccfe094b1126b66fc942c32c81f53531a4122f7a6abeab870079b8c1e857f + languageName: node + linkType: hard + "throat@npm:^4.0.0": version: 4.1.0 resolution: "throat@npm:4.1.0" @@ -8749,15 +8931,6 @@ resolve@1.1.7: languageName: node linkType: hard -"tmp@npm:^0.0.29": - version: 0.0.29 - resolution: "tmp@npm:0.0.29" - dependencies: - os-tmpdir: ~1.0.1 - checksum: 91667c7a2e3a96ce8573bc9fcb80f65f5b49372b0e9ce483e74f390a8842851bdd3c293707c8950f93306b818f0d121b1cb23174a67d7b7079099b117973e283 - languageName: node - linkType: hard - "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -8943,13 +9116,6 @@ resolve@1.1.7: languageName: node linkType: hard -"typedarray@npm:^0.0.6": - version: 0.0.6 - resolution: "typedarray@npm:0.0.6" - checksum: c9ef0176aaf32593514c31e5c6edc1db970847aff6e1f0a0570a6ac0cc996335792f394c2fcec59cc76691d22a01888ea073a2f3c6930cfcf7c519addf4e2ad7 - languageName: node - linkType: hard - typescript@^4.0.5: version: 4.2.4 resolution: "typescript@npm:4.2.4" @@ -9027,15 +9193,6 @@ typescript@^4.0.5: languageName: node linkType: hard -"untildify@npm:^2.0.0": - version: 2.1.0 - resolution: "untildify@npm:2.1.0" - dependencies: - os-homedir: ^1.0.0 - checksum: 63ee08321c38ed162bef9fef6d3f64df3632fb5e150bb29930c5378a093468fc6ddd7659f60ee5123924e202a8e3639df8d365d1d9f9aa40e8d3051407caf1cf - languageName: node - linkType: hard - "untildify@npm:^3.0.3": version: 3.0.3 resolution: "untildify@npm:3.0.3" @@ -9114,15 +9271,6 @@ typescript@^4.0.5: languageName: node linkType: hard -"user-home@npm:^2.0.0": - version: 2.0.0 - resolution: "user-home@npm:2.0.0" - dependencies: - os-homedir: ^1.0.0 - checksum: ba2791a65d3b4b506d0494fc08188be8cf66e29a43e80820845f531607d14638168828eda650a2e8edbf8327476cb8802091a8ac389567d9e88e9d1406b623fe - languageName: node - linkType: hard - "util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -9273,6 +9421,15 @@ typescript@^4.0.5: languageName: node linkType: hard +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: ^1.0.3 + checksum: abf8ba432dd19a95af63895de6af932900a9451e175745551aeca0fd2d46604bc72ff80aa83adc3f67fb8389191329340e2864aefcf20655ffe91f0dbee5d953 + languageName: node + linkType: hard + "webidl-conversions@npm:^4.0.2": version: 4.0.2 resolution: "webidl-conversions@npm:4.0.2" @@ -9338,29 +9495,29 @@ typescript@^4.0.5: languageName: node linkType: hard -"which@npm:^1.2.12, which@npm:^1.2.9, which@npm:^1.3.0": - version: 1.3.1 - resolution: "which@npm:1.3.1" +"which@npm:2.0.2, which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" dependencies: isexe: ^2.0.0 bin: - which: ./bin/which - checksum: 298d95f9c185c4da22c1bfb1fdfa37c2ba56df8a6b98706ab361bf31a7d3a4845afaecfc48d4de7a259048842b5f2977f51b56f5c06c1f6a83dcf5a9e3de634a + node-which: ./bin/node-which + checksum: ea9b1db1266b08f7880717cf70dd9012dd523e5a317f10fbe4d5e8c1a761c5fd237f88642f2ba33b23f973ff4002c9b26648d63084ab208d8ecef36497315f6e languageName: node linkType: hard -"which@npm:^2.0.1, which@npm:^2.0.2": - version: 2.0.2 - resolution: "which@npm:2.0.2" +"which@npm:^1.2.12, which@npm:^1.2.9, which@npm:^1.3.0": + version: 1.3.1 + resolution: "which@npm:1.3.1" dependencies: isexe: ^2.0.0 bin: - node-which: ./bin/node-which - checksum: ea9b1db1266b08f7880717cf70dd9012dd523e5a317f10fbe4d5e8c1a761c5fd237f88642f2ba33b23f973ff4002c9b26648d63084ab208d8ecef36497315f6e + which: ./bin/which + checksum: 298d95f9c185c4da22c1bfb1fdfa37c2ba56df8a6b98706ab361bf31a7d3a4845afaecfc48d4de7a259048842b5f2977f51b56f5c06c1f6a83dcf5a9e3de634a languageName: node linkType: hard -"wide-align@npm:^1.1.0": +"wide-align@npm:1.1.3, wide-align@npm:^1.1.0": version: 1.1.3 resolution: "wide-align@npm:1.1.3" dependencies: @@ -9394,6 +9551,13 @@ typescript@^4.0.5: languageName: node linkType: hard +"workerpool@npm:6.1.0": + version: 6.1.0 + resolution: "workerpool@npm:6.1.0" + checksum: c4295cacc2c8e4b19c608499fb61d9f831052b141b2bef5515c4862712a3fdc4110606beeaaacf3c48b00d930a5b396757bda3490694a7683fc3cb5142537d12 + languageName: node + linkType: hard + "wrap-ansi@npm:^2.0.0": version: 2.1.0 resolution: "wrap-ansi@npm:2.1.0" @@ -9404,6 +9568,17 @@ typescript@^4.0.5: languageName: node linkType: hard +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 09939dd775ae565bb99a25a6c072fe3775a95fa71751b5533c94265fe986ba3e3ab071a027ab76cf26876bd9afd10ac3c2d06d7c4bcce148bf7d2d9514e3a0df + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -9521,10 +9696,10 @@ typescript@^4.0.5: languageName: node linkType: hard -"yallist@npm:^2.1.2": - version: 2.1.2 - resolution: "yallist@npm:2.1.2" - checksum: f83e3d18eeba68a0276be2ab09260be3f2a300307e84b1565c620ef71f03f106c3df9bec4c3a91e5fa621a038f8826c19b3786804d3795dd4f999e5b6be66ea3 +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 56275bfa72a8a585c4d2905b086862fb881dfe7871adcefe4ecf4c1a6a78c6389b459b427c0a8672ccdb09731a78143acc71f0bcc8dc8d8427869fafe7f18b95 languageName: node linkType: hard @@ -9542,6 +9717,20 @@ typescript@^4.0.5: languageName: node linkType: hard +"yargs-parser@npm:20.2.4": + version: 20.2.4 + resolution: "yargs-parser@npm:20.2.4" + checksum: 00dd0f23b608aa16962f1b73ac6c461ae6c97e8e85ad24b0c9adfeb5ef20a93a484ba858a6a3200f487478427db27d555d7772463d793d6c27b1b8b614cf3d7e + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.2": + version: 20.2.7 + resolution: "yargs-parser@npm:20.2.7" + checksum: 124e7f1c24c9609d5d1c343f14b83289634e19bb43770708ebb6a19852647aaa0f89edcbf0e5b18a21bee77f54513ab5051518b2950cda69eb607a7c6251aa4f + languageName: node + linkType: hard + "yargs-parser@npm:^9.0.2": version: 9.0.2 resolution: "yargs-parser@npm:9.0.2" @@ -9551,6 +9740,33 @@ typescript@^4.0.5: languageName: node linkType: hard +"yargs-unparser@npm:2.0.0": + version: 2.0.0 + resolution: "yargs-unparser@npm:2.0.0" + dependencies: + camelcase: ^6.0.0 + decamelize: ^4.0.0 + flat: ^5.0.2 + is-plain-obj: ^2.1.0 + checksum: afa83ec3fe1b32db279a3e928074697d9ee62907cd421bcea76a47ae5d92648bc046e04bc2198324c2ff8b2f631b907660209c5d9a7fa5160dbd5105d3eb2838 + languageName: node + linkType: hard + +"yargs@npm:16.2.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: ^7.0.2 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.0 + y18n: ^5.0.5 + yargs-parser: ^20.2.2 + checksum: a79ce1f043021cd645de1ffebb6149541d382ba68f4a6b5eca5d2ad65af51893371bbd78e240dc3b6cf0cbb419511ba5bda715dec992e4266e6863ea49f14feb + languageName: node + linkType: hard + "yargs@npm:^11.0.0": version: 11.1.1 resolution: "yargs@npm:11.1.1" @@ -9578,26 +9794,6 @@ typescript@^4.0.5: languageName: node linkType: hard -"yeoman-environment@npm:^1.1.0": - version: 1.6.6 - resolution: "yeoman-environment@npm:1.6.6" - dependencies: - chalk: ^1.0.0 - debug: ^2.0.0 - diff: ^2.1.2 - escape-string-regexp: ^1.0.2 - globby: ^4.0.0 - grouped-queue: ^0.3.0 - inquirer: ^1.0.2 - lodash: ^4.11.1 - log-symbols: ^1.0.1 - mem-fs: ^1.1.0 - text-table: ^0.2.0 - untildify: ^2.0.0 - checksum: 64cb6ef8ec58f90c9fcefb3d6593b5999607cedf0766c53bc97ac4ab2e991103f5a94fd30293ef4e3bcd162bff2a8c84be5f4676cebdf254e9cdb6a6067a869f - languageName: node - linkType: hard - "yeoman-environment@npm:^2.0.5, yeoman-environment@npm:^2.3.0, yeoman-environment@npm:^2.9.5": version: 2.10.3 resolution: "yeoman-environment@npm:2.10.3" @@ -9625,44 +9821,6 @@ typescript@^4.0.5: languageName: node linkType: hard -"yeoman-generator@npm:^1.1.1": - version: 1.1.1 - resolution: "yeoman-generator@npm:1.1.1" - dependencies: - async: ^2.0.0 - chalk: ^1.0.0 - class-extend: ^0.1.0 - cli-table: ^0.3.1 - cross-spawn: ^5.0.1 - dargs: ^5.1.0 - dateformat: ^2.0.0 - debug: ^2.1.0 - detect-conflict: ^1.0.0 - error: ^7.0.2 - find-up: ^2.1.0 - github-username: ^3.0.0 - glob: ^7.0.3 - istextorbinary: ^2.1.0 - lodash: ^4.11.1 - mem-fs-editor: ^3.0.0 - minimist: ^1.2.0 - mkdirp: ^0.5.0 - path-exists: ^3.0.0 - path-is-absolute: ^1.0.0 - pretty-bytes: ^4.0.2 - read-chunk: ^2.0.0 - read-pkg-up: ^2.0.0 - rimraf: ^2.2.0 - run-async: ^2.0.0 - shelljs: ^0.7.0 - text-table: ^0.2.0 - through2: ^2.0.0 - user-home: ^2.0.0 - yeoman-environment: ^1.1.0 - checksum: a03468f769127ffe93140974f0bf4dc8a67c04fe3bdb6b7850ddb29f876c2176b8f6e8367da1819cebdcda4b50deb416983a2a95ef24ef1fdbc306f9e664b382 - languageName: node - linkType: hard - "yeoman-generator@npm:^2.0.5": version: 2.0.5 resolution: "yeoman-generator@npm:2.0.5" @@ -9784,3 +9942,27 @@ typescript@^4.0.5: checksum: 220b7ba41c774b11eed02a88a265136b9f1775cc63e8292a3938921f38ebc45a6b65de94ad088325d0354af8716b125ed841e16fc2d9b9e1306bcb0b3c1274be languageName: node linkType: hard + +"yeoman-test@npm:^6.0.0": + version: 6.1.0 + resolution: "yeoman-test@npm:6.1.0" + dependencies: + inquirer: ^8.0.0 + lodash: ^4.17.21 + mem-fs-editor: ^9.0.0 + sinon: ^10.0.0 + temp-dir: ^2.0.0 + peerDependencies: + mem-fs: ^2.1.0 + yeoman-environment: ^3.3.0 + yeoman-generator: "*" + checksum: 42f9a7ece653cb48985bb3d76994c287d6b52dea5b7143f639ed8c5ff22ec7689400e246935cb3ba0c4f6561bf156e58762df6e6c835ede0510fdd1e0e261def + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 096c3b40beb2804659539be1605a35c58eb0c85285f94b77b3e924f42ee265c1a40bf9f4153770039517146b469a964d51742395f35ca8135fc9f7e4982b785d + languageName: node + linkType: hard