diff --git a/dist/blog-post-workflow.js b/dist/blog-post-workflow.js
index 122ba2a..6299e27 100644
--- a/dist/blog-post-workflow.js
+++ b/dist/blog-post-workflow.js
@@ -6303,7 +6303,7 @@ var require_lib2 = __commonJS({
}
});
-// node_modules/rss-parser/lib/utils.js
+// node_modules/rss-parser/lib/testUtils.js
var require_utils = __commonJS({
"node_modules/rss-parser/lib/utils.js"(exports2, module2) {
var utils = module2.exports = {};
@@ -6740,7 +6740,7 @@ var require_rss_parser = __commonJS({
}
});
-// node_modules/@actions/core/lib/utils.js
+// node_modules/@actions/core/lib/testUtils.js
var require_utils2 = __commonJS({
"node_modules/@actions/core/lib/utils.js"(exports2) {
"use strict";
@@ -8235,7 +8235,7 @@ var require_auth = __commonJS({
}
});
-// node_modules/@actions/core/lib/oidc-utils.js
+// node_modules/@actions/core/lib/oidc-testUtils.js
var require_oidc_utils = __commonJS({
"node_modules/@actions/core/lib/oidc-utils.js"(exports2) {
"use strict";
@@ -8298,10 +8298,10 @@ var require_oidc_utils = __commonJS({
return __awaiter(this, void 0, void 0, function* () {
const httpclient = _OidcClient.createHttpClient();
const res = yield httpclient.getJson(id_token_url).catch((error) => {
- throw new Error(`Failed to get ID Token.
-
+ throw new Error(`Failed to get ID Token.
+
Error Code : ${error.statusCode}
-
+
Error Message: ${error.message}`);
});
const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;
@@ -8627,7 +8627,7 @@ var require_summary = __commonJS({
}
});
-// node_modules/@actions/core/lib/path-utils.js
+// node_modules/@actions/core/lib/path-testUtils.js
var require_path_utils = __commonJS({
"node_modules/@actions/core/lib/path-utils.js"(exports2) {
"use strict";
@@ -9697,7 +9697,7 @@ var require_library = __commonJS({
}
});
-// src/utils.js
+// src/testUtils.js
var require_utils3 = __commonJS({
"src/utils.js"(exports2, module2) {
var { spawn } = require("child_process");
diff --git a/local-run.js b/local-run.js
index d5b929d..1c24fca 100644
--- a/local-run.js
+++ b/local-run.js
@@ -1,7 +1,7 @@
const process = require('process');
const path = require('path');
const fs = require('fs');
-const {DEFAULT_TEST_ENV} = require('./test/default-env');
+const {DEFAULT_TEST_ENV} = require('./test/testUtils/default-env');
// language=markdown
const template = `# Readme test
Post list example:
diff --git a/package.json b/package.json
index 05bea6d..c018b4f 100644
--- a/package.json
+++ b/package.json
@@ -6,12 +6,12 @@
"scripts": {
"build": "esbuild ./src/blog-post-workflow.js --bundle --platform=node --outfile=dist/blog-post-workflow.js",
"lint": "jshint --exclude='node_modules/' *.js",
- "start-server": "node test/test-server.js",
+ "start-server": "node test/testUtils/test-server.js",
"local-run-script": "node local-run.js",
"local-run": "start-server-and-test start-server http://localhost:8080 local-run-script",
- "test-run": "mocha test/test.js",
+ "test-run": "mocha --parallel --jobs 100 test/**.js",
"test": "yarn run lint && start-server-and-test start-server http://localhost:8080 test-run",
- "test-run-dist": "DIST=true mocha test/test.js",
+ "test-run-dist": "DIST=true mocha --parallel --jobs 100 test/**.js",
"test-dist": "yarn run lint && start-server-and-test start-server http://localhost:8080 test-run-dist"
},
"repository": {
@@ -42,7 +42,7 @@
},
"devDependencies": {
"jshint": "^2.12.0",
- "mocha": "^8.1.3",
+ "mocha": "^10.2.0",
"start-server-and-test": "^1.11.3"
}
}
diff --git a/src/blog-post-workflow.js b/src/blog-post-workflow.js
index 9e902e0..002ce60 100644
--- a/src/blog-post-workflow.js
+++ b/src/blog-post-workflow.js
@@ -195,8 +195,12 @@ feedList.forEach((siteUrl) => {
) {
post = null;
} else {
- post.title && appendedPostTitles.push(post.title.trim());
- post.description && appendedPostDesc.push(post.description.trim());
+ if (post.title) {
+ appendedPostTitles.push(post.title.trim());
+ }
+ if (post.description) {
+ appendedPostDesc.push(post.description.trim());
+ }
}
}
@@ -219,165 +223,176 @@ feedList.forEach((siteUrl) => {
}));
});
-// Processing the generated promises
-Promise.allSettled(promiseArray).then((results) => {
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- // Succeeded
- core.info(runnerNameArray[index] + ' runner succeeded. Post count: ' + result.value.length);
- // Adds feed name to the items
- if (typeof feedNamesList[index] !== undefined && feedNamesList[index]) {
- result.value = result.value.map((item) => {
- item.feedName = feedNamesList[index];
- return item;
- });
- }
- postsArray.push(...result.value);
- } else {
- jobFailFlag = true;
- // Rejected
- core.error(runnerNameArray[index] + ' runner failed, please verify the configuration. Error:');
- if (result.reason && result.reason.message && result.reason.message.startsWith('Status code')) {
- const code = result.reason.message.replace('Status code ', '');
- core.error(`Looks like your website returned ${code}, There is nothing blog post workflow` +
- ` can do to fix it. Please check your website's RSS feed generation source code. Also double check the URL.`);
- if (code === `503`) {
- core.error(`If you are using Cloudflare or Akamai, make sure that you have the user agent ` +
- ` ${userAgent} or GitHub actions IP ranges whitelisted in your firewall.`);
+const runWorkflow = async () => {
+ // Processing the generated promises
+ await Promise.allSettled(promiseArray).then((results) => {
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ // Succeeded
+ core.info(runnerNameArray[index] + ' runner succeeded. Post count: ' + result.value.length);
+ // Adds feed name to the items
+ if (typeof feedNamesList[index] !== undefined && feedNamesList[index]) {
+ result.value = result.value.map((item) => {
+ item.feedName = feedNamesList[index];
+ return item;
+ });
}
+ postsArray.push(...result.value);
} else {
- core.error(result.reason || result.reason.message);
+ jobFailFlag = true;
+ // Rejected
+ core.error(runnerNameArray[index] + ' runner failed, please verify the configuration. Error:');
+ if (result.reason && result.reason.message && result.reason.message.startsWith('Status code')) {
+ const code = result.reason.message.replace('Status code ', '');
+ core.error(`Looks like your website returned ${code}, There is nothing blog post workflow` +
+ ` can do to fix it. Please check your website's RSS feed generation source code. Also double check
+ the URL.`);
+ if (code === `503`) {
+ core.error(`If you are using Cloudflare or Akamai, make sure that you have the user agent ` +
+ ` ${userAgent} or GitHub actions IP ranges whitelisted in your firewall.`);
+ }
+ } else {
+ core.error(result.reason || result.reason.message);
+ }
}
- }
- });
-}).finally(async () => {
- // Ignore null items, allows you to ignore items by setting null in post via `item_exec`
- postsArray = postsArray.filter(item => item !== null);
-
- // Sorting posts based on date
- if (ENABLE_SORT) {
- postsArray.sort(function (a, b) {
- return b.date - a.date;
});
- }
- // Slicing with the max count
- postsArray = postsArray.slice(0, TOTAL_POST_COUNT);
- if (postsArray.length > 0) {
- try {
- if (!process.env.TEST_MODE) {
- await exec('git', ['config', 'pull.rebase', 'true'], {stdio: ['pipe', 'pipe', 'pipe']});
- // Pulling the latest changes from upstream
- await exec('git', ['pull'], {stdio: ['pipe', 'pipe', 'pipe']});
- }
- const template = core.getInput('template');
- const randEmojiArr = getParameterisedTemplate(template, 'randomEmoji');
- const constEmojiArr = getParameterisedTemplate(template, 'emojiKey');
- const postListMarkdown = postsArray.reduce((acc, cur, index) => {
- if (template === 'default') {
- // Default template: - [$title]($url)
- return acc + `\n- [${cur.title}](${cur.url})` + (((index + 1) === postsArray.length) ? '\n' : '');
- } else {
- // Building categories listing
- const categoryTemplate = core.getInput('categories_template');
- const categoryList = categoryTemplate === 'default' ?
- cur.categories.join(', ') : cur.categories.reduce((prev, current) =>
- prev + categoryTemplate.replace(/\$category\b/g, current.toString()), '');
- // Building with custom template
- const date = dateFormat(cur.date, core.getInput('date_format')); // Formatting date
- let content = template
- .replace(/\$title\b/g, cur.title)
- .replace(/\$url\b/g, cur.url)
- .replace(/\$description\b/g, cur.description)
- .replace(/\$date\b/g, date)
- .replace(/\$counter\b/g, (index + 1).toString())
- .replace(/\$feedName\b/g, cur.feedName ? cur.feedName : '')
- .replace(/\$categories\b/g, categoryList.toString())
- .replace(/\$newline/g, '\n');
-
- // Setting Custom tags to the template
- Object.keys(CUSTOM_TAGS).forEach((tag) => {
- const replaceValue = cur[tag] ? cur[tag] : '';
- content = content.replace(new RegExp('\\$' + tag + '\\b', 'g'), replaceValue);
- });
+ }).finally(async () => {
+ // Ignore null items, allows you to ignore items by setting null in post via `item_exec`
+ postsArray = postsArray.filter(item => item !== null);
+
+ // Sorting posts based on date
+ if (ENABLE_SORT) {
+ postsArray.sort(function (a, b) {
+ return b.date - a.date;
+ });
+ }
+ // Slicing with the max count
+ postsArray = postsArray.slice(0, TOTAL_POST_COUNT);
+ if (postsArray.length > 0) {
+ try {
+ if (!process.env.TEST_MODE) {
+ await exec('git', ['config', 'pull.rebase', 'true'], {stdio: ['pipe', 'pipe', 'pipe']});
+ // Pulling the latest changes from upstream
+ await exec('git', ['pull'], {stdio: ['pipe', 'pipe', 'pipe']});
+ }
+ const template = core.getInput('template');
+ const randEmojiArr = getParameterisedTemplate(template, 'randomEmoji');
+ const constEmojiArr = getParameterisedTemplate(template, 'emojiKey');
+ const postListMarkdown = postsArray.reduce((acc, cur, index) => {
+ if (template === 'default') {
+ // Default template: - [$title]($url)
+ return acc + `\n- [${cur.title}](${cur.url})` + (((index + 1) === postsArray.length) ? '\n' : '');
+ } else {
+ // Building categories listing
+ const categoryTemplate = core.getInput('categories_template');
+ const categoryList = categoryTemplate === 'default' ?
+ cur.categories.join(', ') : cur.categories.reduce((prev, current) =>
+ prev + categoryTemplate.replace(/\$category\b/g, current.toString()), '');
+ // Building with custom template
+ const date = dateFormat(cur.date, core.getInput('date_format')); // Formatting date
+ let content = template
+ .replace(/\$title\b/g, cur.title)
+ .replace(/\$url\b/g, cur.url)
+ .replace(/\$description\b/g, cur.description)
+ .replace(/\$date\b/g, date)
+ .replace(/\$counter\b/g, (index + 1).toString())
+ .replace(/\$feedName\b/g, cur.feedName ? cur.feedName : '')
+ .replace(/\$categories\b/g, categoryList.toString())
+ .replace(/\$newline/g, '\n');
+
+ // Setting Custom tags to the template
+ Object.keys(CUSTOM_TAGS).forEach((tag) => {
+ const replaceValue = cur[tag] ? cur[tag] : '';
+ content = content.replace(new RegExp('\\$' + tag + '\\b', 'g'), replaceValue);
+ });
- // Emoji implementation: Random
- if (randEmojiArr) {
- // For making randomness unique for each repos
- let seed = (process.env.GITHUB_REPOSITORY && !process.env.TEST_MODE ?
- process.env.GITHUB_REPOSITORY : 'example') + index;
- if (core.getInput('rand_seed')) {
- // If manual seed is provided, use it
- seed = core.getInput('rand_seed') + index;
+ // Emoji implementation: Random
+ if (randEmojiArr) {
+ // For making randomness unique for each repos
+ let seed = (process.env.GITHUB_REPOSITORY && !process.env.TEST_MODE ?
+ process.env.GITHUB_REPOSITORY : 'example') + index;
+ if (core.getInput('rand_seed')) {
+ // If manual seed is provided, use it
+ seed = core.getInput('rand_seed') + index;
+ }
+ const emoji = randEmojiArr[rand.create(seed).range(randEmojiArr.length)];
+ content = content.replace(/\$randomEmoji\((\S)*\)/g, emoji);
}
- const emoji = randEmojiArr[rand.create(seed).range(randEmojiArr.length)];
- content = content.replace(/\$randomEmoji\((\S)*\)/g, emoji);
- }
- // Emoji implementation: Static
- if (constEmojiArr) {
- // using modulus
- content = content.replace(/\$emojiKey\((\S)*\)/g, constEmojiArr[index % constEmojiArr.length]);
- }
+ // Emoji implementation: Static
+ if (constEmojiArr) {
+ // using modulus
+ content = content.replace(/\$emojiKey\((\S)*\)/g, constEmojiArr[index % constEmojiArr.length]);
+ }
- return acc + content;
- }
- }, '');
-
- // Output only mode
- const outputOnly = core.getInput('output_only') !== 'false';
- if (outputOnly) {
- // Sets output as output as `results` variable in github action
- core.info('outputOnly mode: set `results` variable. Readme not committed.');
- core.setOutput('results', postsArray);
- const outputFilePath = path.join('/','tmp', 'blog_post_workflow_output.json');
- if(fs.existsSync(outputFilePath)) {
- fs.rmSync(outputFilePath);
+ return acc + content;
+ }
+ }, '');
+
+ // Output only mode
+ const outputOnly = core.getInput('output_only') !== 'false';
+ if (outputOnly) {
+ // Sets output as output as `results` variable in github action
+ core.info('outputOnly mode: set `results` variable. Readme not committed.');
+ core.setOutput('results', postsArray);
+ const outputFilePath = path.join('/','tmp', 'blog_post_workflow_output.json');
+ if(fs.existsSync(outputFilePath)) {
+ fs.rmSync(outputFilePath);
+ }
+ fs.writeFileSync(outputFilePath, JSON.stringify(postsArray), { encoding: 'utf-8'});
+ process.exit(jobFailFlag ? 1 : 0);
}
- fs.writeFileSync(outputFilePath, JSON.stringify(postsArray), { encoding: 'utf-8'});
- process.exit(jobFailFlag ? 1 : 0);
- }
- // Writing to each readme file
- let changedReadmeCount = 0;
- README_FILE_PATH_LIST.forEach((README_FILE_PATH) => {
- const readmeData = fs.readFileSync(README_FILE_PATH, 'utf8');
- const newReadme = buildReadme(readmeData, postListMarkdown);
- // if there's change in readme file update it
- if (newReadme !== readmeData) {
- core.info('Writing to ' + README_FILE_PATH);
- fs.writeFileSync(README_FILE_PATH, newReadme);
- changedReadmeCount = changedReadmeCount + 1;
- }
- });
+ // Writing to each readme file
+ let changedReadmeCount = 0;
+ README_FILE_PATH_LIST.forEach((README_FILE_PATH) => {
+ const readmeData = fs.readFileSync(README_FILE_PATH, 'utf8');
+ const newReadme = buildReadme(readmeData, postListMarkdown);
+ // if there's change in readme file update it
+ if (newReadme !== readmeData) {
+ core.info('Writing to ' + README_FILE_PATH);
+ fs.writeFileSync(README_FILE_PATH, newReadme);
+ changedReadmeCount = changedReadmeCount + 1;
+ }
+ });
- if (changedReadmeCount > 0 && !SKIP_COMMITS) {
- if (!process.env.TEST_MODE) {
- // Commit to readme
- await commitReadme(GITHUB_TOKEN, README_FILE_PATH_LIST).then(() => {
- // Making job fail if one of the source fails
- process.exit(jobFailFlag ? 1 : 0);
- });
- }
- } else {
- // Calculating last commit date, please see https://git.io/Jtm4V
- if (!process.env.TEST_MODE && ENABLE_KEEPALIVE) {
- // Do dummy commit if elapsed time is greater than 50 days
- const committerUsername = core.getInput('committer_username');
- const committerEmail = core.getInput('committer_email');
- const message = await keepaliveWorkflow.KeepAliveWorkflow(GITHUB_TOKEN, committerUsername, committerEmail,
- 'dummy commit to keep the repository active, see https://git.io/Jtm4V', 50, true);
- core.info(message);
+ if (changedReadmeCount > 0 && !SKIP_COMMITS) {
+ if (!process.env.TEST_MODE) {
+ // Commit to readme
+ await commitReadme(GITHUB_TOKEN, README_FILE_PATH_LIST).then(() => {
+ // Making job fail if one of the source fails
+ process.exit(jobFailFlag ? 1 : 0);
+ });
+ }
} else {
- core.info('No change detected, skipping');
+ // Calculating last commit date, please see https://git.io/Jtm4V
+ if (!process.env.TEST_MODE && ENABLE_KEEPALIVE) {
+ // Do dummy commit if elapsed time is greater than 50 days
+ const committerUsername = core.getInput('committer_username');
+ const committerEmail = core.getInput('committer_email');
+ const message = await keepaliveWorkflow.KeepAliveWorkflow(GITHUB_TOKEN, committerUsername, committerEmail,
+ 'dummy commit to keep the repository active, see https://git.io/Jtm4V', 50, true);
+ core.info(message);
+ } else {
+ core.info('No change detected, skipping');
+ }
+ process.exit(jobFailFlag ? 1 : 0);
}
- process.exit(jobFailFlag ? 1 : 0);
+ } catch (e) {
+ core.error(e);
+ process.exit(1);
}
- } catch (e) {
- core.error(e);
- process.exit(1);
+ } else {
+ core.info('0 blog posts fetched');
+ process.exit(jobFailFlag ? 1 : 0);
}
- } else {
- core.info('0 blog posts fetched');
- process.exit(jobFailFlag ? 1 : 0);
- }
-});
+ });
+};
+
+module.exports = {
+ runWorkflow
+};
+
+if (!module.parent) {
+ runWorkflow().then();
+}
diff --git a/test/categories-template.js b/test/categories-template.js
new file mode 100644
index 0000000..5118f4a
--- /dev/null
+++ b/test/categories-template.js
@@ -0,0 +1,14 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with categories template', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FEED_LIST: 'http://localhost:8080',
+ INPUT_TEMPLATE: '$categories',
+ INPUT_CATEGORIES_TEMPLATE: '$category
'
+ };
+ await runAndCompareSnap('Readme.categories.template.md', envObj);
+ });
+});
diff --git a/test/categories.js b/test/categories.js
new file mode 100644
index 0000000..a1d9240
--- /dev/null
+++ b/test/categories.js
@@ -0,0 +1,13 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with categories names', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FEED_LIST: 'http://localhost:8080',
+ INPUT_TEMPLATE: '$categories',
+ };
+ await runAndCompareSnap('Readme.categories.md', envObj);
+ });
+});
diff --git a/test/counter.js b/test/counter.js
new file mode 100644
index 0000000..0d55666
--- /dev/null
+++ b/test/counter.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with $counter template', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_TEMPLATE: '- $counter $title'
+ };
+ await runAndCompareSnap('Readme.counter.md', envObj);
+ });
+});
diff --git a/test/custom-template.js b/test/custom-template.js
new file mode 100644
index 0000000..6746865
--- /dev/null
+++ b/test/custom-template.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Custom template readme generated', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_TEMPLATE: '$newline[$title]($url): $date $description $newline'
+ };
+ await runAndCompareSnap('Readme.custom.md', envObj);
+ });
+});
diff --git a/test/default.js b/test/default.js
new file mode 100644
index 0000000..95bce0a
--- /dev/null
+++ b/test/default.js
@@ -0,0 +1,10 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Default template readme generated', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...DEFAULT_TEST_ENV
+ };
+ await runAndCompareSnap('Readme.md', envObj);
+ });
+});
diff --git a/test/disable-sort.js b/test/disable-sort.js
new file mode 100644
index 0000000..2b87a8d
--- /dev/null
+++ b/test/disable-sort.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Sorting disabled readme', function () {
+ it('should be equal to the saved snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_DISABLE_SORT: 'true'
+ };
+ await runAndCompareSnap('Readme.sort.md', envObj);
+ });
+});
diff --git a/test/duplicate.js b/test/duplicate.js
new file mode 100644
index 0000000..605671b
--- /dev/null
+++ b/test/duplicate.js
@@ -0,0 +1,13 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with remove duplicates flag', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FEED_LIST: 'http://localhost:8080/duplicates',
+ INPUT_REMOVE_DUPLICATES: 'true'
+ };
+ await runAndCompareSnap('Readme.removeDuplicates.md', envObj);
+ });
+});
diff --git a/test/emojikey.js b/test/emojikey.js
new file mode 100644
index 0000000..9054b29
--- /dev/null
+++ b/test/emojikey.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with $emojiKey template', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_TEMPLATE: '- $emojiKey(💯,🔥)'
+ };
+ await runAndCompareSnap('Readme.emojiKey.md', envObj);
+ });
+});
diff --git a/test/feed-names.js b/test/feed-names.js
new file mode 100644
index 0000000..fdee180
--- /dev/null
+++ b/test/feed-names.js
@@ -0,0 +1,15 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with feed names', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FEED_LIST: 'http://localhost:8080,http://localhost:8080,http://localhost:8080',
+ INPUT_FEED_NAMES: 'hello,,world',
+ INPUT_TEMPLATE: '$newline - $feedName -> $title ',
+ INPUT_MAX_POST_COUNT: '100',
+ };
+ await runAndCompareSnap('Readme.feedNames.md', envObj);
+ });
+});
diff --git a/test/js-manipulation.js b/test/js-manipulation.js
new file mode 100644
index 0000000..783f96d
--- /dev/null
+++ b/test/js-manipulation.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with advanced manipulation via JS', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_ITEM_EXEC: 'post.title=post.title.replace("Gautam",""); post.title=post.title.replace("browser","");'
+ };
+ await runAndCompareSnap('Readme.exec.md', envObj);
+ });
+});
diff --git a/test/multiple.js b/test/multiple.js
new file mode 100644
index 0000000..807add6
--- /dev/null
+++ b/test/multiple.js
@@ -0,0 +1,29 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const path = require('path');
+const fs = require('fs');
+const assert = require('assert');
+const {TEST_SNAP_DIR, TEMPLATE, TEST_FILE} = require("./testUtils/testUtils");
+describe('Multiple readme generated via readme_path', function () {
+ it('should match the snapshots', async function () {
+ const readme1 = path.join(TEST_SNAP_DIR, 'Readme.multi.1.md');
+ const readme2 = path.join(TEST_SNAP_DIR, 'Readme.multi.2.md');
+ const envObj = {
+ ...DEFAULT_TEST_ENV,
+ INPUT_README_PATH: readme1 + ',' + readme2
+ };
+ process.env = {
+ ...process.env,
+ ...envObj
+ };
+ fs.writeFileSync(readme1, TEMPLATE);
+ fs.writeFileSync(readme2, TEMPLATE);
+ const workflow = await require(TEST_FILE);
+ await workflow.runWorkflow();
+ const snapshot1 = fs.readFileSync(readme1 + '.snap', 'utf-8');
+ const snapshot2 = fs.readFileSync(readme2 + '.snap', 'utf-8');
+ const newReadme1 = fs.readFileSync(readme1, 'utf-8');
+ const newReadme2 = fs.readFileSync(readme2, 'utf-8');
+ assert.strictEqual(snapshot1, newReadme1);
+ assert.strictEqual(snapshot2, newReadme2);
+ });
+});
diff --git a/test/random-emoji.js b/test/random-emoji.js
new file mode 100644
index 0000000..32fffba
--- /dev/null
+++ b/test/random-emoji.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Default template readme generated', function () {
+ it('Generated readme with $randomEmoji template should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_TEMPLATE: '- $randomEmoji(💯,🔥,💫,🚀,🌮)'
+ };
+ await runAndCompareSnap('Readme.randomEmoji.md', envObj);
+ });
+});
diff --git a/test/retry.js b/test/retry.js
new file mode 100644
index 0000000..f2d70f7
--- /dev/null
+++ b/test/retry.js
@@ -0,0 +1,13 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Readme generated after retry', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FEED_LIST: 'http://localhost:8080/failtest',
+ INPUT_RETRY_COUNT: '5'
+ };
+ await runAndCompareSnap('Readme.retry.md', envObj);
+ }).timeout(20 * 1000);
+});
diff --git a/test/snapshots/Readme.filter_dates.currentMonth.md.snap b/test/snapshots/Readme.filter_dates.currentMonth.md.snap
deleted file mode 100644
index ff1dcc7..0000000
--- a/test/snapshots/Readme.filter_dates.currentMonth.md.snap
+++ /dev/null
@@ -1,7 +0,0 @@
-# Readme test
-Post list example:
-
-
-
-# Other contents
-Test content
diff --git a/test/snapshots/Readme.filter_dates.currentYear.md.snap b/test/snapshots/Readme.filter_dates.currentYear.md.snap
deleted file mode 100644
index ff1dcc7..0000000
--- a/test/snapshots/Readme.filter_dates.currentYear.md.snap
+++ /dev/null
@@ -1,7 +0,0 @@
-# Readme test
-Post list example:
-
-
-
-# Other contents
-Test content
diff --git a/test/snapshots/Readme.filter_dates.daysAgo.md.snap b/test/snapshots/Readme.filter_dates.daysAgo.md.snap
deleted file mode 100644
index ff1dcc7..0000000
--- a/test/snapshots/Readme.filter_dates.daysAgo.md.snap
+++ /dev/null
@@ -1,7 +0,0 @@
-# Readme test
-Post list example:
-
-
-
-# Other contents
-Test content
diff --git a/test/test.js b/test/test.js
deleted file mode 100644
index e94d152..0000000
--- a/test/test.js
+++ /dev/null
@@ -1,242 +0,0 @@
-const assert = require('assert');
-const process = require('process');
-const path = require('path');
-const fs = require('fs');
-const { exec, escapeHTML } = require('../src/utils');
-const {DEFAULT_TEST_ENV} = require('./default-env');
-
-// Folder with readme snapshots
-const TEST_SNAP_DIR = path.join(__dirname, 'snapshots');
-
-// language=markdown
-const TEMPLATE = `# Readme test
-Post list example:
-
-
-
-# Other contents
-Test content
-`;
-const TEST_FILE = process.env.DIST ?
- path.join(__dirname, '../dist/blog-post-workflow') : path.join(__dirname, '../src/blog-post-workflow');
-console.log('Testing: ', TEST_FILE);
-
-const runAndCompareSnap = async (README_FILE, envObj) => {
- envObj = {
- ...envObj,
- INPUT_README_PATH: path.join(TEST_SNAP_DIR, README_FILE)
- };
- fs.writeFileSync(path.join(TEST_SNAP_DIR, README_FILE), TEMPLATE);
- await exec('node', [TEST_FILE], { env: envObj });
- const snapshot = fs.readFileSync(path.join(TEST_SNAP_DIR, README_FILE + '.snap'), 'utf-8');
- const newReadme = fs.readFileSync(path.join(TEST_SNAP_DIR, README_FILE), 'utf-8');
- assert.strictEqual(snapshot, newReadme);
-};
-
-// Test block
-describe('Blog post workflow tests', function () {
- it('Default template readme generated should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV
- };
- await runAndCompareSnap('Readme.md', envObj);
- });
-
- it('Multiple readme generated via readme_path should match the snapshots', async function () {
- const readme1 = path.join(TEST_SNAP_DIR, 'Readme.multi.1.md');
- const readme2 = path.join(TEST_SNAP_DIR, 'Readme.multi.2.md');
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_README_PATH: readme1 + ',' + readme2
- };
- fs.writeFileSync(readme1, TEMPLATE);
- fs.writeFileSync(readme2, TEMPLATE);
- await exec('node', [TEST_FILE], { env: envObj });
- const snapshot1 = fs.readFileSync(readme1 + '.snap', 'utf-8');
- const snapshot2 = fs.readFileSync(readme2 + '.snap', 'utf-8');
- const newReadme1 = fs.readFileSync(readme1, 'utf-8');
- const newReadme2 = fs.readFileSync(readme2, 'utf-8');
- assert.strictEqual(snapshot1, newReadme1);
- assert.strictEqual(snapshot2, newReadme2);
- });
-
- it('Sorting disabled readme should be equal to the saved snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_DISABLE_SORT: 'true'
- };
- await runAndCompareSnap('Readme.sort.md', envObj);
- });
-
- it('Custom template readme generated should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_TEMPLATE: '$newline[$title]($url): $date $description $newline'
- };
- await runAndCompareSnap('Readme.custom.md', envObj);
- });
- it('Generated readme without filters should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FILTER_COMMENTS: ''
- };
- await runAndCompareSnap('Readme.comments.md', envObj);
- });
- it('Generated readme without custom elements should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_CUSTOM_TAGS: 'testingTag/testingTag/,testingTag2/testingTag2/',
- INPUT_TEMPLATE: '$title $url $testingTag $testingTag2 $newline'
- };
- await runAndCompareSnap('Readme.custom-tags.md', envObj);
- });
-
- it('Generated readme with $emojiKey template should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_TEMPLATE: '- $emojiKey(💯,🔥)'
- };
- await runAndCompareSnap('Readme.emojiKey.md', envObj);
- });
-
- it('Generated readme with $randomEmoji template should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_TEMPLATE: '- $randomEmoji(💯,🔥,💫,🚀,🌮)'
- };
- await runAndCompareSnap('Readme.randomEmoji.md', envObj);
- });
-
- it('Generated readme with $counter template should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_TEMPLATE: '- $counter $title'
- };
- await runAndCompareSnap('Readme.counter.md', envObj);
- });
-
- it('Generated readme with truncated title should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_TITLE_MAX_LENGTH: '10'
- };
- await runAndCompareSnap('Readme.truncate.title.md', envObj);
- });
-
- it('Generated readme with truncated description should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_DESCRIPTION_MAX_LENGTH: '10',
- INPUT_TEMPLATE: '$description $newline'
- };
- await runAndCompareSnap('Readme.truncate.description.md', envObj);
- });
-
- it('Generated readme with advanced manipulation via JS should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_ITEM_EXEC: 'post.title=post.title.replace("Gautam",""); post.title=post.title.replace("browser","");'
- };
- await runAndCompareSnap('Readme.exec.md', envObj);
- });
-
- it('Readme generated after retry should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FEED_LIST: 'http://localhost:8080/failtest',
- INPUT_RETRY_COUNT: '5'
- };
- await runAndCompareSnap('Readme.retry.md', envObj);
- }).timeout(20 * 1000);
-
- it('Generated readme with feed names should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FEED_LIST: 'http://localhost:8080,http://localhost:8080,http://localhost:8080',
- INPUT_FEED_NAMES: 'hello,,world',
- INPUT_TEMPLATE: '$newline - $feedName -> $title ',
- INPUT_MAX_POST_COUNT: '100',
- };
- await runAndCompareSnap('Readme.feedNames.md', envObj);
- });
-
- it('Generated readme with categories names should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FEED_LIST: 'http://localhost:8080',
- INPUT_TEMPLATE: '$categories',
- };
- await runAndCompareSnap('Readme.categories.md', envObj);
- });
-
- it('escapeHTML should work as expected', function () {
- assert.strictEqual(escapeHTML('()\'"'), '<hello>()'"');
- });
- it('Generated readme with categories template should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FEED_LIST: 'http://localhost:8080',
- INPUT_TEMPLATE: '$categories',
- INPUT_CATEGORIES_TEMPLATE: '$category
'
- };
- await runAndCompareSnap('Readme.categories.template.md', envObj);
- });
- it('Generated readme with no validation flag should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FEED_LIST: 'http://localhost:8080/empty-tags',
- INPUT_DISABLE_ITEM_VALIDATION: 'true'
- };
- await runAndCompareSnap('Readme.emptyTags.md', envObj);
- });
- it('Generated readme with filter_dates daysAgo should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FILTER_DATES: 'daysAgo/10/'
- };
- await runAndCompareSnap('Readme.filter_dates.daysAgo.md', envObj);
- });
- it('Generated readme with filter_dates currentMonth should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FILTER_DATES: 'currentMonth'
- };
- await runAndCompareSnap('Readme.filter_dates.currentMonth.md', envObj);
- });
- it('Generated readme with filter_dates currentYear should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FILTER_DATES: 'currentYear'
- };
- await runAndCompareSnap('Readme.filter_dates.currentYear.md', envObj);
- });
- it('Generated readme with remove duplicates flag should match the snapshot', async function () {
- const envObj = {
- ...process.env,
- ...DEFAULT_TEST_ENV,
- INPUT_FEED_LIST: 'http://localhost:8080/duplicates',
- INPUT_REMOVE_DUPLICATES: 'true'
- };
- await runAndCompareSnap('Readme.removeDuplicates.md', envObj);
- });
-});
diff --git a/test/default-env.js b/test/testUtils/default-env.js
similarity index 100%
rename from test/default-env.js
rename to test/testUtils/default-env.js
diff --git a/test/sample.duplicate.xml b/test/testUtils/sample.duplicate.xml
similarity index 100%
rename from test/sample.duplicate.xml
rename to test/testUtils/sample.duplicate.xml
diff --git a/test/sample.xml b/test/testUtils/sample.xml
similarity index 100%
rename from test/sample.xml
rename to test/testUtils/sample.xml
diff --git a/test/test-server.js b/test/testUtils/test-server.js
similarity index 100%
rename from test/test-server.js
rename to test/testUtils/test-server.js
diff --git a/test/testUtils/testUtils.js b/test/testUtils/testUtils.js
new file mode 100644
index 0000000..1dd0f06
--- /dev/null
+++ b/test/testUtils/testUtils.js
@@ -0,0 +1,50 @@
+const path = require('path');
+const fs = require('fs');
+const { exec, escapeHTML } = require('../../src/utils');
+const assert = require('assert');
+
+// Folder with readme snapshots
+const TEST_SNAP_DIR = path.join(path.dirname(__dirname), 'snapshots');
+// language=markdown
+const TEMPLATE = `# Readme test
+Post list example:
+
+
+
+# Other contents
+Test content
+`;
+const projectDir = path.dirname(path.dirname(__dirname));
+
+const TEST_FILE = process.env.DIST ?
+ path.join(projectDir, 'dist/blog-post-workflow') : path.join(projectDir, 'src/blog-post-workflow');
+console.log('Testing: ', TEST_FILE);
+
+const runAndCompareSnap = async (README_FILE, envObj) => {
+ const readmePath = path.join(TEST_SNAP_DIR, README_FILE);
+ envObj = {
+ ...envObj,
+ INPUT_README_PATH: readmePath
+ };
+ if (fs.existsSync(readmePath)) {
+ console.log("Removing stale test readme", readmePath);
+ fs.rmSync(readmePath);
+ }
+ fs.writeFileSync(readmePath, TEMPLATE);
+ process.env = {
+ ...process.env,
+ ...envObj
+ };
+ const workflow = await require(TEST_FILE);
+ await workflow.runWorkflow();
+ const snapshot = fs.readFileSync(path.join(TEST_SNAP_DIR, README_FILE + '.snap'), 'utf-8');
+ const newReadme = fs.readFileSync(readmePath, 'utf-8');
+ assert.strictEqual(snapshot, newReadme);
+};
+
+module.exports = {
+ runAndCompareSnap,
+ TEST_SNAP_DIR,
+ TEMPLATE,
+ TEST_FILE
+}
diff --git a/test/truncated description.js b/test/truncated description.js
new file mode 100644
index 0000000..69095ca
--- /dev/null
+++ b/test/truncated description.js
@@ -0,0 +1,13 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with truncated description', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_DESCRIPTION_MAX_LENGTH: '10',
+ INPUT_TEMPLATE: '$description $newline'
+ };
+ await runAndCompareSnap('Readme.truncate.description.md', envObj);
+ });
+});
diff --git a/test/truncated-title.js b/test/truncated-title.js
new file mode 100644
index 0000000..ad54570
--- /dev/null
+++ b/test/truncated-title.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with truncated title', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_TITLE_MAX_LENGTH: '10'
+ };
+ await runAndCompareSnap('Readme.truncate.title.md', envObj);
+ });
+});
diff --git a/test/unit-tests.js b/test/unit-tests.js
new file mode 100644
index 0000000..f87a64e
--- /dev/null
+++ b/test/unit-tests.js
@@ -0,0 +1,7 @@
+const assert = require('assert');
+const {escapeHTML} = require("../src/utils");
+describe('Unit Tests', function () {
+ it('escapeHTML should work as expected', function () {
+ assert.strictEqual(escapeHTML('()\'"'), '<hello>()'"');
+ });
+});
diff --git a/test/validation-flag.js b/test/validation-flag.js
new file mode 100644
index 0000000..2fc1d2b
--- /dev/null
+++ b/test/validation-flag.js
@@ -0,0 +1,13 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme with no validation flag', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FEED_LIST: 'http://localhost:8080/empty-tags',
+ INPUT_DISABLE_ITEM_VALIDATION: 'true'
+ };
+ await runAndCompareSnap('Readme.emptyTags.md', envObj);
+ });
+});
diff --git a/test/without-custom-elements.js b/test/without-custom-elements.js
new file mode 100644
index 0000000..b23db8c
--- /dev/null
+++ b/test/without-custom-elements.js
@@ -0,0 +1,13 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme without custom elements', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_CUSTOM_TAGS: 'testingTag/testingTag/,testingTag2/testingTag2/',
+ INPUT_TEMPLATE: '$title $url $testingTag $testingTag2 $newline'
+ };
+ await runAndCompareSnap('Readme.custom-tags.md', envObj);
+ });
+});
diff --git a/test/without-filters.js b/test/without-filters.js
new file mode 100644
index 0000000..6c860a0
--- /dev/null
+++ b/test/without-filters.js
@@ -0,0 +1,12 @@
+const {DEFAULT_TEST_ENV} = require('./testUtils/default-env');
+const {runAndCompareSnap} = require('./testUtils/testUtils');
+describe('Generated readme without filters', function () {
+ it('should match the snapshot', async function () {
+ const envObj = {
+ ...process.env,
+ ...DEFAULT_TEST_ENV,
+ INPUT_FILTER_COMMENTS: ''
+ };
+ await runAndCompareSnap('Readme.comments.md', envObj);
+ });
+});
diff --git a/yarn.lock b/yarn.lock
index f4ddb08..08c1d1a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -166,22 +166,17 @@ ansi-colors@4.1.1:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-regex@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
- integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-ansi-styles@^3.2.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ansi-styles@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
dependencies:
- color-convert "^1.9.0"
+ color-convert "^2.0.1"
ansi-styles@^4.1.0:
version "4.2.1"
@@ -191,30 +186,18 @@ ansi-styles@^4.1.0:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
-anymatch@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
- integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-array.prototype.map@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec"
- integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
- es-array-method-boxes-properly "^1.0.0"
- is-string "^1.0.4"
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
axios@^0.19.2:
version "0.19.2"
@@ -246,6 +229,13 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+brace-expansion@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ dependencies:
+ balanced-match "^1.0.0"
+
braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@@ -258,15 +248,15 @@ browser-stdout@1.3.1:
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
-camelcase@^5.0.0, camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+camelcase@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-chalk@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
- integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+chalk@^4.1.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
@@ -276,20 +266,20 @@ check-more-types@2.24.0:
resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=
-chokidar@3.4.2:
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
- integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
+chokidar@3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
dependencies:
- anymatch "~3.1.1"
+ anymatch "~3.1.2"
braces "~3.0.2"
- glob-parent "~5.1.0"
+ glob-parent "~5.1.2"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
- readdirp "~3.4.0"
+ readdirp "~3.6.0"
optionalDependencies:
- fsevents "~2.1.2"
+ fsevents "~2.3.2"
cli@~1.0.0:
version "1.0.1"
@@ -299,21 +289,14 @@ cli@~1.0.0:
exit "0.1.2"
glob "^7.1.1"
-cliui@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
- integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
dependencies:
- string-width "^3.1.0"
- strip-ansi "^5.2.0"
- wrap-ansi "^5.1.0"
-
-color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
color-convert@^2.0.1:
version "2.0.1"
@@ -322,11 +305,6 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
@@ -375,6 +353,13 @@ debug@4.1.1:
dependencies:
ms "^2.1.1"
+debug@4.3.4:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
debug@=3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
@@ -382,22 +367,15 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
-decamelize@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-define-properties@^1.1.2, define-properties@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
- dependencies:
- object-keys "^1.0.12"
+decamelize@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
+ integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
-diff@4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
- integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+diff@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+ integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
dom-serializer@0:
version "0.2.2"
@@ -437,10 +415,10 @@ duplexer@~0.1.1:
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
-emoji-regex@^7.0.1:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
- integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
end-of-stream@^1.1.0:
version "1.4.4"
@@ -464,68 +442,6 @@ err-code@^2.0.2:
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5:
- version "1.17.6"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
- integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
- dependencies:
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.2.0"
- is-regex "^1.1.0"
- object-inspect "^1.7.0"
- object-keys "^1.1.1"
- object.assign "^4.1.0"
- string.prototype.trimend "^1.0.1"
- string.prototype.trimstart "^1.0.1"
-
-es-abstract@^1.18.0-next.0:
- version "1.18.0-next.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc"
- integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==
- dependencies:
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.2.0"
- is-negative-zero "^2.0.0"
- is-regex "^1.1.1"
- object-inspect "^1.8.0"
- object-keys "^1.1.1"
- object.assign "^4.1.0"
- string.prototype.trimend "^1.0.1"
- string.prototype.trimstart "^1.0.1"
-
-es-array-method-boxes-properly@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
- integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
-
-es-get-iterator@^1.0.2:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8"
- integrity sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==
- dependencies:
- es-abstract "^1.17.4"
- has-symbols "^1.0.1"
- is-arguments "^1.0.4"
- is-map "^2.0.1"
- is-set "^2.0.1"
- is-string "^1.0.5"
- isarray "^2.0.5"
-
-es-to-primitive@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
- integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
- dependencies:
- is-callable "^1.1.4"
- is-date-object "^1.0.1"
- is-symbol "^1.0.2"
-
esbuild@^0.19.6:
version "0.19.9"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.9.tgz#423a8f35153beb22c0b695da1cd1e6c0c8cdd490"
@@ -554,16 +470,16 @@ esbuild@^0.19.6:
"@esbuild/win32-ia32" "0.19.9"
"@esbuild/win32-x64" "0.19.9"
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
escape-string-regexp@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
event-stream@=3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
@@ -613,19 +529,10 @@ find-up@5.0.0:
locate-path "^6.0.0"
path-exists "^4.0.0"
-find-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
- integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
- dependencies:
- locate-path "^3.0.0"
-
-flat@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
- integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==
- dependencies:
- is-buffer "~2.0.3"
+flat@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
+ integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
follow-redirects@1.5.10:
version "1.5.10"
@@ -644,17 +551,12 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-fsevents@~2.1.2:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
- integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+fsevents@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-get-caller-file@^2.0.1:
+get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
@@ -666,14 +568,26 @@ get-stream@^5.0.0:
dependencies:
pump "^3.0.0"
-glob-parent@~5.1.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
- integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
+glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
-glob@7.1.6, glob@^7.1.1:
+glob@7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+ integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^7.1.1:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -685,28 +599,11 @@ glob@7.1.6, glob@^7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-growl@1.10.5:
- version "1.10.5"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
- integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
-
has-flag@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-has-symbols@^1.0.0, has-symbols@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
- integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
-
-has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
he@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -741,11 +638,6 @@ inherits@2, inherits@~2.0.1:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-is-arguments@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
- integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
-
is-binary-path@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
@@ -753,30 +645,15 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
-is-buffer@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
- integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
-
-is-callable@^1.1.4, is-callable@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz#4d1e21a4f437509d25ce55f8184350771421c96d"
- integrity sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==
-
-is-date-object@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
- integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
-
is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.1"
@@ -785,83 +662,36 @@ is-glob@^4.0.1, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
-is-map@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1"
- integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==
-
-is-negative-zero@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
- integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
-
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-plain-obj@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
- integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-
-is-regex@^1.1.0, is-regex@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
- integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
- dependencies:
- has-symbols "^1.0.1"
-
-is-set@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43"
- integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==
+is-plain-obj@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+ integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
is-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
-is-string@^1.0.4, is-string@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
- integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
-
-is-symbol@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
- integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
- dependencies:
- has-symbols "^1.0.1"
+is-unicode-supported@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
+ integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
-isarray@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
- integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
-
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-iterate-iterator@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6"
- integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==
-
-iterate-value@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57"
- integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==
- dependencies:
- es-get-iterator "^1.0.2"
- iterate-iterator "^1.0.1"
-
joi@^17.1.1:
version "17.2.1"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.2.1.tgz#e5140fdf07e8fecf9bc977c2832d1bdb1e3f2a0a"
@@ -873,13 +703,12 @@ joi@^17.1.1:
"@hapi/pinpoint" "^2.0.0"
"@hapi/topo" "^5.0.0"
-js-yaml@3.14.0:
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
- integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
+js-yaml@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
+ argparse "^2.0.1"
jshint@^2.12.0:
version "2.12.0"
@@ -912,14 +741,6 @@ lazy-ass@1.6.0:
resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM=
-locate-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
- integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
- dependencies:
- p-locate "^3.0.0"
- path-exists "^3.0.0"
-
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
@@ -932,12 +753,13 @@ lodash@^4.17.19, lodash@~4.17.19:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
-log-symbols@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
- integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
+log-symbols@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+ integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
dependencies:
- chalk "^4.0.0"
+ chalk "^4.1.0"
+ is-unicode-supported "^0.1.0"
map-stream@~0.1.0:
version "0.1.0"
@@ -954,7 +776,14 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
+minimatch@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b"
+ integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -966,36 +795,32 @@ minimist@^1.2.5:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-mocha@^8.1.3:
- version "8.1.3"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.1.3.tgz#5e93f873e35dfdd69617ea75f9c68c2ca61c2ac5"
- integrity sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==
+mocha@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8"
+ integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==
dependencies:
ansi-colors "4.1.1"
browser-stdout "1.3.1"
- chokidar "3.4.2"
- debug "4.1.1"
- diff "4.0.2"
+ chokidar "3.5.3"
+ debug "4.3.4"
+ diff "5.0.0"
escape-string-regexp "4.0.0"
find-up "5.0.0"
- glob "7.1.6"
- growl "1.10.5"
+ glob "7.2.0"
he "1.2.0"
- js-yaml "3.14.0"
- log-symbols "4.0.0"
- minimatch "3.0.4"
- ms "2.1.2"
- object.assign "4.1.0"
- promise.allsettled "1.0.2"
- serialize-javascript "4.0.0"
- strip-json-comments "3.0.1"
- supports-color "7.1.0"
- which "2.0.2"
- wide-align "1.1.3"
- workerpool "6.0.0"
- yargs "13.3.2"
- yargs-parser "13.1.2"
- yargs-unparser "1.6.1"
+ js-yaml "4.1.0"
+ log-symbols "4.1.0"
+ minimatch "5.0.1"
+ ms "2.1.3"
+ nanoid "3.3.3"
+ serialize-javascript "6.0.0"
+ strip-json-comments "3.1.1"
+ supports-color "8.1.1"
+ workerpool "6.2.1"
+ yargs "16.2.0"
+ yargs-parser "20.2.4"
+ yargs-unparser "2.0.0"
ms@2.0.0:
version "2.0.0"
@@ -1007,6 +832,16 @@ ms@2.1.2, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+ms@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+nanoid@3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
+ integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -1019,36 +854,6 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
-object-inspect@^1.7.0, object-inspect@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
- integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
-
-object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object.assign@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
- integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
- dependencies:
- define-properties "^1.1.2"
- function-bind "^1.1.1"
- has-symbols "^1.0.0"
- object-keys "^1.0.11"
-
-object.assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd"
- integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.18.0-next.0"
- has-symbols "^1.0.1"
- object-keys "^1.1.1"
-
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -1068,13 +873,6 @@ p-finally@^2.0.0:
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
-p-limit@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
p-limit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe"
@@ -1082,13 +880,6 @@ p-limit@^3.0.2:
dependencies:
p-try "^2.0.0"
-p-locate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
- integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
- dependencies:
- p-limit "^2.0.0"
-
p-locate@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
@@ -1101,11 +892,6 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-
path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
@@ -1146,17 +932,6 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
-promise.allsettled@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9"
- integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==
- dependencies:
- array.prototype.map "^1.0.1"
- define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
- function-bind "^1.1.1"
- iterate-value "^1.0.0"
-
ps-tree@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
@@ -1196,10 +971,10 @@ readable-stream@1.1:
isarray "0.0.1"
string_decoder "~0.10.x"
-readdirp@~3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
- integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
picomatch "^2.2.1"
@@ -1208,11 +983,6 @@ require-directory@^2.1.1:
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-require-main-filename@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
- integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
retry@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@@ -1243,18 +1013,13 @@ sax@>=0.6.0:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-serialize-javascript@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
- integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+serialize-javascript@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
+ integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
dependencies:
randombytes "^2.1.0"
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -1284,11 +1049,6 @@ split@0.3:
dependencies:
through "2"
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
start-server-and-test@^1.11.3:
version "1.11.3"
resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.11.3.tgz#d293d2cff2c2fa0a46bbcf6b292716dbc8042d01"
@@ -1309,57 +1069,26 @@ stream-combiner@~0.0.4:
dependencies:
duplexer "~0.1.1"
-"string-width@^1.0.2 || 2":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string-width@^3.0.0, string-width@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
- integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
- dependencies:
- emoji-regex "^7.0.1"
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^5.1.0"
-
-string.prototype.trimend@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
- integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.5"
-
-string.prototype.trimstart@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
- integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.5"
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
- ansi-regex "^4.1.0"
+ ansi-regex "^5.0.1"
strip-final-newline@^2.0.0:
version "2.0.0"
@@ -1371,15 +1100,15 @@ strip-json-comments@1.0.x:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
-strip-json-comments@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
- integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
+strip-json-comments@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-supports-color@7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
- integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+supports-color@8.1.1:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
dependencies:
has-flag "^4.0.0"
@@ -1428,38 +1157,26 @@ wait-on@5.2.0:
minimist "^1.2.5"
rxjs "^6.5.5"
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-which@2.0.2, which@^2.0.1:
+which@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
-wide-align@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
- dependencies:
- string-width "^1.0.2 || 2"
-
-workerpool@6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58"
- integrity sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==
+workerpool@6.2.1:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
+ integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
-wrap-ansi@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
- integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
- ansi-styles "^3.2.0"
- string-width "^3.0.0"
- strip-ansi "^5.0.0"
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
wrappy@1:
version "1.0.2"
@@ -1479,67 +1196,40 @@ xmlbuilder@~11.0.0:
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
-y18n@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
- integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-
-yargs-parser@13.1.2, yargs-parser@^13.1.2:
- version "13.1.2"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
- integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
-
-yargs-parser@^15.0.1:
- version "15.0.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3"
- integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
-
-yargs-unparser@1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.1.tgz#bd4b0ee05b4c94d058929c32cb09e3fce71d3c5f"
- integrity sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==
- dependencies:
- camelcase "^5.3.1"
- decamelize "^1.2.0"
- flat "^4.1.0"
- is-plain-obj "^1.1.0"
- yargs "^14.2.3"
-
-yargs@13.3.2:
- version "13.3.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
- integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
- dependencies:
- cliui "^5.0.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^13.1.2"
-
-yargs@^14.2.3:
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
- integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==
- dependencies:
- cliui "^5.0.0"
- decamelize "^1.2.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yargs-parser@20.2.4:
+ version "20.2.4"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
+ integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+
+yargs-parser@^20.2.2:
+ version "20.2.9"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs-unparser@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
+ integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
+ dependencies:
+ camelcase "^6.0.0"
+ decamelize "^4.0.0"
+ flat "^5.0.2"
+ is-plain-obj "^2.1.0"
+
+yargs@16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^15.0.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"