From 4e98c39aefe9575ff418c84960a09137072d6465 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 28 Feb 2018 13:47:38 -0800
Subject: [PATCH 001/124] first commit
---
.gitignore | 3 +
index.ts | 77 +
package.json | 47 +
readme.md | 60 +
test/prompt.test.ts | 187 +++
tsconfig.json | 18 +
yarn.lock | 3301 +++++++++++++++++++++++++++++++++++++++++++
7 files changed, 3693 insertions(+)
create mode 100644 .gitignore
create mode 100644 index.ts
create mode 100644 package.json
create mode 100644 readme.md
create mode 100644 test/prompt.test.ts
create mode 100644 tsconfig.json
create mode 100644 yarn.lock
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f5d0c3d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+node_modules
+.DS_Store
+*.log
diff --git a/index.ts b/index.ts
new file mode 100644
index 0000000..72ad75b
--- /dev/null
+++ b/index.ts
@@ -0,0 +1,77 @@
+import { exec } from 'child_process';
+import 'colors';
+import * as inquirer from 'inquirer';
+inquirer.registerPrompt(
+ 'autocomplete',
+ require('inquirer-autocomplete-prompt')
+);
+
+export interface InquirerQuestion {
+ name: string;
+ message: string;
+ required?: boolean;
+ validate?: Function;
+}
+
+export const required = (questions: Array) => {
+ return questions.map(q => {
+ if (q.required && !q.validate) {
+ q.validate = (value: any) => {
+ if (!value) {
+ return `${q.name} is required`;
+ }
+ return true;
+ };
+ }
+ return q;
+ });
+};
+
+export const names = (questions: Array) => {
+ return questions.map(q => {
+ q.message = `${'['.white}${q.name.blue}${']'.white} ${q.message.green}`;
+ return q;
+ });
+};
+
+export const filter = (
+ questions: Array,
+ answers: { [type: string]: any }
+) => {
+ const A = questions.map(q => q.name);
+ const B = Object.keys(answers);
+ const diff = A.filter(x => !B.includes(x));
+ return A.filter(n => diff.includes(n)).map(name =>
+ questions.find(o => o.name === name)
+ );
+};
+
+// converts argv._ into the answers when question specifies it
+export const _filter = (
+ questions: Array,
+ answers: { [type: string]: any }
+) => {
+ const _Qs = questions.filter(q => q.hasOwnProperty('_'));
+ const A = _Qs.map((v, i) => i + '');
+ const B = Object.keys(answers._ || []);
+ var includes = A.filter(x => B.includes(x));
+ for (var i = 0; i < includes.length; i++) {
+ answers[_Qs[i].name] = answers._.shift();
+ }
+ return answers;
+};
+
+export const prompt = async (
+ questions: Array,
+ answers: { [type: string]: any }
+) => {
+ _filter(questions, answers);
+ const result = await inquirer.prompt(
+ names(required(filter(questions, answers)))
+ );
+
+ return {
+ ...result,
+ ...answers,
+ };
+};
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d74c5c8
--- /dev/null
+++ b/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "inquirerer",
+ "version": "0.1.0",
+ "description": "",
+ "author": "pyramation@gmail.com",
+ "license": "MIT",
+ "main": "./build/index.js",
+ "types": "./build/types/index.d.ts",
+ "bin": {
+ "skitch": "./build/index.js"
+ },
+ "scripts": {
+ "build": "rm -rf ./build && tsc",
+ "test": "jest",
+ "test:watch": "jest --watch"
+ },
+ "devDependencies": {
+ "@types/jest": "^21.1.0",
+ "@types/node": "^8.0.0",
+ "jest": "^22.4.0",
+ "ts-jest": "^21.0.0",
+ "ts-node": "^5.0.0",
+ "tslint": "^5.4.3",
+ "typescript": "^2.7.1"
+ },
+ "dependencies": {
+ "colors": "^1.1.2",
+ "inquirer": "^3.3.0",
+ "inquirer-autocomplete-prompt": "^0.11.1"
+ },
+ "jest": {
+ "transform": {
+ ".(ts|tsx)": "/node_modules/ts-jest/preprocessor.js"
+ },
+ "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
+ "moduleFileExtensions": ["ts", "tsx", "js"],
+ "coveragePathIgnorePatterns": ["/node_modules/", "/test/"],
+ "coverageThreshold": {
+ "global": {
+ "branches": 90,
+ "functions": 95,
+ "lines": 95,
+ "statements": 95
+ }
+ }
+ }
+}
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..57e70b9
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,60 @@
+# Inquirerer
+
+A wrapper around Inquirer to solve this issue: https://github.com/SBoudrias/Inquirer.js/issues/166
+
+Allows you to override properties passed in, and won't be asked interactively. This is huge when creating real production systems where scripts need to run automatically without human interaction.
+
+## override properties
+
+Imagine this exists in a file `myprogram.js`:
+
+```js
+import { prompt } from 'inquirer';
+var argv = require('minimist')(process.argv.slice(2));
+
+const questions = [
+ {
+ name: 'database',
+ message: 'database',
+ required: true,
+ },
+];
+
+const { database } = await prompt(questions, argv);
+```
+
+To run interactively, just run `node myprogram.js`. However, if you want to override, simply do:
+
+```sh
+node myprogram.js --database mydb1
+```
+
+And will skip the interactive phase, unless more questions are unanswered.
+
+## `_` properties
+
+If you set `_: true`, then you can pass an argument into the system and it won't need the parameter name. Reasoning is many libraries such as `minimist` use `_` to store properties that aren't flagged.
+
+```js
+const questions = [
+ {
+ name: 'database',
+ message: 'database',
+ required: true,
+ },
+];
+
+const { database } = await prompt(questions, argv);
+```
+
+Now you can run with or without the `--database` flag
+
+```sh
+node myprogram.js mydb1
+```
+
+or equivalently:
+
+```sh
+node myprogram.js --database mydb1
+```
diff --git a/test/prompt.test.ts b/test/prompt.test.ts
new file mode 100644
index 0000000..942dcb3
--- /dev/null
+++ b/test/prompt.test.ts
@@ -0,0 +1,187 @@
+import { prompt, filter, _filter } from '../index';
+describe('arguments', () => {
+ it('empty when all args supplied', () => {
+ const questions = [
+ {
+ name: 'hello',
+ },
+ {
+ name: 'world',
+ },
+ ];
+ const argv = {
+ hello: 1,
+ world: 2,
+ };
+ expect(filter(questions, argv)).toEqual([]);
+ expect(argv).toEqual({
+ hello: 1,
+ world: 2,
+ });
+ });
+ it('empty when all args supplied', () => {
+ const questions = [
+ {
+ _: true,
+ name: 'foo',
+ },
+ {
+ name: 'bar',
+ },
+ {
+ _: true,
+ name: 'baz',
+ },
+ ];
+ const argv = {
+ _: [1, 3],
+ bar: 2,
+ };
+
+ const _1 = filter(questions, argv);
+ const _2 = _filter(questions, argv);
+
+ expect(_2).toEqual([]);
+ expect(argv).toEqual({
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+ });
+ });
+ it('init example', async () => {
+ const questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ ];
+ const argv = {
+ _: [],
+ bar: 2,
+ };
+ const _1 = _filter(questions, argv);
+ const _2 = filter(questions, argv);
+
+ expect(_2).toEqual([
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ ]);
+ expect(argv).toEqual({
+ _: [],
+ bar: 2,
+ });
+ });
+ it('basic example', async () => {
+ const questions = [
+ {
+ name: 'name',
+ message: 'project name (e.g., flipr)',
+ required: true,
+ },
+ ];
+ const argv = { _: [], cmd: 'init' };
+ _filter(questions, argv);
+ const _2 = filter(questions, argv);
+ expect(_2).toEqual([
+ {
+ name: 'name',
+ message: 'project name (e.g., flipr)',
+ required: true,
+ },
+ ]);
+ expect(argv).toEqual({ _: [], cmd: 'init' };);
+ });
+});
+describe('prompt', () => {
+ it('empty when all args supplied', async () => {
+ const questions = [
+ {
+ name: 'hello',
+ message: '',
+ },
+ {
+ name: 'world',
+ message: '',
+ },
+ ];
+ const argv = {
+ hello: 1,
+ world: 2,
+ };
+
+ const value = await prompt(questions, argv);
+ expect(value).toEqual({
+ hello: 1,
+ world: 2,
+ });
+ });
+ it('empty when all args supplied', async () => {
+ const questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ {
+ name: 'bar',
+ message: '',
+ },
+ {
+ _: true,
+ name: 'baz',
+ message: '',
+ },
+ ];
+ const argv = {
+ _: [1, 3],
+ bar: 2,
+ };
+ const value = await prompt(questions, argv);
+ expect(argv).toEqual({
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+ });
+ expect(value).toEqual({
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+ });
+ });
+
+ it('basic example', async () => {
+ const questions = [
+ {
+ name: 'name',
+ message: 'project name (e.g., flipr)',
+ required: true,
+ },
+ ];
+ const argv = { _: [], cmd: 'init' };
+ const value = await prompt(questions, argv);
+ console.log(value);
+ });
+
+ xit('init example', async () => {
+ const questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ ];
+ const argv = {
+ _: [],
+ bar: 2,
+ };
+ const value = await prompt(questions, argv);
+ console.log(value);
+ });
+});
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..048dca5
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "moduleResolution": "node",
+ "target": "es5",
+ "module": "umd",
+ "lib": ["es2015", "es2016", "es2017", "dom"],
+ "strict": true,
+ "sourceMap": true,
+ "declaration": true,
+ "allowSyntheticDefaultImports": true,
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true,
+ "declarationDir": "build/types",
+ "outDir": "build",
+ "typeRoots": ["node_modules/@types"]
+ },
+ "include": ["/"]
+}
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..9c83533
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,3301 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0-beta.35":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6"
+ dependencies:
+ "@babel/highlight" "7.0.0-beta.40"
+
+"@babel/highlight@7.0.0-beta.40":
+ version "7.0.0-beta.40"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255"
+ dependencies:
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^3.0.0"
+
+"@types/jest@^21.1.0":
+ version "21.1.10"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-21.1.10.tgz#dcacb5217ddf997a090cc822bba219b4b2fd7984"
+
+"@types/node@^8.0.0":
+ version "8.9.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.9.4.tgz#dfd327582a06c114eb6e0441fa3d6fab35edad48"
+
+abab@^1.0.3, abab@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+
+acorn-globals@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
+ dependencies:
+ acorn "^4.0.4"
+
+acorn-globals@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538"
+ dependencies:
+ acorn "^5.0.0"
+
+acorn@^4.0.4:
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
+
+acorn@^5.0.0, acorn@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.0.tgz#1abb587fbf051f94e3de20e6b26ef910b1828298"
+
+ajv@^4.9.1:
+ version "4.11.8"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ dependencies:
+ co "^4.6.0"
+ json-stable-stringify "^1.0.1"
+
+ajv@^5.1.0:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ansi-escapes@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b"
+
+ansi-escapes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ansi-styles@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
+ dependencies:
+ color-convert "^1.9.0"
+
+anymatch@^1.3.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
+ dependencies:
+ micromatch "^2.1.5"
+ normalize-path "^2.0.0"
+
+append-transform@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ dependencies:
+ default-require-extensions "^1.0.0"
+
+aproba@^1.0.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+
+are-we-there-yet@~1.1.2:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^2.0.6"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+arr-diff@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ dependencies:
+ arr-flatten "^1.0.1"
+
+arr-flatten@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+
+array-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+
+array-filter@~0.0.0:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+
+array-map@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
+
+array-reduce@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
+
+array-unique@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+
+arrify@^1.0.0, arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+asn1@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+assert-plus@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+
+astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+
+async-each@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+
+async-limiter@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+
+async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+async@^2.1.4:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
+ dependencies:
+ lodash "^4.14.0"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+aws-sign2@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.2.1, aws4@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+
+babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+babel-core@^6.0.0, babel-core@^6.24.1, babel-core@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-generator "^6.26.0"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.26.0"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ convert-source-map "^1.5.0"
+ debug "^2.6.8"
+ json5 "^0.5.1"
+ lodash "^4.17.4"
+ minimatch "^3.0.4"
+ path-is-absolute "^1.0.1"
+ private "^0.1.7"
+ slash "^1.0.0"
+ source-map "^0.5.6"
+
+babel-generator@^6.18.0, babel-generator@^6.26.0:
+ version "6.26.1"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.17.4"
+ source-map "^0.5.7"
+ trim-right "^1.0.1"
+
+babel-helpers@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-jest@^22.4.1:
+ version "22.4.1"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.1.tgz#ff53ebca45957347f27ff4666a31499fbb4c4ddd"
+ dependencies:
+ babel-plugin-istanbul "^4.1.5"
+ babel-preset-jest "^22.4.1"
+
+babel-messages@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-istanbul@^4.1.4, babel-plugin-istanbul@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e"
+ dependencies:
+ find-up "^2.1.0"
+ istanbul-lib-instrument "^1.7.5"
+ test-exclude "^4.1.1"
+
+babel-plugin-jest-hoist@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006"
+
+babel-plugin-jest-hoist@^22.4.1:
+ version "22.4.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.1.tgz#d712fe5da8b6965f3191dacddbefdbdf4fb66d63"
+
+babel-plugin-syntax-object-rest-spread@^6.13.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
+
+babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
+ dependencies:
+ babel-plugin-transform-strict-mode "^6.24.1"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-types "^6.26.0"
+
+babel-plugin-transform-strict-mode@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+
+babel-preset-jest@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638"
+ dependencies:
+ babel-plugin-jest-hoist "^21.2.0"
+ babel-plugin-syntax-object-rest-spread "^6.13.0"
+
+babel-preset-jest@^22.4.1:
+ version "22.4.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.1.tgz#efa2e5f5334242a9457a068452d7d09735db172a"
+ dependencies:
+ babel-plugin-jest-hoist "^22.4.1"
+ babel-plugin-syntax-object-rest-spread "^6.13.0"
+
+babel-register@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
+ dependencies:
+ babel-core "^6.26.0"
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ home-or-tmp "^2.0.0"
+ lodash "^4.17.4"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.15"
+
+babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
+babel-traverse@^6.18.0, babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
+babel-types@^6.18.0, babel-types@^6.24.1, babel-types@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ dependencies:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
+babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+binary-extensions@^1.0.0:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
+
+block-stream@*:
+ version "0.0.9"
+ resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+ dependencies:
+ inherits "~2.0.0"
+
+boom@2.x.x:
+ version "2.10.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
+ dependencies:
+ hoek "2.x.x"
+
+boom@4.x.x:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ dependencies:
+ hoek "4.x.x"
+
+boom@5.x.x:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ dependencies:
+ hoek "4.x.x"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^1.8.2:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ dependencies:
+ expand-range "^1.8.1"
+ preserve "^0.2.0"
+ repeat-element "^1.1.2"
+
+browser-process-hrtime@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e"
+
+browser-resolve@^1.11.2:
+ version "1.11.2"
+ resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
+ dependencies:
+ resolve "1.1.7"
+
+bser@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
+ dependencies:
+ node-int64 "^0.4.0"
+
+builtin-modules@^1.0.0, builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chalk@^1.0.0, chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796"
+ dependencies:
+ ansi-styles "^3.2.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.2.0"
+
+chardet@^0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+
+chokidar@^1.6.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
+ dependencies:
+ anymatch "^1.3.0"
+ async-each "^1.0.0"
+ glob-parent "^2.0.0"
+ inherits "^2.0.1"
+ is-binary-path "^1.0.0"
+ is-glob "^2.0.0"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.0.0"
+ optionalDependencies:
+ fsevents "^1.0.0"
+
+ci-info@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4"
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+cliui@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+color-convert@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
+ dependencies:
+ color-name "^1.1.1"
+
+color-name@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
+colors@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+
+combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@^2.12.1:
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+
+content-type-parser@^1.0.1, content-type-parser@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7"
+
+convert-source-map@^1.4.0, convert-source-map@^1.5.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+
+core-js@^2.4.0, core-js@^2.5.0:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e"
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+cpx@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/cpx/-/cpx-1.5.0.tgz#185be018511d87270dedccc293171e37655ab88f"
+ dependencies:
+ babel-runtime "^6.9.2"
+ chokidar "^1.6.0"
+ duplexer "^0.1.1"
+ glob "^7.0.5"
+ glob2base "^0.0.12"
+ minimatch "^3.0.2"
+ mkdirp "^0.5.1"
+ resolve "^1.1.7"
+ safe-buffer "^5.0.1"
+ shell-quote "^1.6.1"
+ subarg "^1.0.0"
+
+cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cryptiles@2.x.x:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
+ dependencies:
+ boom "2.x.x"
+
+cryptiles@3.x.x:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ dependencies:
+ boom "5.x.x"
+
+cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
+
+"cssstyle@>= 0.2.37 < 0.3.0":
+ version "0.2.37"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
+ dependencies:
+ cssom "0.3.x"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+debug@^2.2.0, debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.0.0, decamelize@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+deep-extend@~0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+
+default-require-extensions@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ dependencies:
+ strip-bom "^2.0.0"
+
+define-properties@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
+ dependencies:
+ foreach "^2.0.5"
+ object-keys "^1.0.8"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+
+detect-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ dependencies:
+ repeating "^2.0.0"
+
+detect-libc@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+
+detect-newline@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
+
+diff@^3.1.0, diff@^3.2.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c"
+
+domexception@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
+ dependencies:
+ webidl-conversions "^4.0.2"
+
+duplexer@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ dependencies:
+ jsbn "~0.1.0"
+
+error-ex@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-abstract@^1.5.1:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
+ dependencies:
+ es-to-primitive "^1.1.1"
+ function-bind "^1.1.1"
+ has "^1.0.1"
+ is-callable "^1.1.3"
+ is-regex "^1.0.4"
+
+es-to-primitive@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
+ dependencies:
+ is-callable "^1.1.1"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.1"
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+escodegen@^1.6.1, escodegen@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2"
+ dependencies:
+ esprima "^3.1.3"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+esprima@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+
+esprima@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+estraverse@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+exec-sh@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38"
+ dependencies:
+ merge "^1.1.3"
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+
+expand-brackets@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ dependencies:
+ is-posix-bracket "^0.1.0"
+
+expand-range@^1.8.1:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ dependencies:
+ fill-range "^2.1.0"
+
+expect@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b"
+ dependencies:
+ ansi-styles "^3.2.0"
+ jest-diff "^21.2.1"
+ jest-get-type "^21.2.0"
+ jest-matcher-utils "^21.2.1"
+ jest-message-util "^21.2.1"
+ jest-regex-util "^21.2.0"
+
+expect@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.0.tgz#371edf1ae15b83b5bf5ec34b42f1584660a36c16"
+ dependencies:
+ ansi-styles "^3.2.0"
+ jest-diff "^22.4.0"
+ jest-get-type "^22.1.0"
+ jest-matcher-utils "^22.4.0"
+ jest-message-util "^22.4.0"
+ jest-regex-util "^22.1.0"
+
+extend@~3.0.0, extend@~3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+external-editor@^2.0.4:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48"
+ dependencies:
+ chardet "^0.4.0"
+ iconv-lite "^0.4.17"
+ tmp "^0.0.33"
+
+extglob@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ dependencies:
+ is-extglob "^1.0.0"
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+
+fast-deep-equal@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
+fb-watchman@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
+ dependencies:
+ bser "^2.0.0"
+
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+
+fileset@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
+ dependencies:
+ glob "^7.0.3"
+ minimatch "^3.0.3"
+
+fill-range@^2.1.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
+ dependencies:
+ is-number "^2.1.0"
+ isobject "^2.0.0"
+ randomatic "^1.1.3"
+ repeat-element "^1.1.2"
+ repeat-string "^1.5.2"
+
+find-index@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+for-in@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+
+for-own@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ dependencies:
+ for-in "^1.0.1"
+
+foreach@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.1.1:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+form-data@~2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "1.0.6"
+ mime-types "^2.1.12"
+
+fs-extra@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+fsevents@^1.0.0, fsevents@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
+ dependencies:
+ nan "^2.3.0"
+ node-pre-gyp "^0.6.39"
+
+fstream-ignore@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
+ dependencies:
+ fstream "^1.0.0"
+ inherits "2"
+ minimatch "^3.0.0"
+
+fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
+ dependencies:
+ graceful-fs "^4.1.2"
+ inherits "~2.0.0"
+ mkdirp ">=0.5 0"
+ rimraf "2"
+
+function-bind@^1.0.2, function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+
+gauge@~2.7.3:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ dependencies:
+ aproba "^1.0.3"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.0"
+ object-assign "^4.1.0"
+ signal-exit "^3.0.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wide-align "^1.1.0"
+
+get-caller-file@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ dependencies:
+ assert-plus "^1.0.0"
+
+glob-base@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ dependencies:
+ glob-parent "^2.0.0"
+ is-glob "^2.0.0"
+
+glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ dependencies:
+ is-glob "^2.0.0"
+
+glob2base@^0.0.12:
+ version "0.0.12"
+ resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
+ dependencies:
+ find-index "^0.1.1"
+
+glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ 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"
+
+globals@^9.18.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+growly@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
+
+handlebars@^4.0.3:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ dependencies:
+ async "^1.4.0"
+ optimist "^0.6.1"
+ source-map "^0.4.4"
+ optionalDependencies:
+ uglify-js "^2.6"
+
+har-schema@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+har-validator@~4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
+ dependencies:
+ ajv "^4.9.1"
+ har-schema "^1.0.5"
+
+har-validator@~5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ dependencies:
+ ajv "^5.1.0"
+ har-schema "^2.0.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
+has-unicode@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+
+has@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+ dependencies:
+ function-bind "^1.0.2"
+
+hawk@3.1.3, hawk@~3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
+ dependencies:
+ boom "2.x.x"
+ cryptiles "2.x.x"
+ hoek "2.x.x"
+ sntp "1.x.x"
+
+hawk@~6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ dependencies:
+ boom "4.x.x"
+ cryptiles "3.x.x"
+ hoek "4.x.x"
+ sntp "2.x.x"
+
+hoek@2.x.x:
+ version "2.16.3"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+
+hoek@4.x.x:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
+
+home-or-tmp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.1"
+
+hosted-git-info@^2.1.4:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
+
+html-encoding-sniffer@^1.0.1, html-encoding-sniffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
+ dependencies:
+ whatwg-encoding "^1.0.1"
+
+http-signature@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
+ dependencies:
+ assert-plus "^0.2.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+iconv-lite@0.4.19, iconv-lite@^0.4.17:
+ version "0.4.19"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+
+import-local@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
+ dependencies:
+ pkg-dir "^2.0.0"
+ resolve-cwd "^2.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+inherits@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+
+ini@~1.3.0:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+
+inquirer-autocomplete-prompt@^0.11.1:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-0.11.1.tgz#f90ca9510a4c489882e9be294934bd8c2e575e09"
+ dependencies:
+ ansi-escapes "^2.0.0"
+ chalk "^1.1.3"
+ figures "^2.0.0"
+ inquirer "3.1.1"
+ lodash "^4.17.4"
+ run-async "^2.3.0"
+ util "^0.10.3"
+
+inquirer@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.1.1.tgz#87621c4fba4072f48a8dd71c9f9df6f100b2d534"
+ dependencies:
+ ansi-escapes "^2.0.0"
+ chalk "^1.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.0.0"
+ strip-ansi "^3.0.0"
+ through "^2.3.6"
+
+inquirer@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
+invariant@^2.2.2:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688"
+ dependencies:
+ loose-envify "^1.0.0"
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-binary-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ dependencies:
+ binary-extensions "^1.0.0"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+is-callable@^1.1.1, is-callable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
+
+is-ci@^1.0.10:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5"
+ dependencies:
+ ci-info "^1.0.0"
+
+is-date-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+
+is-dotfile@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+
+is-equal-shallow@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ dependencies:
+ is-primitive "^2.0.0"
+
+is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+
+is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+
+is-finite@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+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"
+
+is-generator-fn@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a"
+
+is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ dependencies:
+ is-extglob "^1.0.0"
+
+is-number@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-posix-bracket@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+
+is-primitive@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+
+is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+
+is-regex@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ dependencies:
+ has "^1.0.1"
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-symbol@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+isarray@1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ dependencies:
+ isarray "1.0.0"
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+istanbul-api@^1.1.14:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.2.tgz#e17cd519dd5ec4141197f246fdf380b75487f3b1"
+ dependencies:
+ async "^2.1.4"
+ fileset "^2.0.2"
+ istanbul-lib-coverage "^1.1.2"
+ istanbul-lib-hook "^1.1.0"
+ istanbul-lib-instrument "^1.9.2"
+ istanbul-lib-report "^1.1.3"
+ istanbul-lib-source-maps "^1.2.3"
+ istanbul-reports "^1.1.4"
+ js-yaml "^3.7.0"
+ mkdirp "^0.5.1"
+ once "^1.4.0"
+
+istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz#4113c8ff6b7a40a1ef7350b01016331f63afde14"
+
+istanbul-lib-hook@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
+ dependencies:
+ append-transform "^0.4.0"
+
+istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.2:
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz#84905bf47f7e0b401d6b840da7bad67086b4aab6"
+ dependencies:
+ babel-generator "^6.18.0"
+ babel-template "^6.16.0"
+ babel-traverse "^6.18.0"
+ babel-types "^6.18.0"
+ babylon "^6.18.0"
+ istanbul-lib-coverage "^1.1.2"
+ semver "^5.3.0"
+
+istanbul-lib-report@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259"
+ dependencies:
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ path-parse "^1.0.5"
+ supports-color "^3.1.2"
+
+istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
+ dependencies:
+ debug "^3.1.0"
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+istanbul-reports@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.4.tgz#5ccba5e22b7b5a5d91d5e0a830f89be334bf97bd"
+ dependencies:
+ handlebars "^4.0.3"
+
+jest-changed-files@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.2.0.tgz#517610c4a8ca0925bdc88b0ca53bd678aa8d019e"
+ dependencies:
+ throat "^4.0.0"
+
+jest-cli@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.2.tgz#e6546dc651e13d164481aa3e76e53ac4f4edab06"
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ graceful-fs "^4.1.11"
+ import-local "^1.0.0"
+ is-ci "^1.0.10"
+ istanbul-api "^1.1.14"
+ istanbul-lib-coverage "^1.1.1"
+ istanbul-lib-instrument "^1.8.0"
+ istanbul-lib-source-maps "^1.2.1"
+ jest-changed-files "^22.2.0"
+ jest-config "^22.4.2"
+ jest-environment-jsdom "^22.4.1"
+ jest-get-type "^22.1.0"
+ jest-haste-map "^22.4.2"
+ jest-message-util "^22.4.0"
+ jest-regex-util "^22.1.0"
+ jest-resolve-dependencies "^22.1.0"
+ jest-runner "^22.4.2"
+ jest-runtime "^22.4.2"
+ jest-snapshot "^22.4.0"
+ jest-util "^22.4.1"
+ jest-validate "^22.4.2"
+ jest-worker "^22.2.2"
+ micromatch "^2.3.11"
+ node-notifier "^5.2.1"
+ realpath-native "^1.0.0"
+ rimraf "^2.5.4"
+ slash "^1.0.0"
+ string-length "^2.0.0"
+ strip-ansi "^4.0.0"
+ which "^1.2.12"
+ yargs "^10.0.3"
+
+jest-config@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480"
+ dependencies:
+ chalk "^2.0.1"
+ glob "^7.1.1"
+ jest-environment-jsdom "^21.2.1"
+ jest-environment-node "^21.2.1"
+ jest-get-type "^21.2.0"
+ jest-jasmine2 "^21.2.1"
+ jest-regex-util "^21.2.0"
+ jest-resolve "^21.2.0"
+ jest-util "^21.2.1"
+ jest-validate "^21.2.1"
+ pretty-format "^21.2.1"
+
+jest-config@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.2.tgz#580ba5819bf81a5e48f4fd470e8b81834f45c855"
+ dependencies:
+ chalk "^2.0.1"
+ glob "^7.1.1"
+ jest-environment-jsdom "^22.4.1"
+ jest-environment-node "^22.4.1"
+ jest-get-type "^22.1.0"
+ jest-jasmine2 "^22.4.2"
+ jest-regex-util "^22.1.0"
+ jest-resolve "^22.4.2"
+ jest-util "^22.4.1"
+ jest-validate "^22.4.2"
+ pretty-format "^22.4.0"
+
+jest-diff@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f"
+ dependencies:
+ chalk "^2.0.1"
+ diff "^3.2.0"
+ jest-get-type "^21.2.0"
+ pretty-format "^21.2.1"
+
+jest-diff@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.0.tgz#384c2b78519ca44ca126382df53f134289232525"
+ dependencies:
+ chalk "^2.0.1"
+ diff "^3.2.0"
+ jest-get-type "^22.1.0"
+ pretty-format "^22.4.0"
+
+jest-docblock@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8"
+ dependencies:
+ detect-newline "^2.1.0"
+
+jest-environment-jsdom@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4"
+ dependencies:
+ jest-mock "^21.2.0"
+ jest-util "^21.2.1"
+ jsdom "^9.12.0"
+
+jest-environment-jsdom@^22.4.1:
+ version "22.4.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.4.1.tgz#754f408872441740100d3917e5ec40c74de6447f"
+ dependencies:
+ jest-mock "^22.2.0"
+ jest-util "^22.4.1"
+ jsdom "^11.5.1"
+
+jest-environment-node@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8"
+ dependencies:
+ jest-mock "^21.2.0"
+ jest-util "^21.2.1"
+
+jest-environment-node@^22.4.1:
+ version "22.4.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.4.1.tgz#418850eb654596b8d6e36c2021cbedbc23df8e16"
+ dependencies:
+ jest-mock "^22.2.0"
+ jest-util "^22.4.1"
+
+jest-get-type@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23"
+
+jest-get-type@^22.1.0:
+ version "22.1.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9"
+
+jest-haste-map@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4"
+ dependencies:
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.1.11"
+ jest-docblock "^22.4.0"
+ jest-serializer "^22.4.0"
+ jest-worker "^22.2.2"
+ micromatch "^2.3.11"
+ sane "^2.0.0"
+
+jest-jasmine2@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592"
+ dependencies:
+ chalk "^2.0.1"
+ expect "^21.2.1"
+ graceful-fs "^4.1.11"
+ jest-diff "^21.2.1"
+ jest-matcher-utils "^21.2.1"
+ jest-message-util "^21.2.1"
+ jest-snapshot "^21.2.1"
+ p-cancelable "^0.3.0"
+
+jest-jasmine2@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz#dfd3d259579ed6f52510d8f1ab692808f0d40691"
+ dependencies:
+ chalk "^2.0.1"
+ co "^4.6.0"
+ expect "^22.4.0"
+ graceful-fs "^4.1.11"
+ is-generator-fn "^1.0.0"
+ jest-diff "^22.4.0"
+ jest-matcher-utils "^22.4.0"
+ jest-message-util "^22.4.0"
+ jest-snapshot "^22.4.0"
+ jest-util "^22.4.1"
+ source-map-support "^0.5.0"
+
+jest-leak-detector@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.0.tgz#64da77f05b001c96d2062226e079f89989c4aa2f"
+ dependencies:
+ pretty-format "^22.4.0"
+
+jest-matcher-utils@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64"
+ dependencies:
+ chalk "^2.0.1"
+ jest-get-type "^21.2.0"
+ pretty-format "^21.2.1"
+
+jest-matcher-utils@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz#d55f5faf2270462736bdf7c7485ee931c9d4b6a1"
+ dependencies:
+ chalk "^2.0.1"
+ jest-get-type "^22.1.0"
+ pretty-format "^22.4.0"
+
+jest-message-util@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe"
+ dependencies:
+ chalk "^2.0.1"
+ micromatch "^2.3.11"
+ slash "^1.0.0"
+
+jest-message-util@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.4.0.tgz#e3d861df16d2fee60cb2bc8feac2188a42579642"
+ dependencies:
+ "@babel/code-frame" "^7.0.0-beta.35"
+ chalk "^2.0.1"
+ micromatch "^2.3.11"
+ slash "^1.0.0"
+ stack-utils "^1.0.1"
+
+jest-mock@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f"
+
+jest-mock@^22.2.0:
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.2.0.tgz#444b3f9488a7473adae09bc8a77294afded397a7"
+
+jest-regex-util@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530"
+
+jest-regex-util@^22.1.0:
+ version "22.1.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.1.0.tgz#5daf2fe270074b6da63e5d85f1c9acc866768f53"
+
+jest-resolve-dependencies@^22.1.0:
+ version "22.1.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz#340e4139fb13315cd43abc054e6c06136be51e31"
+ dependencies:
+ jest-regex-util "^22.1.0"
+
+jest-resolve@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6"
+ dependencies:
+ browser-resolve "^1.11.2"
+ chalk "^2.0.1"
+ is-builtin-module "^1.0.0"
+
+jest-resolve@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.2.tgz#25d88aa4147462c9c1c6a1ba16250d3794c24d00"
+ dependencies:
+ browser-resolve "^1.11.2"
+ chalk "^2.0.1"
+
+jest-runner@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.2.tgz#19390ea9d99f768973e16f95a1efa351c0017e87"
+ dependencies:
+ exit "^0.1.2"
+ jest-config "^22.4.2"
+ jest-docblock "^22.4.0"
+ jest-haste-map "^22.4.2"
+ jest-jasmine2 "^22.4.2"
+ jest-leak-detector "^22.4.0"
+ jest-message-util "^22.4.0"
+ jest-runtime "^22.4.2"
+ jest-util "^22.4.1"
+ jest-worker "^22.2.2"
+ throat "^4.0.0"
+
+jest-runtime@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.2.tgz#0de0444f65ce15ee4f2e0055133fc7c17b9168f3"
+ dependencies:
+ babel-core "^6.0.0"
+ babel-jest "^22.4.1"
+ babel-plugin-istanbul "^4.1.5"
+ chalk "^2.0.1"
+ convert-source-map "^1.4.0"
+ exit "^0.1.2"
+ graceful-fs "^4.1.11"
+ jest-config "^22.4.2"
+ jest-haste-map "^22.4.2"
+ jest-regex-util "^22.1.0"
+ jest-resolve "^22.4.2"
+ jest-util "^22.4.1"
+ jest-validate "^22.4.2"
+ json-stable-stringify "^1.0.1"
+ micromatch "^2.3.11"
+ realpath-native "^1.0.0"
+ slash "^1.0.0"
+ strip-bom "3.0.0"
+ write-file-atomic "^2.1.0"
+ yargs "^10.0.3"
+
+jest-serializer@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.0.tgz#b5d145b98c4b0d2c20ab686609adbb81fe23b566"
+
+jest-snapshot@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0"
+ dependencies:
+ chalk "^2.0.1"
+ jest-diff "^21.2.1"
+ jest-matcher-utils "^21.2.1"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ pretty-format "^21.2.1"
+
+jest-snapshot@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.0.tgz#03d3ce63f8fa7352388afc6a3c8b5ccc3a180ed7"
+ dependencies:
+ chalk "^2.0.1"
+ jest-diff "^22.4.0"
+ jest-matcher-utils "^22.4.0"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ pretty-format "^22.4.0"
+
+jest-util@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78"
+ dependencies:
+ callsites "^2.0.0"
+ chalk "^2.0.1"
+ graceful-fs "^4.1.11"
+ jest-message-util "^21.2.1"
+ jest-mock "^21.2.0"
+ jest-validate "^21.2.1"
+ mkdirp "^0.5.1"
+
+jest-util@^22.4.1:
+ version "22.4.1"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.1.tgz#dd17c3bdb067f8e90591563ec0c42bf847dc249f"
+ dependencies:
+ callsites "^2.0.0"
+ chalk "^2.0.1"
+ graceful-fs "^4.1.11"
+ is-ci "^1.0.10"
+ jest-message-util "^22.4.0"
+ mkdirp "^0.5.1"
+ source-map "^0.6.0"
+
+jest-validate@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7"
+ dependencies:
+ chalk "^2.0.1"
+ jest-get-type "^21.2.0"
+ leven "^2.1.0"
+ pretty-format "^21.2.1"
+
+jest-validate@^22.4.2:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.2.tgz#e789a4e056173bf97fe797a2df2d52105c57d4f4"
+ dependencies:
+ chalk "^2.0.1"
+ jest-config "^22.4.2"
+ jest-get-type "^22.1.0"
+ leven "^2.1.0"
+ pretty-format "^22.4.0"
+
+jest-worker@^22.2.2:
+ version "22.2.2"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390"
+ dependencies:
+ merge-stream "^1.0.1"
+
+jest@^22.4.0:
+ version "22.4.2"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.2.tgz#34012834a49bf1bdd3bc783850ab44e4499afc20"
+ dependencies:
+ import-local "^1.0.0"
+ jest-cli "^22.4.2"
+
+js-tokens@^3.0.0, js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+
+js-yaml@^3.7.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+jsdom@^11.5.1:
+ version "11.6.2"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.6.2.tgz#25d1ef332d48adf77fc5221fe2619967923f16bb"
+ dependencies:
+ abab "^1.0.4"
+ acorn "^5.3.0"
+ acorn-globals "^4.1.0"
+ array-equal "^1.0.0"
+ browser-process-hrtime "^0.1.2"
+ content-type-parser "^1.0.2"
+ cssom ">= 0.3.2 < 0.4.0"
+ cssstyle ">= 0.2.37 < 0.3.0"
+ domexception "^1.0.0"
+ escodegen "^1.9.0"
+ html-encoding-sniffer "^1.0.2"
+ left-pad "^1.2.0"
+ nwmatcher "^1.4.3"
+ parse5 "4.0.0"
+ pn "^1.1.0"
+ request "^2.83.0"
+ request-promise-native "^1.0.5"
+ sax "^1.2.4"
+ symbol-tree "^3.2.2"
+ tough-cookie "^2.3.3"
+ w3c-hr-time "^1.0.1"
+ webidl-conversions "^4.0.2"
+ whatwg-encoding "^1.0.3"
+ whatwg-url "^6.4.0"
+ ws "^4.0.0"
+ xml-name-validator "^3.0.0"
+
+jsdom@^9.12.0:
+ version "9.12.0"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4"
+ dependencies:
+ abab "^1.0.3"
+ acorn "^4.0.4"
+ acorn-globals "^3.1.0"
+ array-equal "^1.0.0"
+ content-type-parser "^1.0.1"
+ cssom ">= 0.3.2 < 0.4.0"
+ cssstyle ">= 0.2.37 < 0.3.0"
+ escodegen "^1.6.1"
+ html-encoding-sniffer "^1.0.1"
+ nwmatcher ">= 1.3.9 < 2.0.0"
+ parse5 "^1.5.1"
+ request "^2.79.0"
+ sax "^1.2.1"
+ symbol-tree "^3.2.1"
+ tough-cookie "^2.3.2"
+ webidl-conversions "^4.0.0"
+ whatwg-encoding "^1.0.1"
+ whatwg-url "^4.3.0"
+ xml-name-validator "^2.0.1"
+
+jsesc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stable-stringify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ dependencies:
+ jsonify "~0.0.0"
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+json5@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonify@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+
+jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+kind-of@^3.0.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ dependencies:
+ is-buffer "^1.1.5"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ dependencies:
+ invert-kv "^1.0.0"
+
+left-pad@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee"
+
+leven@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+
+lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+loose-envify@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ dependencies:
+ js-tokens "^3.0.0"
+
+lru-cache@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+make-error@^1.1.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535"
+
+makeerror@1.0.x:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
+ dependencies:
+ tmpl "1.0.x"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+merge-stream@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
+ dependencies:
+ readable-stream "^2.0.1"
+
+merge@^1.1.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
+
+micromatch@^2.1.5, micromatch@^2.3.11:
+ version "2.3.11"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ dependencies:
+ arr-diff "^2.0.0"
+ array-unique "^0.2.1"
+ braces "^1.8.2"
+ expand-brackets "^0.1.4"
+ extglob "^0.3.1"
+ filename-regex "^2.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.1"
+ kind-of "^3.0.2"
+ normalize-path "^2.0.1"
+ object.omit "^2.0.0"
+ parse-glob "^3.0.4"
+ regex-cache "^0.4.2"
+
+mime-db@~1.33.0:
+ version "1.33.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
+
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
+ version "2.1.18"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
+ dependencies:
+ mime-db "~1.33.0"
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+
+minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+minimist@~0.0.1:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+
+"mkdirp@>=0.5 0", mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+
+nan@^2.3.0:
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+
+node-notifier@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
+ dependencies:
+ growly "^1.3.0"
+ semver "^5.4.1"
+ shellwords "^0.1.1"
+ which "^1.3.0"
+
+node-pre-gyp@^0.6.39:
+ version "0.6.39"
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
+ dependencies:
+ detect-libc "^1.0.2"
+ hawk "3.1.3"
+ mkdirp "^0.5.1"
+ nopt "^4.0.1"
+ npmlog "^4.0.2"
+ rc "^1.1.7"
+ request "2.81.0"
+ rimraf "^2.6.1"
+ semver "^5.3.0"
+ tar "^2.2.1"
+ tar-pack "^3.4.0"
+
+nopt@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+ dependencies:
+ abbrev "1"
+ osenv "^0.1.4"
+
+normalize-package-data@^2.3.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.0.0, normalize-path@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+npmlog@^4.0.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+"nwmatcher@>= 1.3.9 < 2.0.0", nwmatcher@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c"
+
+oauth-sign@~0.8.1, oauth-sign@~0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+object-keys@^1.0.8:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+
+object.getownpropertydescriptors@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.5.1"
+
+object.omit@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ dependencies:
+ for-own "^0.1.4"
+ is-extendable "^0.1.1"
+
+once@^1.3.0, once@^1.3.3, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+optionator@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.4"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ wordwrap "~1.0.0"
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+
+osenv@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.0"
+
+p-cancelable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-limit@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
+ dependencies:
+ p-try "^1.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+
+parse-glob@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ dependencies:
+ glob-base "^0.3.0"
+ is-dotfile "^1.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.0"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+parse5@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
+
+parse5@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+performance-now@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ dependencies:
+ find-up "^2.1.0"
+
+pn@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+
+preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+
+pretty-format@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36"
+ dependencies:
+ ansi-regex "^3.0.0"
+ ansi-styles "^3.2.0"
+
+pretty-format@^22.4.0:
+ version "22.4.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.0.tgz#237b1f7e1c50ed03bc65c03ccc29d7c8bb7beb94"
+ dependencies:
+ ansi-regex "^3.0.0"
+ ansi-styles "^3.2.0"
+
+private@^0.1.7:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+
+process-nextick-args@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+punycode@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
+
+qs@~6.4.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
+
+qs@~6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+randomatic@^1.1.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+rc@^1.1.7:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd"
+ dependencies:
+ deep-extend "~0.4.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.0.3"
+ util-deprecate "~1.0.1"
+
+readdirp@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
+ dependencies:
+ graceful-fs "^4.1.2"
+ minimatch "^3.0.2"
+ readable-stream "^2.0.2"
+ set-immediate-shim "^1.0.1"
+
+realpath-native@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0"
+ dependencies:
+ util.promisify "^1.0.0"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+
+regex-cache@^0.4.2:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ dependencies:
+ is-equal-shallow "^0.1.3"
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+
+repeat-element@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+
+repeat-string@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+request-promise-core@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
+ dependencies:
+ lodash "^4.13.1"
+
+request-promise-native@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5"
+ dependencies:
+ request-promise-core "1.1.1"
+ stealthy-require "^1.1.0"
+ tough-cookie ">=2.3.3"
+
+request@2.81.0:
+ version "2.81.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
+ dependencies:
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
+ forever-agent "~0.6.1"
+ form-data "~2.1.1"
+ har-validator "~4.2.1"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.7"
+ oauth-sign "~0.8.1"
+ performance-now "^0.2.0"
+ qs "~6.4.0"
+ safe-buffer "^5.0.1"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.0.0"
+
+request@^2.79.0, request@^2.83.0:
+ version "2.83.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.6.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.1"
+ forever-agent "~0.6.1"
+ form-data "~2.3.1"
+ har-validator "~5.0.3"
+ hawk "~6.0.2"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.17"
+ oauth-sign "~0.8.2"
+ performance-now "^2.1.0"
+ qs "~6.5.1"
+ safe-buffer "^5.1.1"
+ stringstream "~0.0.5"
+ tough-cookie "~2.3.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.1.0"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+resolve-cwd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ dependencies:
+ resolve-from "^3.0.0"
+
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+
+resolve@1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
+resolve@^1.1.7, resolve@^1.3.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
+ dependencies:
+ path-parse "^1.0.5"
+
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@2, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ dependencies:
+ glob "^7.0.5"
+
+run-async@^2.2.0, run-async@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+ dependencies:
+ is-promise "^2.1.0"
+
+rx-lite-aggregates@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
+ dependencies:
+ rx-lite "*"
+
+rx-lite@*, rx-lite@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+sane@^2.0.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-2.4.1.tgz#29f991208cf28636720efdc584293e7fd66663a5"
+ dependencies:
+ anymatch "^1.3.0"
+ exec-sh "^0.2.0"
+ fb-watchman "^2.0.0"
+ minimatch "^3.0.2"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+ watch "~0.18.0"
+ optionalDependencies:
+ fsevents "^1.1.1"
+
+sax@^1.2.1, sax@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+
+set-blocking@^2.0.0, set-blocking@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+set-immediate-shim@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+shell-quote@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
+ dependencies:
+ array-filter "~0.0.0"
+ array-map "~0.0.0"
+ array-reduce "~0.0.0"
+ jsonify "~0.0.0"
+
+shellwords@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+slash@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+
+sntp@1.x.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
+ dependencies:
+ hoek "2.x.x"
+
+sntp@2.x.x:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+ dependencies:
+ hoek "4.x.x"
+
+source-map-support@^0.4.15:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+ dependencies:
+ source-map "^0.5.6"
+
+source-map-support@^0.5.0, source-map-support@^0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76"
+ dependencies:
+ source-map "^0.6.0"
+
+source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+source-map@^0.6.0, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
+spdx-correct@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ dashdash "^1.12.0"
+ getpass "^0.1.1"
+ optionalDependencies:
+ bcrypt-pbkdf "^1.0.0"
+ ecc-jsbn "~0.1.1"
+ jsbn "~0.1.0"
+ tweetnacl "~0.14.0"
+
+stack-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
+
+stealthy-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
+
+string-length@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
+ dependencies:
+ astral-regex "^1.0.0"
+ strip-ansi "^4.0.0"
+
+string-width@^1.0.1, string-width@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+stringstream@~0.0.4, stringstream@~0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-bom@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ dependencies:
+ is-utf8 "^0.2.0"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+subarg@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
+ dependencies:
+ minimist "^1.1.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+supports-color@^3.1.2:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a"
+ dependencies:
+ has-flag "^3.0.0"
+
+symbol-tree@^3.2.1, symbol-tree@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
+
+tar-pack@^3.4.0:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
+ dependencies:
+ debug "^2.2.0"
+ fstream "^1.0.10"
+ fstream-ignore "^1.0.5"
+ once "^1.3.3"
+ readable-stream "^2.1.4"
+ rimraf "^2.5.1"
+ tar "^2.2.1"
+ uid-number "^0.0.6"
+
+tar@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
+ dependencies:
+ block-stream "*"
+ fstream "^1.0.2"
+ inherits "2"
+
+test-exclude@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.0.tgz#07e3613609a362c74516a717515e13322ab45b3c"
+ dependencies:
+ arrify "^1.0.1"
+ micromatch "^2.3.11"
+ object-assign "^4.1.0"
+ read-pkg-up "^1.0.1"
+ require-main-filename "^1.0.1"
+
+throat@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
+
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+tmpl@1.0.x:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
+
+to-fast-properties@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+
+tough-cookie@>=2.3.3, tough-cookie@^2.3.2, tough-cookie@^2.3.3, tough-cookie@~2.3.0, tough-cookie@~2.3.3:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
+ dependencies:
+ punycode "^1.4.1"
+
+tr46@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ dependencies:
+ punycode "^2.1.0"
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+
+ts-jest@^21.0.0:
+ version "21.2.4"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-21.2.4.tgz#8fbcfbfbf0c58cced10dcc34a5190acc8c5312ef"
+ dependencies:
+ babel-core "^6.24.1"
+ babel-plugin-istanbul "^4.1.4"
+ babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
+ babel-preset-jest "^21.2.0"
+ cpx "^1.5.0"
+ fs-extra "^4.0.2"
+ jest-config "^21.2.1"
+ pkg-dir "^2.0.0"
+ source-map-support "^0.5.0"
+ yargs "^10.0.3"
+
+ts-node@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.0.tgz#9aa573889ad7949411f972981c209e064705e36f"
+ dependencies:
+ arrify "^1.0.0"
+ chalk "^2.3.0"
+ diff "^3.1.0"
+ make-error "^1.1.1"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.5.3"
+ yn "^2.0.0"
+
+tslib@^1.8.0, tslib@^1.8.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+
+tslint@^5.4.3:
+ version "5.9.1"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ builtin-modules "^1.1.1"
+ chalk "^2.3.0"
+ commander "^2.12.1"
+ diff "^3.2.0"
+ glob "^7.1.1"
+ js-yaml "^3.7.0"
+ minimatch "^3.0.4"
+ resolve "^1.3.2"
+ semver "^5.3.0"
+ tslib "^1.8.0"
+ tsutils "^2.12.1"
+
+tsutils@^2.12.1:
+ version "2.21.2"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.21.2.tgz#902aa5987e1440c47673543d96752df8d44ab9c7"
+ dependencies:
+ tslib "^1.8.1"
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ dependencies:
+ prelude-ls "~1.1.2"
+
+typescript@^2.7.1:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
+
+uglify-js@^2.6:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+uid-number@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+
+universalify@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+util.promisify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
+ dependencies:
+ define-properties "^1.1.2"
+ object.getownpropertydescriptors "^2.0.3"
+
+util@^0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+ dependencies:
+ inherits "2.0.1"
+
+uuid@^3.0.0, uuid@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+w3c-hr-time@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
+ dependencies:
+ browser-process-hrtime "^0.1.2"
+
+walker@~1.0.5:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+ dependencies:
+ makeerror "1.0.x"
+
+watch@~0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
+ dependencies:
+ exec-sh "^0.2.0"
+ minimist "^1.2.0"
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+
+webidl-conversions@^4.0.0, webidl-conversions@^4.0.1, webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3"
+ dependencies:
+ iconv-lite "0.4.19"
+
+whatwg-url@^4.3.0:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0"
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+whatwg-url@^6.4.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08"
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.0"
+ webidl-conversions "^4.0.1"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+which@^1.2.12, which@^1.2.9, which@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
+ dependencies:
+ string-width "^1.0.2"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+
+wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+write-file-atomic@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
+ws@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
+ dependencies:
+ async-limiter "~1.0.0"
+ safe-buffer "~5.1.0"
+
+xml-name-validator@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
+
+xml-name-validator@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
+
+y18n@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+yargs-parser@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@^10.0.3:
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^8.1.0"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
+
+yn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
From 2f3df76fa114dbe58043dece7d477b9881e4370d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 28 Feb 2018 13:48:32 -0800
Subject: [PATCH 002/124] remove bin
---
package.json | 3 ---
1 file changed, 3 deletions(-)
diff --git a/package.json b/package.json
index d74c5c8..f54d9f0 100644
--- a/package.json
+++ b/package.json
@@ -6,9 +6,6 @@
"license": "MIT",
"main": "./build/index.js",
"types": "./build/types/index.d.ts",
- "bin": {
- "skitch": "./build/index.js"
- },
"scripts": {
"build": "rm -rf ./build && tsc",
"test": "jest",
From 0133aa4f420aed815aea1310071a30d527dfc21c Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 28 Feb 2018 13:56:08 -0800
Subject: [PATCH 003/124] update tests, version bump
---
build/index.js | 111 +++++++++++++
build/index.js.map | 1 +
build/test/prompt.test.js | 255 ++++++++++++++++++++++++++++++
build/test/prompt.test.js.map | 1 +
build/types/index.d.ts | 21 +++
build/types/test/prompt.test.d.ts | 1 +
index.ts | 1 +
package.json | 2 +-
test/prompt.test.ts | 31 ++--
9 files changed, 402 insertions(+), 22 deletions(-)
create mode 100644 build/index.js
create mode 100644 build/index.js.map
create mode 100644 build/test/prompt.test.js
create mode 100644 build/test/prompt.test.js.map
create mode 100644 build/types/index.d.ts
create mode 100644 build/types/test/prompt.test.d.ts
diff --git a/build/index.js b/build/index.js
new file mode 100644
index 0000000..eee3884
--- /dev/null
+++ b/build/index.js
@@ -0,0 +1,111 @@
+var __assign = (this && this.__assign) || Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+};
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [0, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+(function (factory) {
+ if (typeof module === "object" && typeof module.exports === "object") {
+ var v = factory(require, exports);
+ if (v !== undefined) module.exports = v;
+ }
+ else if (typeof define === "function" && define.amd) {
+ define(["require", "exports", "colors", "inquirer"], factory);
+ }
+})(function (require, exports) {
+ "use strict";
+ var _this = this;
+ Object.defineProperty(exports, "__esModule", { value: true });
+ require("colors");
+ var inquirer = require("inquirer");
+ inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
+ exports.required = function (questions) {
+ return questions.map(function (q) {
+ if (q.required && !q.validate) {
+ q.validate = function (value) {
+ if (!value) {
+ return q.name + " is required";
+ }
+ return true;
+ };
+ }
+ return q;
+ });
+ };
+ exports.names = function (questions) {
+ return questions.map(function (q) {
+ q.message = "" + '['.white + q.name.blue + ']'.white + " " + q.message.green;
+ return q;
+ });
+ };
+ exports.filter = function (questions, answers) {
+ var A = questions.map(function (q) { return q.name; });
+ var B = Object.keys(answers);
+ var diff = A.filter(function (x) { return !B.includes(x); });
+ return A.filter(function (n) { return diff.includes(n); }).map(function (name) {
+ return questions.find(function (o) { return o.name === name; });
+ });
+ };
+ // converts argv._ into the answers when question specifies it
+ exports._filter = function (questions, answers) {
+ var _Qs = questions.filter(function (q) { return q.hasOwnProperty('_'); });
+ var A = _Qs.map(function (v, i) { return i + ''; });
+ var B = Object.keys(answers._ || []);
+ var includes = A.filter(function (x) { return B.includes(x); });
+ for (var i = 0; i < includes.length; i++) {
+ answers[_Qs[i].name] = answers._.shift();
+ }
+ return answers;
+ };
+ exports.prompt = function (questions, answers) { return __awaiter(_this, void 0, void 0, function () {
+ var result;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ exports._filter(questions, answers);
+ return [4 /*yield*/, inquirer.prompt(exports.names(exports.required(exports.filter(questions, answers))))];
+ case 1:
+ result = _a.sent();
+ return [2 /*return*/, __assign({}, result, answers)];
+ }
+ });
+ }); };
+});
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/index.js.map b/build/index.js.map
new file mode 100644
index 0000000..affb2c6
--- /dev/null
+++ b/build/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBA8EA;;IA7EA,kBAAgB;IAChB,mCAAqC;IACrC,QAAQ,CAAC,cAAc,CACrB,cAAc,EACd,OAAO,CAAC,8BAA8B,CAAC,CACxC,CAAC;IAUW,QAAA,QAAQ,GAAG,UAAC,SAAkC;QACzD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,QAAQ,GAAG,UAAC,KAAU;oBACtB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACX,MAAM,CAAI,CAAC,CAAC,IAAI,iBAAc,CAAC;oBACjC,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,KAAK,GAAG,UAAC,SAAkC;QACtD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,CAAC,CAAC,OAAO,GAAG,KAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,SAAI,CAAC,CAAC,OAAO,CAAC,KAAO,CAAC;YACxE,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QACrC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI;YAC7C,OAAA,SAAS,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,EAAf,CAAe,CAAC;QAApC,CAAoC,CACrC,CAAC;IACJ,CAAC,CAAC;IAEF,8DAA8D;IACjD,QAAA,OAAO,GAAG,UACrB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;QACzD,IAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,EAAE,EAAN,CAAM,CAAC,CAAC;QACpC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;;;;;oBAEhC,eAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACb,qBAAM,QAAQ,CAAC,MAAM,CAClC,aAAK,CAAC,gBAAQ,CAAC,cAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAC5C,EAAA;;oBAFK,MAAM,GAAG,SAEd;oBAED,mCACK,MAAM,EACN,OAAO,GACV;;;SACH,CAAC"}
\ No newline at end of file
diff --git a/build/test/prompt.test.js b/build/test/prompt.test.js
new file mode 100644
index 0000000..ef94b95
--- /dev/null
+++ b/build/test/prompt.test.js
@@ -0,0 +1,255 @@
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [0, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+(function (factory) {
+ if (typeof module === "object" && typeof module.exports === "object") {
+ var v = factory(require, exports);
+ if (v !== undefined) module.exports = v;
+ }
+ else if (typeof define === "function" && define.amd) {
+ define(["require", "exports", "../index"], factory);
+ }
+})(function (require, exports) {
+ "use strict";
+ var _this = this;
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var index_1 = require("../index");
+ describe('arguments', function () {
+ it('empty when all args supplied', function () {
+ var questions = [
+ {
+ name: 'hello',
+ message: 'hello',
+ },
+ {
+ name: 'world',
+ message: 'world',
+ },
+ ];
+ var argv = {
+ hello: 1,
+ world: 2,
+ };
+ expect(index_1.filter(questions, argv)).toEqual([]);
+ expect(argv).toEqual({
+ hello: 1,
+ world: 2,
+ });
+ });
+ it('empty when all args supplied II', function () {
+ var questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: 'foo',
+ },
+ {
+ name: 'bar',
+ message: 'bar',
+ },
+ {
+ _: true,
+ name: 'baz',
+ message: 'baz',
+ },
+ ];
+ var argv = {
+ _: [1, 3],
+ bar: 2,
+ };
+ var _1 = index_1.filter(questions, argv);
+ var _2 = index_1._filter(questions, argv);
+ expect(_2).toEqual({ _: [], bar: 2, baz: 3, foo: 1 });
+ expect(argv).toEqual({
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+ });
+ });
+ it('init example', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, _1, _2;
+ return __generator(this, function (_a) {
+ questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ ];
+ argv = {
+ _: [],
+ bar: 2,
+ };
+ _1 = index_1._filter(questions, argv);
+ _2 = index_1.filter(questions, argv);
+ expect(_2).toEqual([
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ ]);
+ expect(argv).toEqual({
+ _: [],
+ bar: 2,
+ });
+ return [2 /*return*/];
+ });
+ }); });
+ it('basic example', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, _2;
+ return __generator(this, function (_a) {
+ questions = [
+ {
+ name: 'name',
+ message: 'project name (e.g., flipr)',
+ required: true,
+ },
+ ];
+ argv = { _: [], cmd: 'init' };
+ index_1._filter(questions, argv);
+ _2 = index_1.filter(questions, argv);
+ expect(_2).toEqual([
+ {
+ name: 'name',
+ message: 'project name (e.g., flipr)',
+ required: true,
+ },
+ ]);
+ expect(argv).toEqual({ _: [], cmd: 'init' });
+ return [2 /*return*/];
+ });
+ }); });
+ });
+ describe('prompt', function () {
+ it('empty when all args supplied', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, value;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ questions = [
+ {
+ name: 'hello',
+ message: '',
+ },
+ {
+ name: 'world',
+ message: '',
+ },
+ ];
+ argv = {
+ hello: 1,
+ world: 2,
+ };
+ return [4 /*yield*/, index_1.prompt(questions, argv)];
+ case 1:
+ value = _a.sent();
+ expect(value).toEqual({
+ hello: 1,
+ world: 2,
+ });
+ return [2 /*return*/];
+ }
+ });
+ }); });
+ it('empty when all args supplied', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, value;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: '',
+ },
+ {
+ name: 'bar',
+ message: '',
+ },
+ {
+ _: true,
+ name: 'baz',
+ message: '',
+ },
+ ];
+ argv = {
+ _: [1, 3],
+ bar: 2,
+ };
+ return [4 /*yield*/, index_1.prompt(questions, argv)];
+ case 1:
+ value = _a.sent();
+ expect(argv).toEqual({
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+ });
+ expect(value).toEqual({
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+ });
+ return [2 /*return*/];
+ }
+ });
+ }); });
+ it('basic example', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, value;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ questions = [
+ {
+ name: 'cmd',
+ message: 'project name (e.g., flipr)',
+ required: true,
+ },
+ ];
+ argv = { _: [], cmd: 'init' };
+ return [4 /*yield*/, index_1.prompt(questions, argv)];
+ case 1:
+ value = _a.sent();
+ expect(value).toEqual(argv);
+ return [2 /*return*/];
+ }
+ });
+ }); });
+ });
+});
+//# sourceMappingURL=prompt.test.js.map
\ No newline at end of file
diff --git a/build/test/prompt.test.js.map b/build/test/prompt.test.js.map
new file mode 100644
index 0000000..89fd735
--- /dev/null
+++ b/build/test/prompt.test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../../test/prompt.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBAgLA;;IAhLA,kCAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,CAAC,8BAA8B,EAAE;YACjC,IAAM,SAAS,GAAG;gBAChB;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC;YACF,MAAM,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE;YACpC,IAAM,SAAS,GAAG;gBAChB;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACT,GAAG,EAAE,CAAC;aACP,CAAC;YAEF,IAAM,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAM,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,EAAE,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,cAAc,EAAE;;;gBACX,SAAS,GAAG;oBAChB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC;gBACI,IAAI,GAAG;oBACX,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC;gBACI,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC9B,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAEnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBACnB,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC,CAAC;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,eAAe,EAAE;;;gBACZ,SAAS,GAAG;oBAChB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC;gBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBACpC,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnB,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;;aAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BACT,GAAG,EAAE,CAAC;yBACP,CAAC;wBACY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;4BACnB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;wBACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE;;;;;wBACZ,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,4BAA4B;gCACrC,QAAQ,EAAE,IAAI;6BACf;yBACF,CAAC;wBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;wBACtB,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;aAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/build/types/index.d.ts b/build/types/index.d.ts
new file mode 100644
index 0000000..0912525
--- /dev/null
+++ b/build/types/index.d.ts
@@ -0,0 +1,21 @@
+import 'colors';
+export interface InquirerQuestion {
+ _?: boolean;
+ name: string;
+ message: string;
+ required?: boolean;
+ validate?: Function;
+}
+export declare const required: (questions: InquirerQuestion[]) => InquirerQuestion[];
+export declare const names: (questions: InquirerQuestion[]) => InquirerQuestion[];
+export declare const filter: (questions: InquirerQuestion[], answers: {
+ [type: string]: any;
+}) => (InquirerQuestion | undefined)[];
+export declare const _filter: (questions: InquirerQuestion[], answers: {
+ [type: string]: any;
+}) => {
+ [type: string]: any;
+};
+export declare const prompt: (questions: InquirerQuestion[], answers: {
+ [type: string]: any;
+}) => Promise;
diff --git a/build/types/test/prompt.test.d.ts b/build/types/test/prompt.test.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/build/types/test/prompt.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/index.ts b/index.ts
index 72ad75b..9dc415a 100644
--- a/index.ts
+++ b/index.ts
@@ -7,6 +7,7 @@ inquirer.registerPrompt(
);
export interface InquirerQuestion {
+ _?: boolean;
name: string;
message: string;
required?: boolean;
diff --git a/package.json b/package.json
index f54d9f0..5d1121c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.1.0",
+ "version": "0.1.1",
"description": "",
"author": "pyramation@gmail.com",
"license": "MIT",
diff --git a/test/prompt.test.ts b/test/prompt.test.ts
index 942dcb3..ac91762 100644
--- a/test/prompt.test.ts
+++ b/test/prompt.test.ts
@@ -4,9 +4,11 @@ describe('arguments', () => {
const questions = [
{
name: 'hello',
+ message: 'hello',
},
{
name: 'world',
+ message: 'world',
},
];
const argv = {
@@ -19,18 +21,21 @@ describe('arguments', () => {
world: 2,
});
});
- it('empty when all args supplied', () => {
+ it('empty when all args supplied II', () => {
const questions = [
{
_: true,
name: 'foo',
+ message: 'foo',
},
{
name: 'bar',
+ message: 'bar',
},
{
_: true,
name: 'baz',
+ message: 'baz',
},
];
const argv = {
@@ -41,7 +46,7 @@ describe('arguments', () => {
const _1 = filter(questions, argv);
const _2 = _filter(questions, argv);
- expect(_2).toEqual([]);
+ expect(_2).toEqual({ _: [], bar: 2, baz: 3, foo: 1 });
expect(argv).toEqual({
_: [],
foo: 1,
@@ -94,7 +99,7 @@ describe('arguments', () => {
required: true,
},
]);
- expect(argv).toEqual({ _: [], cmd: 'init' };);
+ expect(argv).toEqual({ _: [], cmd: 'init' });
});
});
describe('prompt', () => {
@@ -159,29 +164,13 @@ describe('prompt', () => {
it('basic example', async () => {
const questions = [
{
- name: 'name',
+ name: 'cmd',
message: 'project name (e.g., flipr)',
required: true,
},
];
const argv = { _: [], cmd: 'init' };
const value = await prompt(questions, argv);
- console.log(value);
- });
-
- xit('init example', async () => {
- const questions = [
- {
- _: true,
- name: 'foo',
- message: '',
- },
- ];
- const argv = {
- _: [],
- bar: 2,
- };
- const value = await prompt(questions, argv);
- console.log(value);
+ expect(value).toEqual(argv);
});
});
From fa6a91cf26b2af2b30a58d095ca841e05f541130 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 28 Feb 2018 14:01:46 -0800
Subject: [PATCH 004/124] readme
---
readme.md | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/readme.md b/readme.md
index 57e70b9..344b010 100644
--- a/readme.md
+++ b/readme.md
@@ -17,6 +17,7 @@ const questions = [
name: 'database',
message: 'database',
required: true,
+ ...
},
];
@@ -38,9 +39,11 @@ If you set `_: true`, then you can pass an argument into the system and it won't
```js
const questions = [
{
+ _: true,
name: 'database',
message: 'database',
required: true,
+ ...
},
];
@@ -58,3 +61,41 @@ or equivalently:
```sh
node myprogram.js --database mydb1
```
+
+## `_` properties with multiple
+
+```
+const questions = [
+ {
+ _: true,
+ name: 'foo',
+ message: 'foo',
+ },
+ {
+ name: 'bar',
+ message: 'bar',
+ },
+ {
+ _: true,
+ name: 'baz',
+ message: 'baz',
+ },
+];
+
+const result = await prompt(questions, argv);
+```
+
+```sh
+node myprogram.js 1 3 --bar 2
+```
+
+will treat `argv` as
+
+```
+{
+ _: [],
+ foo: 1,
+ bar: 2,
+ baz: 3,
+}
+```
From 78edce1cc0df0adbe3e96364c1ef21960711e208 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 28 Feb 2018 14:02:30 -0800
Subject: [PATCH 005/124] readme
---
readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/readme.md b/readme.md
index 344b010..42b4769 100644
--- a/readme.md
+++ b/readme.md
@@ -34,7 +34,7 @@ And will skip the interactive phase, unless more questions are unanswered.
## `_` properties
-If you set `_: true`, then you can pass an argument into the system and it won't need the parameter name. Reasoning is many libraries such as `minimist` use `_` to store properties that aren't flagged.
+If you set `_: true`, then you can pass an argument into the system and it won't need the parameter name.
```js
const questions = [
From 1670b8cd10de4c8e0c5a5017443516181399b8a4 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 28 Feb 2018 14:04:34 -0800
Subject: [PATCH 006/124] add npm install
---
readme.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/readme.md b/readme.md
index 42b4769..61ff7e2 100644
--- a/readme.md
+++ b/readme.md
@@ -1,5 +1,9 @@
# Inquirerer
+```sh
+npm install inquirerer
+```
+
A wrapper around Inquirer to solve this issue: https://github.com/SBoudrias/Inquirer.js/issues/166
Allows you to override properties passed in, and won't be asked interactively. This is huge when creating real production systems where scripts need to run automatically without human interaction.
From dab03eb9a636e67477aa72ad112907ba07020115 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 31 Jul 2018 14:32:26 -0700
Subject: [PATCH 007/124] update package
---
package.json | 4 ++--
yarn.lock | 43 +++++++++++++++++++++++++++++++++++++------
2 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/package.json b/package.json
index 5d1121c..88fa72f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.1.1",
+ "version": "0.1.2",
"description": "",
"author": "pyramation@gmail.com",
"license": "MIT",
@@ -22,7 +22,7 @@
},
"dependencies": {
"colors": "^1.1.2",
- "inquirer": "^3.3.0",
+ "inquirer": "^6.0.0",
"inquirer-autocomplete-prompt": "^0.11.1"
},
"jest": {
diff --git a/yarn.lock b/yarn.lock
index 9c83533..c2f7cd6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -509,6 +509,10 @@ chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+chardet@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.5.0.tgz#fe3ac73c00c3d865ffcc02a0682e2c20b6a06029"
+
chokidar@^1.6.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
@@ -864,6 +868,14 @@ external-editor@^2.0.4:
iconv-lite "^0.4.17"
tmp "^0.0.33"
+external-editor@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.0.tgz#dc35c48c6f98a30ca27a20e9687d7f3c77704bb6"
+ dependencies:
+ chardet "^0.5.0"
+ iconv-lite "^0.4.22"
+ tmp "^0.0.33"
+
extglob@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
@@ -1202,6 +1214,12 @@ iconv-lite@0.4.19, iconv-lite@^0.4.17:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+iconv-lite@^0.4.22:
+ version "0.4.23"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
import-local@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
@@ -1263,21 +1281,20 @@ inquirer@3.1.1:
strip-ansi "^3.0.0"
through "^2.3.6"
-inquirer@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
+inquirer@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.0.0.tgz#e8c20303ddc15bbfc2c12a6213710ccd9e1413d8"
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
- external-editor "^2.0.4"
+ external-editor "^3.0.0"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
- rx-lite "^4.0.8"
- rx-lite-aggregates "^4.0.8"
+ rxjs "^6.1.0"
string-width "^2.1.0"
strip-ansi "^4.0.0"
through "^2.3.6"
@@ -2698,10 +2715,20 @@ rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+rxjs@^6.1.0:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9"
+ dependencies:
+ tslib "^1.9.0"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+
sane@^2.0.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/sane/-/sane-2.4.1.tgz#29f991208cf28636720efdc584293e7fd66663a5"
@@ -3042,6 +3069,10 @@ tslib@^1.8.0, tslib@^1.8.1:
version "1.9.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+tslib@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+
tslint@^5.4.3:
version "5.9.1"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
From 0e37eaddfb9b328c7b00f616a7946ccf57e07dba Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 24 Sep 2018 12:02:52 -0700
Subject: [PATCH 008/124] updated for filter function
---
build/index.js | 6 +++
build/index.js.map | 2 +-
build/test/prompt.test.js | 76 +++++++++++++++++++++++++++++++++++
build/test/prompt.test.js.map | 2 +-
index.ts | 8 ++++
package.json | 2 +-
test/prompt.test.ts | 60 +++++++++++++++++++++++++++
7 files changed, 153 insertions(+), 3 deletions(-)
diff --git a/build/index.js b/build/index.js
index eee3884..abed5f5 100644
--- a/build/index.js
+++ b/build/index.js
@@ -92,6 +92,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
for (var i = 0; i < includes.length; i++) {
answers[_Qs[i].name] = answers._.shift();
}
+ // now run the filter command if on any questions
+ questions.filter(function (q) { return q.hasOwnProperty('filter') && typeof q.filter === 'function'; }).forEach(function (question) {
+ if (answers.hasOwnProperty(question.name)) {
+ answers[question.name] = question.filter(answers[question.name]);
+ }
+ });
return answers;
};
exports.prompt = function (questions, answers) { return __awaiter(_this, void 0, void 0, function () {
diff --git a/build/index.js.map b/build/index.js.map
index affb2c6..d2eb946 100644
--- a/build/index.js.map
+++ b/build/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBA8EA;;IA7EA,kBAAgB;IAChB,mCAAqC;IACrC,QAAQ,CAAC,cAAc,CACrB,cAAc,EACd,OAAO,CAAC,8BAA8B,CAAC,CACxC,CAAC;IAUW,QAAA,QAAQ,GAAG,UAAC,SAAkC;QACzD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,QAAQ,GAAG,UAAC,KAAU;oBACtB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACX,MAAM,CAAI,CAAC,CAAC,IAAI,iBAAc,CAAC;oBACjC,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,KAAK,GAAG,UAAC,SAAkC;QACtD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,CAAC,CAAC,OAAO,GAAG,KAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,SAAI,CAAC,CAAC,OAAO,CAAC,KAAO,CAAC;YACxE,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QACrC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI;YAC7C,OAAA,SAAS,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,EAAf,CAAe,CAAC;QAApC,CAAoC,CACrC,CAAC;IACJ,CAAC,CAAC;IAEF,8DAA8D;IACjD,QAAA,OAAO,GAAG,UACrB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;QACzD,IAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,EAAE,EAAN,CAAM,CAAC,CAAC;QACpC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;;;;;oBAEhC,eAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACb,qBAAM,QAAQ,CAAC,MAAM,CAClC,aAAK,CAAC,gBAAQ,CAAC,cAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAC5C,EAAA;;oBAFK,MAAM,GAAG,SAEd;oBAED,mCACK,MAAM,EACN,OAAO,GACV;;;SACH,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBAsFA;;IArFA,kBAAgB;IAChB,mCAAqC;IACrC,QAAQ,CAAC,cAAc,CACrB,cAAc,EACd,OAAO,CAAC,8BAA8B,CAAC,CACxC,CAAC;IAUW,QAAA,QAAQ,GAAG,UAAC,SAAkC;QACzD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,QAAQ,GAAG,UAAC,KAAU;oBACtB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACX,MAAM,CAAI,CAAC,CAAC,IAAI,iBAAc,CAAC;oBACjC,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,KAAK,GAAG,UAAC,SAAkC;QACtD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,CAAC,CAAC,OAAO,GAAG,KAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,SAAI,CAAC,CAAC,OAAO,CAAC,KAAO,CAAC;YACxE,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QACrC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI;YAC7C,OAAA,SAAS,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,EAAf,CAAe,CAAC;QAApC,CAAoC,CACrC,CAAC;IACJ,CAAC,CAAC;IAEF,8DAA8D;IACjD,QAAA,OAAO,GAAG,UACrB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;QACzD,IAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,EAAE,EAAN,CAAM,CAAC,CAAC;QACpC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC;QAED,iDAAiD;QACjD,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,EAA5D,CAA4D,CAAE,CAAC,OAAO,CAAC,UAAA,QAAQ;YACnG,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;;;;;oBAEhC,eAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACb,qBAAM,QAAQ,CAAC,MAAM,CAClC,aAAK,CAAC,gBAAQ,CAAC,cAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAC5C,EAAA;;oBAFK,MAAM,GAAG,SAEd;oBAED,mCACK,MAAM,EACN,OAAO,GACV;;;SACH,CAAC"}
\ No newline at end of file
diff --git a/build/test/prompt.test.js b/build/test/prompt.test.js
index ef94b95..cf7e0f6 100644
--- a/build/test/prompt.test.js
+++ b/build/test/prompt.test.js
@@ -251,5 +251,81 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
});
}); });
});
+ describe('filter', function () {
+ it('runs filter without _', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, value;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ questions = [
+ {
+ name: 'hello',
+ message: '',
+ filter: function (val) {
+ return val + '!';
+ }
+ },
+ {
+ name: 'world',
+ message: '',
+ filter: function (val) {
+ return val + '!';
+ }
+ },
+ ];
+ argv = {
+ hello: 1,
+ world: 2,
+ };
+ return [4 /*yield*/, index_1.prompt(questions, argv)];
+ case 1:
+ value = _a.sent();
+ expect(value).toEqual({
+ hello: '1!',
+ world: '2!',
+ });
+ return [2 /*return*/];
+ }
+ });
+ }); });
+ it('runs filter with _', function () { return __awaiter(_this, void 0, void 0, function () {
+ var questions, argv, value;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ questions = [
+ {
+ _: true,
+ name: 'hello',
+ message: '',
+ filter: function (val) {
+ return val + '!';
+ }
+ },
+ {
+ name: 'world',
+ message: '',
+ filter: function (val) {
+ return val + '!';
+ }
+ },
+ ];
+ argv = {
+ _: [1],
+ world: 2,
+ };
+ return [4 /*yield*/, index_1.prompt(questions, argv)];
+ case 1:
+ value = _a.sent();
+ expect(value).toEqual({
+ _: [],
+ hello: '1!',
+ world: '2!',
+ });
+ return [2 /*return*/];
+ }
+ });
+ }); });
+ });
});
//# sourceMappingURL=prompt.test.js.map
\ No newline at end of file
diff --git a/build/test/prompt.test.js.map b/build/test/prompt.test.js.map
index 89fd735..65d8cf4 100644
--- a/build/test/prompt.test.js.map
+++ b/build/test/prompt.test.js.map
@@ -1 +1 @@
-{"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../../test/prompt.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBAgLA;;IAhLA,kCAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,CAAC,8BAA8B,EAAE;YACjC,IAAM,SAAS,GAAG;gBAChB;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC;YACF,MAAM,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE;YACpC,IAAM,SAAS,GAAG;gBAChB;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACT,GAAG,EAAE,CAAC;aACP,CAAC;YAEF,IAAM,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAM,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,EAAE,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,cAAc,EAAE;;;gBACX,SAAS,GAAG;oBAChB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC;gBACI,IAAI,GAAG;oBACX,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC;gBACI,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC9B,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAEnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBACnB,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC,CAAC;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,eAAe,EAAE;;;gBACZ,SAAS,GAAG;oBAChB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC;gBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBACpC,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnB,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;;aAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BACT,GAAG,EAAE,CAAC;yBACP,CAAC;wBACY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;4BACnB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;wBACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE;;;;;wBACZ,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,4BAA4B;gCACrC,QAAQ,EAAE,IAAI;6BACf;yBACF,CAAC;wBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;wBACtB,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;aAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../../test/prompt.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBA4OA;;IA5OA,kCAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,CAAC,8BAA8B,EAAE;YACjC,IAAM,SAAS,GAAG;gBAChB;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC;YACF,MAAM,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE;YACpC,IAAM,SAAS,GAAG;gBAChB;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACT,GAAG,EAAE,CAAC;aACP,CAAC;YAEF,IAAM,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAM,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,EAAE,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,cAAc,EAAE;;;gBACX,SAAS,GAAG;oBAChB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC;gBACI,IAAI,GAAG;oBACX,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC;gBACI,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC9B,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAEnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBACnB,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC,CAAC;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,eAAe,EAAE;;;gBACZ,SAAS,GAAG;oBAChB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC;gBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBACpC,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnB,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;;aAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BACT,GAAG,EAAE,CAAC;yBACP,CAAC;wBACY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;4BACnB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;wBACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE;;;;;wBACZ,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,4BAA4B;gCACrC,QAAQ,EAAE,IAAI;6BACf;yBACF,CAAC;wBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;wBACtB,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;aAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,uBAAuB,EAAE;;;;;wBACpB,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,KAAK,EAAE,IAAI;4BACX,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,oBAAoB,EAAE;;;;;wBACjB,SAAS,GAAG;4BAChB;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,CAAC,EAAE,CAAC,CAAC,CAAC;4BACN,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,CAAC,EAAE,EAAE;4BACL,KAAK,EAAE,IAAI;4BACX,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;;;;aACJ,CAAC,CAAC;IACL,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/index.ts b/index.ts
index 9dc415a..be8f6d9 100644
--- a/index.ts
+++ b/index.ts
@@ -59,6 +59,14 @@ export const _filter = (
for (var i = 0; i < includes.length; i++) {
answers[_Qs[i].name] = answers._.shift();
}
+
+ // now run the filter command if on any questions
+ questions.filter(q => q.hasOwnProperty('filter') && typeof q.filter === 'function' ).forEach(question=> {
+ if (answers.hasOwnProperty(question.name)) {
+ answers[question.name] = question.filter(answers[question.name]);
+ }
+ });
+
return answers;
};
diff --git a/package.json b/package.json
index 88fa72f..1e566be 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.1.2",
+ "version": "0.1.3",
"description": "",
"author": "pyramation@gmail.com",
"license": "MIT",
diff --git a/test/prompt.test.ts b/test/prompt.test.ts
index ac91762..9cc5fdf 100644
--- a/test/prompt.test.ts
+++ b/test/prompt.test.ts
@@ -174,3 +174,63 @@ describe('prompt', () => {
expect(value).toEqual(argv);
});
});
+describe('filter', ()=> {
+ it('runs filter without _', async () => {
+ const questions = [
+ {
+ name: 'hello',
+ message: '',
+ filter: (val) => {
+ return val + '!';
+ }
+ },
+ {
+ name: 'world',
+ message: '',
+ filter: (val) => {
+ return val + '!';
+ }
+ },
+ ];
+ const argv = {
+ hello: 1,
+ world: 2,
+ };
+
+ const value = await prompt(questions, argv);
+ expect(value).toEqual({
+ hello: '1!',
+ world: '2!',
+ });
+ });
+ it('runs filter with _', async () => {
+ const questions = [
+ {
+ _: true,
+ name: 'hello',
+ message: '',
+ filter: (val) => {
+ return val + '!';
+ }
+ },
+ {
+ name: 'world',
+ message: '',
+ filter: (val) => {
+ return val + '!';
+ }
+ },
+ ];
+ const argv = {
+ _: [1],
+ world: 2,
+ };
+
+ const value = await prompt(questions, argv);
+ expect(value).toEqual({
+ _: [],
+ hello: '1!',
+ world: '2!',
+ });
+ });
+})
From b9ede69472381643166d49e23fdd8a09324a4520 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Fri, 29 Mar 2019 16:28:51 -0700
Subject: [PATCH 009/124] Update readme.md
---
readme.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/readme.md b/readme.md
index 61ff7e2..fcce883 100644
--- a/readme.md
+++ b/readme.md
@@ -4,6 +4,8 @@
npm install inquirerer
```
+New improved version here: https://github.com/pyramation/prompt
+
A wrapper around Inquirer to solve this issue: https://github.com/SBoudrias/Inquirer.js/issues/166
Allows you to override properties passed in, and won't be asked interactively. This is huge when creating real production systems where scripts need to run automatically without human interaction.
From 06bc4ce9cbb8689d04f174d1ee85c553a6f6d561 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Fri, 29 Mar 2019 16:29:17 -0700
Subject: [PATCH 010/124] Update readme.md
---
readme.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/readme.md b/readme.md
index fcce883..1f1a4ec 100644
--- a/readme.md
+++ b/readme.md
@@ -1,11 +1,11 @@
+## NOTE: New improved version here: https://github.com/pyramation/prompt
+
# Inquirerer
```sh
npm install inquirerer
```
-New improved version here: https://github.com/pyramation/prompt
-
A wrapper around Inquirer to solve this issue: https://github.com/SBoudrias/Inquirer.js/issues/166
Allows you to override properties passed in, and won't be asked interactively. This is huge when creating real production systems where scripts need to run automatically without human interaction.
From 275efd8a1e5e955d8eff7c95483903181dd04069 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 06:22:54 -0700
Subject: [PATCH 011/124] =?UTF-8?q?first=20commit=20=F0=9F=93=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.eslintrc.json | 39 +
.gitignore | 5 +
.prettierrc.json | 6 +
LICENSE | 21 +
README.md | 51 +
lerna.json | 24 +
package.json | 43 +
packages/inquirerer/README.md | 51 +
packages/inquirerer/__tests__/first.test.ts | 3 +
packages/inquirerer/dev/index.ts | 39 +
packages/inquirerer/jest.config.js | 18 +
packages/inquirerer/package.json | 38 +
packages/inquirerer/src/index.ts | 1 +
packages/inquirerer/src/package.ts | 33 +
packages/inquirerer/src/prompt.ts | 55 +
packages/inquirerer/src/question.ts | 4 +
packages/inquirerer/src/utils.ts | 10 +
packages/inquirerer/tsconfig.esm.json | 9 +
packages/inquirerer/tsconfig.json | 9 +
tsconfig.json | 16 +
yarn.lock | 6838 +++++++++++++++++++
21 files changed, 7313 insertions(+)
create mode 100644 .eslintrc.json
create mode 100644 .gitignore
create mode 100644 .prettierrc.json
create mode 100644 LICENSE
create mode 100644 README.md
create mode 100644 lerna.json
create mode 100644 package.json
create mode 100644 packages/inquirerer/README.md
create mode 100644 packages/inquirerer/__tests__/first.test.ts
create mode 100644 packages/inquirerer/dev/index.ts
create mode 100644 packages/inquirerer/jest.config.js
create mode 100644 packages/inquirerer/package.json
create mode 100644 packages/inquirerer/src/index.ts
create mode 100644 packages/inquirerer/src/package.ts
create mode 100644 packages/inquirerer/src/prompt.ts
create mode 100644 packages/inquirerer/src/question.ts
create mode 100644 packages/inquirerer/src/utils.ts
create mode 100644 packages/inquirerer/tsconfig.esm.json
create mode 100644 packages/inquirerer/tsconfig.json
create mode 100644 tsconfig.json
create mode 100644 yarn.lock
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..afb9b71
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,39 @@
+{
+ "env": {
+ "browser": true,
+ "es2021": true,
+ "node": true,
+ "jest": true
+ },
+ "extends": [
+ "eslint:recommended",
+ "plugin:@typescript-eslint/recommended",
+ "prettier"
+ ],
+ "overrides": [],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "ecmaVersion": "latest",
+ "sourceType": "module"
+ },
+ "plugins": ["@typescript-eslint", "simple-import-sort", "unused-imports"],
+ "rules": {
+ "simple-import-sort/imports": 1,
+ "simple-import-sort/exports": 1,
+ "unused-imports/no-unused-imports": 1,
+ "@typescript-eslint/no-unused-vars": [
+ 1,
+ {
+ "argsIgnorePattern": "React|res|next|^_"
+ }
+ ],
+ "@typescript-eslint/no-explicit-any": 0,
+ "@typescript-eslint/no-var-requires": 0,
+ "no-console": 0,
+ "@typescript-eslint/ban-ts-comment": 0,
+ "prefer-const": 0,
+ "no-case-declarations": 0,
+ "no-implicit-globals": 0,
+ "@typescript-eslint/no-unsafe-declaration-merging": 0
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cb78b83
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+**/node_modules/
+**/.DS_Store
+**/dist
+**/yarn-error.log
+lerna-debug.log
\ No newline at end of file
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..f0eb61e
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,6 @@
+{
+ "trailingComma": "es5",
+ "tabWidth": 2,
+ "semi": true,
+ "singleQuote": false
+}
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..2619f34
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2024 Dan Lynch
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d6c03ad
--- /dev/null
+++ b/README.md
@@ -0,0 +1,51 @@
+# inquirerer
+
+
+ 
+ __MODULEDESC__
+
+
+## install
+
+```sh
+npm install inquirerer
+```
+## Table of contents
+
+- [inquirerer](#inquirerer)
+ - [Install](#install)
+ - [Table of contents](#table-of-contents)
+- [Developing](#developing)
+- [Credits](#credits)
+
+## Developing
+
+
+When first cloning the repo:
+```
+yarn
+yarn build
+```
+
+## Related
+
+Checkout these related projects:
+
+* [@cosmology/telescope](https://github.com/cosmology-tech/telescope) Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.
+* [@cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.
+* [chain-registry](https://github.com/cosmology-tech/chain-registry) Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.
+* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.
+* [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) Set up a modern Cosmos app by running one command.
+* [interchain-ui](https://github.com/cosmology-tech/interchain-ui) The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.
+* [starship](https://github.com/cosmology-tech/starship) Unified Testing and Development for the Interchain.
+
+## Credits
+
+🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.zone/validator)
+
+
+## Disclaimer
+
+AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
+
+No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.
diff --git a/lerna.json b/lerna.json
new file mode 100644
index 0000000..97d7161
--- /dev/null
+++ b/lerna.json
@@ -0,0 +1,24 @@
+{
+ "lerna": "6",
+ "conventionalCommits": true,
+ "npmClient": "yarn",
+ "npmClientArgs": [
+ "--no-lockfile"
+ ],
+ "packages": [
+ "packages/*"
+ ],
+ "version": "independent",
+ "registry": "https://registry.npmjs.org",
+ "command": {
+ "create": {
+ "homepage": "https://github.com/pyramation/inquirerer",
+ "license": "SEE LICENSE IN LICENSE",
+ "access": "restricted"
+ },
+ "publish": {
+ "allowBranch": "main",
+ "message": "chore(release): publish"
+ }
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d07b3f7
--- /dev/null
+++ b/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "inquirerer",
+ "version": "0.0.1",
+ "author": "Dan Lynch ",
+ "private": true,
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/pyramation/inquirerer"
+ },
+ "license": "SEE LICENSE IN LICENSE",
+ "publishConfig": {
+ "access": "restricted"
+ },
+ "workspaces": [
+ "packages/*"
+ ],
+ "scripts": {
+ "clean": "lerna run clean",
+ "build": "lerna run build --stream",
+ "symlink": "symlink-workspace --logLevel error",
+ "postinstall": "yarn symlink"
+ },
+ "devDependencies": {
+ "@types/jest": "^29.5.11",
+ "@types/node": "^20.12.7",
+ "@typescript-eslint/eslint-plugin": "^6.18.1",
+ "@typescript-eslint/parser": "^6.18.1",
+ "copyfiles": "^2.4.1",
+ "del-cli": "^5.1.0",
+ "eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-simple-import-sort": "^10.0.0",
+ "eslint-plugin-unused-imports": "^3.0.0",
+ "jest": "^29.6.2",
+ "lerna": "^6",
+ "prettier": "^3.0.2",
+ "strip-ansi": "^6",
+ "symlink-workspace": "^1.1.0",
+ "ts-jest": "^29.1.1",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.1.6"
+ }
+}
\ No newline at end of file
diff --git a/packages/inquirerer/README.md b/packages/inquirerer/README.md
new file mode 100644
index 0000000..a85579a
--- /dev/null
+++ b/packages/inquirerer/README.md
@@ -0,0 +1,51 @@
+# inquirerer
+
+
+ 
+ inquirerer
+
+
+## install
+
+```sh
+npm install inquirerer
+```
+## Table of contents
+
+- [inquirerer](#inquirerer)
+ - [Install](#install)
+ - [Table of contents](#table-of-contents)
+- [Developing](#developing)
+- [Credits](#credits)
+
+## Developing
+
+When first cloning the repo:
+
+```
+yarn
+yarn build
+```
+
+## Related
+
+Checkout these related projects:
+
+* [@cosmology/telescope](https://github.com/cosmology-tech/telescope) Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.
+* [@cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.
+* [chain-registry](https://github.com/cosmology-tech/chain-registry) Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.
+* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.
+* [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) Set up a modern Cosmos app by running one command.
+* [interchain-ui](https://github.com/cosmology-tech/interchain-ui) The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.
+* [starship](https://github.com/cosmology-tech/starship) Unified Testing and Development for the Interchain.
+
+## Credits
+
+🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.zone/validator)
+
+
+## Disclaimer
+
+AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
+
+No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.
diff --git a/packages/inquirerer/__tests__/first.test.ts b/packages/inquirerer/__tests__/first.test.ts
new file mode 100644
index 0000000..2d48e8d
--- /dev/null
+++ b/packages/inquirerer/__tests__/first.test.ts
@@ -0,0 +1,3 @@
+it('works', () => {
+ console.log('hello test world!');
+})
\ No newline at end of file
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
new file mode 100644
index 0000000..d8ac3c4
--- /dev/null
+++ b/packages/inquirerer/dev/index.ts
@@ -0,0 +1,39 @@
+#!/usr/bin/env node
+import minimist from 'minimist';
+import { Inquirerer } from "../src";
+import { displayVersion } from '../src/utils';
+
+const argv = minimist(process.argv.slice(2), {
+ alias: {
+ v: 'version'
+ }
+ });
+
+ if (!('tty' in argv)) {
+ argv.tty = true;
+}
+
+
+if (argv.version) {
+ displayVersion();
+ process.exit(0);
+ }
+
+const prompter = new Inquirerer();
+
+const main = async () => {
+ const args = await prompter.prompt(argv, [
+ {
+ name: 'name'
+ },
+ {
+ name: 'flower'
+ }
+ ]);
+
+ console.log(args);
+
+ prompter.close();
+};
+
+main();
\ No newline at end of file
diff --git a/packages/inquirerer/jest.config.js b/packages/inquirerer/jest.config.js
new file mode 100644
index 0000000..0aa3aaa
--- /dev/null
+++ b/packages/inquirerer/jest.config.js
@@ -0,0 +1,18 @@
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+module.exports = {
+ preset: "ts-jest",
+ testEnvironment: "node",
+ transform: {
+ "^.+\\.tsx?$": [
+ "ts-jest",
+ {
+ babelConfig: false,
+ tsconfig: "tsconfig.json",
+ },
+ ],
+ },
+ transformIgnorePatterns: [`/node_modules/*`],
+ testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
+ moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
+ modulePathIgnorePatterns: ["dist/*"]
+};
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
new file mode 100644
index 0000000..00e1803
--- /dev/null
+++ b/packages/inquirerer/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "@pyramation/inquirerer",
+ "version": "0.0.1",
+ "author": "Dan Lynch ",
+ "description": "inquirerer",
+ "main": "index.js",
+ "module": "esm/index.js",
+ "types": "index.d.ts",
+ "homepage": "https://github.com/pyramation/inquirerer",
+ "license": "SEE LICENSE IN LICENSE",
+ "publishConfig": {
+ "access": "public",
+ "directory": "dist"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/pyramation/inquirerer"
+ },
+ "bugs": {
+ "url": "https://github.com/pyramation/inquirerer/issues"
+ },
+ "scripts": {
+ "copy": "copyfiles -f ../../LICENSE README.md package.json dist",
+ "clean": "del dist/**",
+ "prepare": "npm run build",
+ "build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
+ "dev": "ts-node dev/index",
+ "test": "jest",
+ "test:watch": "jest --watch"
+ },
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "deepmerge": "^4.3.1",
+ "js-yaml": "^4.1.0",
+ "minimist": "^1.2.8"
+ },
+ "keywords": []
+}
\ No newline at end of file
diff --git a/packages/inquirerer/src/index.ts b/packages/inquirerer/src/index.ts
new file mode 100644
index 0000000..44e152d
--- /dev/null
+++ b/packages/inquirerer/src/index.ts
@@ -0,0 +1 @@
+export * from './prompt';
\ No newline at end of file
diff --git a/packages/inquirerer/src/package.ts b/packages/inquirerer/src/package.ts
new file mode 100644
index 0000000..6a22899
--- /dev/null
+++ b/packages/inquirerer/src/package.ts
@@ -0,0 +1,33 @@
+import { existsSync,readFileSync } from "fs";
+import { dirname,join } from "path";
+
+// need to search due to the dist/ folder and src/, etc.
+function findPackageJson(currentDir: string) {
+ const filePath = join(currentDir, 'package.json');
+
+ // Check if package.json exists in the current directory
+ if (existsSync(filePath)) {
+ return filePath;
+ }
+
+ // Get the parent directory
+ const parentDir = dirname(currentDir);
+
+ // If reached the root directory, package.json is not found
+ if (parentDir === currentDir) {
+ throw new Error('package.json not found in any parent directory');
+ }
+
+ // Recursively look in the parent directory
+ return findPackageJson(parentDir);
+}
+
+export function readAndParsePackageJson() {
+ // Start searching from the current directory
+ const pkgPath = findPackageJson(__dirname);
+
+ // Read and parse the package.json
+ const str = readFileSync(pkgPath, 'utf8');
+ const pkg = JSON.parse(str);
+ return pkg;
+}
\ No newline at end of file
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
new file mode 100644
index 0000000..39ab010
--- /dev/null
+++ b/packages/inquirerer/src/prompt.ts
@@ -0,0 +1,55 @@
+import readline from 'readline';
+
+import { Question } from './question';
+
+export class Inquirerer {
+ private rl: readline.Interface | null;
+ private noTty: boolean;
+
+ constructor(noTty: boolean = false) {
+ this.noTty = noTty;
+ if (!noTty) {
+ this.rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ });
+ } else {
+ this.rl = null;
+ }
+ }
+
+ // Method to prompt for missing parameters
+ public async prompt(params: T, questions: Question[], usageText?: string): Promise {
+ const obj: any = { ...params };
+
+ if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
+ console.log(usageText);
+ }
+
+ for (const question of questions) {
+ if (obj[question.name] === undefined) {
+ if (!this.noTty) {
+ if (this.rl) {
+ obj[question.name] = await new Promise((resolve) => {
+ this.rl.question(`Enter ${question.name}: `, resolve);
+ });
+ } else {
+ throw new Error("No TTY available and a readline interface is missing.");
+ }
+ } else {
+ // Optionally handle noTty cases, e.g., set defaults or throw errors
+ throw new Error(`Missing required parameter: ${question.name}`);
+ }
+ }
+ }
+
+ return obj as T;
+ }
+
+ // Method to cleanly close the readline interface
+ public close() {
+ if (this.rl) {
+ this.rl.close();
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/inquirerer/src/question.ts b/packages/inquirerer/src/question.ts
new file mode 100644
index 0000000..3bab009
--- /dev/null
+++ b/packages/inquirerer/src/question.ts
@@ -0,0 +1,4 @@
+export interface Question {
+ name: string;
+ type?: string; // This can be used for further customizations like validating input based on type
+}
diff --git a/packages/inquirerer/src/utils.ts b/packages/inquirerer/src/utils.ts
new file mode 100644
index 0000000..0c5f44e
--- /dev/null
+++ b/packages/inquirerer/src/utils.ts
@@ -0,0 +1,10 @@
+import chalk from 'chalk';
+
+import { readAndParsePackageJson } from "./package";
+
+// Function to display the version information
+export function displayVersion() {
+ const pkg = readAndParsePackageJson();
+ console.log(chalk.green(`Name: ${pkg.name}`));
+ console.log(chalk.blue(`Version: ${pkg.version}`));
+}
diff --git a/packages/inquirerer/tsconfig.esm.json b/packages/inquirerer/tsconfig.esm.json
new file mode 100644
index 0000000..800d750
--- /dev/null
+++ b/packages/inquirerer/tsconfig.esm.json
@@ -0,0 +1,9 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist/esm",
+ "module": "es2022",
+ "rootDir": "src/",
+ "declaration": false
+ }
+}
diff --git a/packages/inquirerer/tsconfig.json b/packages/inquirerer/tsconfig.json
new file mode 100644
index 0000000..1a9d569
--- /dev/null
+++ b/packages/inquirerer/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src/"
+ },
+ "include": ["src/**/*.ts"],
+ "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"]
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..4c8a664
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "compilerOptions": {
+ "target": "es2022",
+ "module": "commonjs",
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "strictNullChecks": false,
+ "skipLibCheck": true,
+ "sourceMap": false,
+ "declaration": true,
+ "resolveJsonModule": true,
+ "moduleResolution": "node"
+ },
+ "exclude": ["dist", "node_modules"]
+}
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..57ac480
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,6838 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@aashutoshrathi/word-wrap@^1.2.3":
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
+ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+
+"@ampproject/remapping@^2.2.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
+ integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2":
+ version "7.24.2"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
+ integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
+ dependencies:
+ "@babel/highlight" "^7.24.2"
+ picocolors "^1.0.0"
+
+"@babel/compat-data@^7.23.5":
+ version "7.24.4"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a"
+ integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==
+
+"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
+ version "7.24.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717"
+ integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.24.2"
+ "@babel/generator" "^7.24.4"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helpers" "^7.24.4"
+ "@babel/parser" "^7.24.4"
+ "@babel/template" "^7.24.0"
+ "@babel/traverse" "^7.24.1"
+ "@babel/types" "^7.24.0"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
+"@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2":
+ version "7.24.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498"
+ integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==
+ dependencies:
+ "@babel/types" "^7.24.0"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
+ jsesc "^2.5.1"
+
+"@babel/helper-compilation-targets@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
+ integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
+ dependencies:
+ "@babel/compat-data" "^7.23.5"
+ "@babel/helper-validator-option" "^7.23.5"
+ browserslist "^4.22.2"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
+"@babel/helper-environment-visitor@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
+"@babel/helper-function-name@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
+
+"@babel/helper-hoist-variables@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-module-imports@^7.22.15":
+ version "7.24.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
+ integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
+ dependencies:
+ "@babel/types" "^7.24.0"
+
+"@babel/helper-module-transforms@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
+ integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.20"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.24.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
+ integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
+
+"@babel/helper-simple-access@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+ integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-string-parser@^7.23.4":
+ version "7.24.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
+ integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
+
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
+"@babel/helper-validator-option@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
+ integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
+
+"@babel/helpers@^7.24.4":
+ version "7.24.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6"
+ integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==
+ dependencies:
+ "@babel/template" "^7.24.0"
+ "@babel/traverse" "^7.24.1"
+ "@babel/types" "^7.24.0"
+
+"@babel/highlight@^7.24.2":
+ version "7.24.2"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
+ integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+ picocolors "^1.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4":
+ version "7.24.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88"
+ integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.8.3":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-import-meta@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.7.2":
+ version "7.24.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10"
+ integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.0"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-top-level-await@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.7.2":
+ version "7.24.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844"
+ integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.0"
+
+"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3":
+ version "7.24.0"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
+ integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
+ dependencies:
+ "@babel/code-frame" "^7.23.5"
+ "@babel/parser" "^7.24.0"
+ "@babel/types" "^7.24.0"
+
+"@babel/traverse@^7.24.1":
+ version "7.24.1"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
+ integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
+ dependencies:
+ "@babel/code-frame" "^7.24.1"
+ "@babel/generator" "^7.24.1"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.24.1"
+ "@babel/types" "^7.24.0"
+ debug "^4.3.1"
+ globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.3.3":
+ version "7.24.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
+ integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
+ dependencies:
+ "@babel/helper-string-parser" "^7.23.4"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ to-fast-properties "^2.0.0"
+
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@cspotcode/source-map-support@^0.8.0":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
+"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
+ integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+ dependencies:
+ eslint-visitor-keys "^3.3.0"
+
+"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
+ version "4.10.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
+ integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
+
+"@eslint/eslintrc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+ integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.6.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
+"@eslint/js@8.57.0":
+ version "8.57.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
+ integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
+
+"@gar/promisify@^1.1.3":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
+ integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
+
+"@humanwhocodes/config-array@^0.11.14":
+ version "0.11.14"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
+ integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
+ dependencies:
+ "@humanwhocodes/object-schema" "^2.0.2"
+ debug "^4.3.1"
+ minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
+ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+
+"@hutson/parse-repository-url@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
+ integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==
+
+"@isaacs/cliui@^8.0.2":
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
+ integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ dependencies:
+ string-width "^5.1.2"
+ string-width-cjs "npm:string-width@^4.2.0"
+ strip-ansi "^7.0.1"
+ strip-ansi-cjs "npm:strip-ansi@^6.0.1"
+ wrap-ansi "^8.1.0"
+ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+
+"@isaacs/string-locale-compare@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b"
+ integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
+
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
+ integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/core@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
+ integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/reporters" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-changed-files "^29.7.0"
+ jest-config "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-resolve-dependencies "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ jest-watcher "^29.7.0"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+"@jest/environment@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
+ integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
+ dependencies:
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+
+"@jest/expect-utils@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
+ integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
+ dependencies:
+ jest-get-type "^29.6.3"
+
+"@jest/expect@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
+ integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
+ dependencies:
+ expect "^29.7.0"
+ jest-snapshot "^29.7.0"
+
+"@jest/fake-timers@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
+ integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+"@jest/globals@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
+ integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ jest-mock "^29.7.0"
+
+"@jest/reporters@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
+ integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^6.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.1.3"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+ v8-to-istanbul "^9.0.1"
+
+"@jest/schemas@^29.4.3", "@jest/schemas@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+ dependencies:
+ "@sinclair/typebox" "^0.27.8"
+
+"@jest/source-map@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+ integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.18"
+ callsites "^3.0.0"
+ graceful-fs "^4.2.9"
+
+"@jest/test-result@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
+ integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
+ integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ slash "^3.0.0"
+
+"@jest/transform@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
+ integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
+"@jest/types@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+ integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
+"@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
+ integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
+ dependencies:
+ "@jridgewell/set-array" "^1.2.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+
+"@jridgewell/set-array@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
+ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
+ version "0.3.25"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
+ integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@lerna/child-process@6.6.2":
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-6.6.2.tgz#5d803c8dee81a4e013dc428292e77b365cba876c"
+ integrity sha512-QyKIWEnKQFnYu2ey+SAAm1A5xjzJLJJj3bhIZd3QKyXKKjaJ0hlxam/OsWSltxTNbcyH1jRJjC6Cxv31usv0Ag==
+ dependencies:
+ chalk "^4.1.0"
+ execa "^5.0.0"
+ strong-log-transformer "^2.1.0"
+
+"@lerna/create@6.6.2":
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/@lerna/create/-/create-6.6.2.tgz#39a36d80cddb355340c297ed785aa76f4498177f"
+ integrity sha512-xQ+1Y7D+9etvUlE+unhG/TwmM6XBzGIdFBaNoW8D8kyOa9M2Jf3vdEtAxVa7mhRz66CENfhL/+I/QkVaa7pwbQ==
+ dependencies:
+ "@lerna/child-process" "6.6.2"
+ dedent "^0.7.0"
+ fs-extra "^9.1.0"
+ init-package-json "^3.0.2"
+ npm-package-arg "8.1.1"
+ p-reduce "^2.1.0"
+ pacote "15.1.1"
+ pify "^5.0.0"
+ semver "^7.3.4"
+ slash "^3.0.0"
+ validate-npm-package-license "^3.0.4"
+ validate-npm-package-name "^4.0.0"
+ yargs-parser "20.2.4"
+
+"@lerna/legacy-package-management@6.6.2":
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/@lerna/legacy-package-management/-/legacy-package-management-6.6.2.tgz#411c395e72e563ab98f255df77e4068627a85bb0"
+ integrity sha512-0hZxUPKnHwehUO2xC4ldtdX9bW0W1UosxebDIQlZL2STnZnA2IFmIk2lJVUyFW+cmTPQzV93jfS0i69T9Z+teg==
+ dependencies:
+ "@npmcli/arborist" "6.2.3"
+ "@npmcli/run-script" "4.1.7"
+ "@nrwl/devkit" ">=15.5.2 < 16"
+ "@octokit/rest" "19.0.3"
+ byte-size "7.0.0"
+ chalk "4.1.0"
+ clone-deep "4.0.1"
+ cmd-shim "5.0.0"
+ columnify "1.6.0"
+ config-chain "1.1.12"
+ conventional-changelog-core "4.2.4"
+ conventional-recommended-bump "6.1.0"
+ cosmiconfig "7.0.0"
+ dedent "0.7.0"
+ dot-prop "6.0.1"
+ execa "5.0.0"
+ file-url "3.0.0"
+ find-up "5.0.0"
+ fs-extra "9.1.0"
+ get-port "5.1.1"
+ get-stream "6.0.0"
+ git-url-parse "13.1.0"
+ glob-parent "5.1.2"
+ globby "11.1.0"
+ graceful-fs "4.2.10"
+ has-unicode "2.0.1"
+ inquirer "8.2.4"
+ is-ci "2.0.0"
+ is-stream "2.0.0"
+ libnpmpublish "7.1.4"
+ load-json-file "6.2.0"
+ make-dir "3.1.0"
+ minimatch "3.0.5"
+ multimatch "5.0.0"
+ node-fetch "2.6.7"
+ npm-package-arg "8.1.1"
+ npm-packlist "5.1.1"
+ npm-registry-fetch "14.0.3"
+ npmlog "6.0.2"
+ p-map "4.0.0"
+ p-map-series "2.1.0"
+ p-queue "6.6.2"
+ p-waterfall "2.1.1"
+ pacote "15.1.1"
+ pify "5.0.0"
+ pretty-format "29.4.3"
+ read-cmd-shim "3.0.0"
+ read-package-json "5.0.1"
+ resolve-from "5.0.0"
+ semver "7.3.8"
+ signal-exit "3.0.7"
+ slash "3.0.0"
+ ssri "9.0.1"
+ strong-log-transformer "2.1.0"
+ tar "6.1.11"
+ temp-dir "1.0.0"
+ tempy "1.0.0"
+ upath "2.0.1"
+ uuid "8.3.2"
+ write-file-atomic "4.0.1"
+ write-pkg "4.0.0"
+ yargs "16.2.0"
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@npmcli/arborist@6.2.3":
+ version "6.2.3"
+ resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-6.2.3.tgz#31f8aed2588341864d3811151d929c01308f8e71"
+ integrity sha512-lpGOC2ilSJXcc2zfW9QtukcCTcMbl3fVI0z4wvFB2AFIl0C+Q6Wv7ccrpdrQa8rvJ1ZVuc6qkX7HVTyKlzGqKA==
+ dependencies:
+ "@isaacs/string-locale-compare" "^1.1.0"
+ "@npmcli/fs" "^3.1.0"
+ "@npmcli/installed-package-contents" "^2.0.0"
+ "@npmcli/map-workspaces" "^3.0.2"
+ "@npmcli/metavuln-calculator" "^5.0.0"
+ "@npmcli/name-from-folder" "^2.0.0"
+ "@npmcli/node-gyp" "^3.0.0"
+ "@npmcli/package-json" "^3.0.0"
+ "@npmcli/query" "^3.0.0"
+ "@npmcli/run-script" "^6.0.0"
+ bin-links "^4.0.1"
+ cacache "^17.0.4"
+ common-ancestor-path "^1.0.1"
+ hosted-git-info "^6.1.1"
+ json-parse-even-better-errors "^3.0.0"
+ json-stringify-nice "^1.1.4"
+ minimatch "^6.1.6"
+ nopt "^7.0.0"
+ npm-install-checks "^6.0.0"
+ npm-package-arg "^10.1.0"
+ npm-pick-manifest "^8.0.1"
+ npm-registry-fetch "^14.0.3"
+ npmlog "^7.0.1"
+ pacote "^15.0.8"
+ parse-conflict-json "^3.0.0"
+ proc-log "^3.0.0"
+ promise-all-reject-late "^1.0.0"
+ promise-call-limit "^1.0.1"
+ read-package-json-fast "^3.0.2"
+ semver "^7.3.7"
+ ssri "^10.0.1"
+ treeverse "^3.0.0"
+ walk-up-path "^1.0.0"
+
+"@npmcli/fs@^2.1.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865"
+ integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==
+ dependencies:
+ "@gar/promisify" "^1.1.3"
+ semver "^7.3.5"
+
+"@npmcli/fs@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e"
+ integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==
+ dependencies:
+ semver "^7.3.5"
+
+"@npmcli/git@^4.0.0", "@npmcli/git@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6"
+ integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==
+ dependencies:
+ "@npmcli/promise-spawn" "^6.0.0"
+ lru-cache "^7.4.4"
+ npm-pick-manifest "^8.0.0"
+ proc-log "^3.0.0"
+ promise-inflight "^1.0.1"
+ promise-retry "^2.0.1"
+ semver "^7.3.5"
+ which "^3.0.0"
+
+"@npmcli/installed-package-contents@^2.0.0", "@npmcli/installed-package-contents@^2.0.1":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33"
+ integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==
+ dependencies:
+ npm-bundled "^3.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
+"@npmcli/map-workspaces@^3.0.2":
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6"
+ integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==
+ dependencies:
+ "@npmcli/name-from-folder" "^2.0.0"
+ glob "^10.2.2"
+ minimatch "^9.0.0"
+ read-package-json-fast "^3.0.0"
+
+"@npmcli/metavuln-calculator@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-5.0.1.tgz#426b3e524c2008bcc82dbc2ef390aefedd643d76"
+ integrity sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q==
+ dependencies:
+ cacache "^17.0.0"
+ json-parse-even-better-errors "^3.0.0"
+ pacote "^15.0.0"
+ semver "^7.3.5"
+
+"@npmcli/move-file@^2.0.0":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4"
+ integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==
+ dependencies:
+ mkdirp "^1.0.4"
+ rimraf "^3.0.2"
+
+"@npmcli/name-from-folder@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815"
+ integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==
+
+"@npmcli/node-gyp@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35"
+ integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==
+
+"@npmcli/node-gyp@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a"
+ integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==
+
+"@npmcli/package-json@^3.0.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-3.1.1.tgz#5628332aac90fa1b4d6f98e03988c5958b35e0c5"
+ integrity sha512-+UW0UWOYFKCkvszLoTwrYGrjNrT8tI5Ckeb/h+Z1y1fsNJEctl7HmerA5j2FgmoqFaLI2gsA1X9KgMFqx/bRmA==
+ dependencies:
+ "@npmcli/git" "^4.1.0"
+ glob "^10.2.2"
+ json-parse-even-better-errors "^3.0.0"
+ normalize-package-data "^5.0.0"
+ npm-normalize-package-bin "^3.0.1"
+ proc-log "^3.0.0"
+
+"@npmcli/promise-spawn@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573"
+ integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==
+ dependencies:
+ infer-owner "^1.0.4"
+
+"@npmcli/promise-spawn@^6.0.0", "@npmcli/promise-spawn@^6.0.1":
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2"
+ integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==
+ dependencies:
+ which "^3.0.0"
+
+"@npmcli/query@^3.0.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.1.0.tgz#bc202c59e122a06cf8acab91c795edda2cdad42c"
+ integrity sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
+
+"@npmcli/run-script@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.1.7.tgz#b1a2f57568eb738e45e9ea3123fb054b400a86f7"
+ integrity sha512-WXr/MyM4tpKA4BotB81NccGAv8B48lNH0gRoILucbcAhTQXLCoi6HflMV3KdXubIqvP9SuLsFn68Z7r4jl+ppw==
+ dependencies:
+ "@npmcli/node-gyp" "^2.0.0"
+ "@npmcli/promise-spawn" "^3.0.0"
+ node-gyp "^9.0.0"
+ read-package-json-fast "^2.0.3"
+ which "^2.0.2"
+
+"@npmcli/run-script@^6.0.0":
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885"
+ integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==
+ dependencies:
+ "@npmcli/node-gyp" "^3.0.0"
+ "@npmcli/promise-spawn" "^6.0.0"
+ node-gyp "^9.0.0"
+ read-package-json-fast "^3.0.0"
+ which "^3.0.0"
+
+"@nrwl/cli@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.9.7.tgz#1db113f5cb1cfe63213097be1ece041eef33da1f"
+ integrity sha512-1jtHBDuJzA57My5nLzYiM372mJW0NY6rFKxlWt5a0RLsAZdPTHsd8lE3Gs9XinGC1jhXbruWmhhnKyYtZvX/zA==
+ dependencies:
+ nx "15.9.7"
+
+"@nrwl/devkit@>=15.5.2 < 16":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.9.7.tgz#14d19ec82ff4209c12147a97f1cdea05d8f6c087"
+ integrity sha512-Sb7Am2TMT8AVq8e+vxOlk3AtOA2M0qCmhBzoM1OJbdHaPKc0g0UgSnWRml1kPGg5qfPk72tWclLoZJ5/ut0vTg==
+ dependencies:
+ ejs "^3.1.7"
+ ignore "^5.0.4"
+ semver "7.5.4"
+ tmp "~0.2.1"
+ tslib "^2.3.0"
+
+"@nrwl/nx-darwin-arm64@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.7.tgz#a2cb7390c782b8acf3bb8806a3002620226a933d"
+ integrity sha512-aBUgnhlkrgC0vu0fK6eb9Vob7eFnkuknrK+YzTjmLrrZwj7FGNAeyGXSlyo1dVokIzjVKjJg2saZZ0WQbfuCJw==
+
+"@nrwl/nx-darwin-x64@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.7.tgz#af0437e726aeb97eb660646bfd9a7da5ba7a0a6f"
+ integrity sha512-L+elVa34jhGf1cmn38Z0sotQatmLovxoASCIw5r1CBZZeJ5Tg7Y9nOwjRiDixZxNN56hPKXm6xl9EKlVHVeKlg==
+
+"@nrwl/nx-linux-arm-gnueabihf@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.7.tgz#e29f4d31afa903bfb4d0fd7421e19be1086eae87"
+ integrity sha512-pqmfqqEUGFu6PmmHKyXyUw1Al0Ki8PSaR0+ndgCAb1qrekVDGDfznJfaqxN0JSLeolPD6+PFtLyXNr9ZyPFlFg==
+
+"@nrwl/nx-linux-arm64-gnu@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.7.tgz#eb2880a24d3268dd93583d21a6a0b9ff96bb23b4"
+ integrity sha512-NYOa/eRrqmM+In5g3M0rrPVIS9Z+q6fvwXJYf/KrjOHqqan/KL+2TOfroA30UhcBrwghZvib7O++7gZ2hzwOnA==
+
+"@nrwl/nx-linux-arm64-musl@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.7.tgz#5d04913c4672a96cefa78491824620d8a8bcfd7f"
+ integrity sha512-zyStqjEcmbvLbejdTOrLUSEdhnxNtdQXlmOuymznCzYUEGRv+4f7OAepD3yRoR0a/57SSORZmmGQB7XHZoYZJA==
+
+"@nrwl/nx-linux-x64-gnu@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.7.tgz#cf7f61fd87f35a793e6824952a6eb12242fe43fd"
+ integrity sha512-saNK5i2A8pKO3Il+Ejk/KStTApUpWgCxjeUz9G+T8A+QHeDloZYH2c7pU/P3jA9QoNeKwjVO9wYQllPL9loeVg==
+
+"@nrwl/nx-linux-x64-musl@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.7.tgz#2bec23c3696780540eb47fa1358dda780c84697f"
+ integrity sha512-extIUThYN94m4Vj4iZggt6hhMZWQSukBCo8pp91JHnDcryBg7SnYmnikwtY1ZAFyyRiNFBLCKNIDFGkKkSrZ9Q==
+
+"@nrwl/nx-win32-arm64-msvc@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.7.tgz#21b56ef3ab4190370effea71bd83fdc3e47ec69c"
+ integrity sha512-GSQ54hJ5AAnKZb4KP4cmBnJ1oC4ILxnrG1mekxeM65c1RtWg9NpBwZ8E0gU3xNrTv8ZNsBeKi/9UhXBxhsIh8A==
+
+"@nrwl/nx-win32-x64-msvc@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.7.tgz#1677ab1dcce921706b5677dc2844e3e0027f8bd5"
+ integrity sha512-x6URof79RPd8AlapVbPefUD3ynJZpmah3tYaYZ9xZRMXojVtEHV8Qh5vysKXQ1rNYJiiB8Ah6evSKWLbAH60tw==
+
+"@nrwl/tao@15.9.7":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.9.7.tgz#c0e78c99caa6742762f7558f20d8524bc9015e97"
+ integrity sha512-OBnHNvQf3vBH0qh9YnvBQQWyyFZ+PWguF6dJ8+1vyQYlrLVk/XZ8nJ4ukWFb+QfPv/O8VBmqaofaOI9aFC4yTw==
+ dependencies:
+ nx "15.9.7"
+
+"@octokit/auth-token@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db"
+ integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==
+
+"@octokit/core@^4.0.0":
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907"
+ integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==
+ dependencies:
+ "@octokit/auth-token" "^3.0.0"
+ "@octokit/graphql" "^5.0.0"
+ "@octokit/request" "^6.0.0"
+ "@octokit/request-error" "^3.0.0"
+ "@octokit/types" "^9.0.0"
+ before-after-hook "^2.2.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/endpoint@^7.0.0":
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2"
+ integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==
+ dependencies:
+ "@octokit/types" "^9.0.0"
+ is-plain-object "^5.0.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/graphql@^5.0.0":
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248"
+ integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==
+ dependencies:
+ "@octokit/request" "^6.0.0"
+ "@octokit/types" "^9.0.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/openapi-types@^12.11.0":
+ version "12.11.0"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
+ integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
+
+"@octokit/openapi-types@^14.0.0":
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a"
+ integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==
+
+"@octokit/openapi-types@^18.0.0":
+ version "18.1.1"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009"
+ integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==
+
+"@octokit/plugin-enterprise-rest@6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437"
+ integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==
+
+"@octokit/plugin-paginate-rest@^3.0.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.1.0.tgz#86f8be759ce2d6d7c879a31490fd2f7410b731f0"
+ integrity sha512-+cfc40pMzWcLkoDcLb1KXqjX0jTGYXjKuQdFQDc6UAknISJHnZTiBqld6HDwRJvD4DsouDKrWXNbNV0lE/3AXA==
+ dependencies:
+ "@octokit/types" "^6.41.0"
+
+"@octokit/plugin-request-log@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"
+ integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==
+
+"@octokit/plugin-rest-endpoint-methods@^6.0.0":
+ version "6.8.1"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.8.1.tgz#97391fda88949eb15f68dc291957ccbe1d3e8ad1"
+ integrity sha512-QrlaTm8Lyc/TbU7BL/8bO49vp+RZ6W3McxxmmQTgYxf2sWkO8ZKuj4dLhPNJD6VCUW1hetCmeIM0m6FTVpDiEg==
+ dependencies:
+ "@octokit/types" "^8.1.1"
+ deprecation "^2.3.1"
+
+"@octokit/request-error@^3.0.0":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69"
+ integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==
+ dependencies:
+ "@octokit/types" "^9.0.0"
+ deprecation "^2.0.0"
+ once "^1.4.0"
+
+"@octokit/request@^6.0.0":
+ version "6.2.8"
+ resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb"
+ integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==
+ dependencies:
+ "@octokit/endpoint" "^7.0.0"
+ "@octokit/request-error" "^3.0.0"
+ "@octokit/types" "^9.0.0"
+ is-plain-object "^5.0.0"
+ node-fetch "^2.6.7"
+ universal-user-agent "^6.0.0"
+
+"@octokit/rest@19.0.3":
+ version "19.0.3"
+ resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02"
+ integrity sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==
+ dependencies:
+ "@octokit/core" "^4.0.0"
+ "@octokit/plugin-paginate-rest" "^3.0.0"
+ "@octokit/plugin-request-log" "^1.0.4"
+ "@octokit/plugin-rest-endpoint-methods" "^6.0.0"
+
+"@octokit/types@^6.41.0":
+ version "6.41.0"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
+ integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
+ dependencies:
+ "@octokit/openapi-types" "^12.11.0"
+
+"@octokit/types@^8.1.1":
+ version "8.2.1"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.2.1.tgz#a6de091ae68b5541f8d4fcf9a12e32836d4648aa"
+ integrity sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw==
+ dependencies:
+ "@octokit/openapi-types" "^14.0.0"
+
+"@octokit/types@^9.0.0":
+ version "9.3.2"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5"
+ integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==
+ dependencies:
+ "@octokit/openapi-types" "^18.0.0"
+
+"@parcel/watcher@2.0.4":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b"
+ integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==
+ dependencies:
+ node-addon-api "^3.2.1"
+ node-gyp-build "^4.3.0"
+
+"@pkgjs/parseargs@^0.11.0":
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
+ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+
+"@sigstore/bundle@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1"
+ integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==
+ dependencies:
+ "@sigstore/protobuf-specs" "^0.2.0"
+
+"@sigstore/protobuf-specs@^0.2.0":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b"
+ integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==
+
+"@sigstore/sign@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4"
+ integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==
+ dependencies:
+ "@sigstore/bundle" "^1.1.0"
+ "@sigstore/protobuf-specs" "^0.2.0"
+ make-fetch-happen "^11.0.1"
+
+"@sigstore/tuf@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160"
+ integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==
+ dependencies:
+ "@sigstore/protobuf-specs" "^0.2.0"
+ tuf-js "^1.1.7"
+
+"@sinclair/typebox@^0.27.8":
+ version "0.27.8"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+
+"@sinonjs/commons@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
+ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+ integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+ dependencies:
+ "@sinonjs/commons" "^3.0.0"
+
+"@tootallnate/once@2":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+ integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+
+"@tsconfig/node10@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
+ integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
+
+"@tsconfig/node12@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
+ integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
+
+"@tsconfig/node14@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
+ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
+
+"@tsconfig/node16@^1.0.2":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
+ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
+
+"@tufjs/canonical-json@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31"
+ integrity sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==
+
+"@tufjs/models@1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.4.tgz#5a689630f6b9dbda338d4b208019336562f176ef"
+ integrity sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==
+ dependencies:
+ "@tufjs/canonical-json" "1.0.0"
+ minimatch "^9.0.0"
+
+"@types/babel__core@^7.1.14":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
+ integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.6.8"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
+ integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
+ integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd"
+ integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==
+ dependencies:
+ "@babel/types" "^7.20.7"
+
+"@types/graceful-fs@^4.1.3":
+ version "4.1.9"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
+ integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
+ integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
+
+"@types/istanbul-lib-report@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
+ integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
+ integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+"@types/jest@^29.5.11":
+ version "29.5.12"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544"
+ integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==
+ dependencies:
+ expect "^29.0.0"
+ pretty-format "^29.0.0"
+
+"@types/json-schema@^7.0.12":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+"@types/minimatch@^3.0.3":
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
+ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
+
+"@types/minimist@^1.2.0", "@types/minimist@^1.2.2":
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e"
+ integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
+
+"@types/node@*", "@types/node@^20.12.7":
+ version "20.12.7"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
+ integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==
+ dependencies:
+ undici-types "~5.26.4"
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.4"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
+ integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
+
+"@types/parse-json@^4.0.0":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
+ integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
+
+"@types/semver@^7.5.0":
+ version "7.5.8"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
+ integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
+
+"@types/stack-utils@^2.0.0":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
+ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
+
+"@types/yargs-parser@*":
+ version "21.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
+ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
+
+"@types/yargs@^17.0.8":
+ version "17.0.32"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229"
+ integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@^6.18.1":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3"
+ integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==
+ dependencies:
+ "@eslint-community/regexpp" "^4.5.1"
+ "@typescript-eslint/scope-manager" "6.21.0"
+ "@typescript-eslint/type-utils" "6.21.0"
+ "@typescript-eslint/utils" "6.21.0"
+ "@typescript-eslint/visitor-keys" "6.21.0"
+ debug "^4.3.4"
+ graphemer "^1.4.0"
+ ignore "^5.2.4"
+ natural-compare "^1.4.0"
+ semver "^7.5.4"
+ ts-api-utils "^1.0.1"
+
+"@typescript-eslint/parser@^6.18.1":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b"
+ integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==
+ dependencies:
+ "@typescript-eslint/scope-manager" "6.21.0"
+ "@typescript-eslint/types" "6.21.0"
+ "@typescript-eslint/typescript-estree" "6.21.0"
+ "@typescript-eslint/visitor-keys" "6.21.0"
+ debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@6.21.0":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1"
+ integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==
+ dependencies:
+ "@typescript-eslint/types" "6.21.0"
+ "@typescript-eslint/visitor-keys" "6.21.0"
+
+"@typescript-eslint/type-utils@6.21.0":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e"
+ integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "6.21.0"
+ "@typescript-eslint/utils" "6.21.0"
+ debug "^4.3.4"
+ ts-api-utils "^1.0.1"
+
+"@typescript-eslint/types@6.21.0":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
+ integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
+
+"@typescript-eslint/typescript-estree@6.21.0":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46"
+ integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==
+ dependencies:
+ "@typescript-eslint/types" "6.21.0"
+ "@typescript-eslint/visitor-keys" "6.21.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ minimatch "9.0.3"
+ semver "^7.5.4"
+ ts-api-utils "^1.0.1"
+
+"@typescript-eslint/utils@6.21.0":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134"
+ integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.4.0"
+ "@types/json-schema" "^7.0.12"
+ "@types/semver" "^7.5.0"
+ "@typescript-eslint/scope-manager" "6.21.0"
+ "@typescript-eslint/types" "6.21.0"
+ "@typescript-eslint/typescript-estree" "6.21.0"
+ semver "^7.5.4"
+
+"@typescript-eslint/visitor-keys@6.21.0":
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47"
+ integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==
+ dependencies:
+ "@typescript-eslint/types" "6.21.0"
+ eslint-visitor-keys "^3.4.1"
+
+"@ungap/structured-clone@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
+ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+
+"@yarnpkg/lockfile@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
+ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
+
+"@yarnpkg/parsers@3.0.0-rc.46":
+ version "3.0.0-rc.46"
+ resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01"
+ integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==
+ dependencies:
+ js-yaml "^3.10.0"
+ tslib "^2.4.0"
+
+"@zkochan/js-yaml@0.0.6":
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826"
+ integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==
+ dependencies:
+ argparse "^2.0.1"
+
+JSONStream@^1.0.4:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
+ integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
+ dependencies:
+ jsonparse "^1.2.0"
+ through ">=2.2.7 <3"
+
+abbrev@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+abbrev@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
+ integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==
+
+acorn-jsx@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-walk@^8.1.1:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
+ integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
+
+acorn@^8.4.1, acorn@^8.9.0:
+ version "8.11.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
+ integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
+
+add-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
+ integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==
+
+agent-base@6, agent-base@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
+agentkeepalive@^4.2.1:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
+ integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
+ dependencies:
+ humanize-ms "^1.2.1"
+
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
+aggregate-error@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e"
+ integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==
+ dependencies:
+ clean-stack "^4.0.0"
+ indent-string "^5.0.0"
+
+ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-colors@^4.1.1:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
+ integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
+
+ansi-escapes@^4.2.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+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-regex@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
+ansi-styles@^3.2.1:
+ 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==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.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 "^2.0.1"
+
+ansi-styles@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+ integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
+ansi-styles@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+
+anymatch@^3.0.3:
+ 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"
+
+"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
+ integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
+
+are-we-there-yet@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd"
+ integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^3.6.0"
+
+are-we-there-yet@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a"
+ integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==
+
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+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"
+
+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==
+
+array-differ@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
+ integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==
+
+array-ify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
+ integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==
+
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+ integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==
+
+arrify@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
+ integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+
+async@^3.2.3:
+ version "3.2.5"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
+ integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
+axios@^1.0.0:
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
+ integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
+ dependencies:
+ follow-redirects "^1.15.6"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
+babel-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
+ integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
+ dependencies:
+ "@jest/transform" "^29.7.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.6.3"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
+babel-plugin-istanbul@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+ integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+ integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
+
+babel-preset-jest@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+ integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+ dependencies:
+ babel-plugin-jest-hoist "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+before-after-hook@^2.2.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
+ integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
+
+bin-links@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5"
+ integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA==
+ dependencies:
+ cmd-shim "^6.0.0"
+ npm-normalize-package-bin "^3.0.0"
+ read-cmd-shim "^4.0.0"
+ write-file-atomic "^5.0.0"
+
+bl@^4.0.3, bl@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ 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"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browserslist@^4.22.2:
+ version "4.23.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab"
+ integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
+ dependencies:
+ caniuse-lite "^1.0.30001587"
+ electron-to-chromium "^1.4.668"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.13"
+
+bs-logger@0.x:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
+ integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
+ dependencies:
+ fast-json-stable-stringify "2.x"
+
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+buffer@^5.5.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
+builtins@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
+ integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==
+
+builtins@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8"
+ integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==
+ dependencies:
+ semver "^7.0.0"
+
+byte-size@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032"
+ integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==
+
+cacache@^16.1.0:
+ version "16.1.3"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e"
+ integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==
+ dependencies:
+ "@npmcli/fs" "^2.1.0"
+ "@npmcli/move-file" "^2.0.0"
+ chownr "^2.0.0"
+ fs-minipass "^2.1.0"
+ glob "^8.0.1"
+ infer-owner "^1.0.4"
+ lru-cache "^7.7.1"
+ minipass "^3.1.6"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ mkdirp "^1.0.4"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^9.0.0"
+ tar "^6.1.11"
+ unique-filename "^2.0.0"
+
+cacache@^17.0.0, cacache@^17.0.4:
+ version "17.1.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35"
+ integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==
+ dependencies:
+ "@npmcli/fs" "^3.1.0"
+ fs-minipass "^3.0.0"
+ glob "^10.2.2"
+ lru-cache "^7.7.1"
+ minipass "^7.0.3"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ p-map "^4.0.0"
+ ssri "^10.0.0"
+ tar "^6.1.11"
+ unique-filename "^3.0.0"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase-keys@^6.2.2:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0"
+ integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==
+ dependencies:
+ camelcase "^5.3.1"
+ map-obj "^4.0.0"
+ quick-lru "^4.0.1"
+
+camelcase-keys@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252"
+ integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==
+ dependencies:
+ camelcase "^6.3.0"
+ map-obj "^4.1.0"
+ quick-lru "^5.1.1"
+ type-fest "^1.2.1"
+
+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.2.0, camelcase@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+caniuse-lite@^1.0.30001587:
+ version "1.0.30001611"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001611.tgz#4dbe78935b65851c2d2df1868af39f709a93a96e"
+ integrity sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q==
+
+chalk@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+ integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1:
+ 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"
+
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
+chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+ci-info@^3.2.0, ci-info@^3.6.1:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+cjs-module-lexer@^1.0.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
+ integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
+
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+clean-stack@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31"
+ integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==
+ dependencies:
+ escape-string-regexp "5.0.0"
+
+cli-cursor@3.1.0, cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
+cli-spinners@2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
+ integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
+
+cli-spinners@^2.5.0:
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
+ integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
+
+cli-width@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+ integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+
+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 "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
+clone-deep@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+
+cmd-shim@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724"
+ integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==
+ dependencies:
+ mkdirp-infer-owner "^2.0.0"
+
+cmd-shim@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4"
+ integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw==
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
+collect-v8-coverage@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
+ integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
+
+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"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ 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 sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-support@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
+ integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
+
+columnify@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3"
+ integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==
+ dependencies:
+ strip-ansi "^6.0.1"
+ wcwidth "^1.0.0"
+
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+common-ancestor-path@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
+ integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==
+
+compare-func@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3"
+ integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==
+ dependencies:
+ array-ify "^1.0.0"
+ dot-prop "^5.1.0"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+concat-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1"
+ integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.0.2"
+ typedarray "^0.0.6"
+
+config-chain@1.1.12:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
+ integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
+console-control-strings@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
+
+conventional-changelog-angular@5.0.12:
+ version "5.0.12"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9"
+ integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==
+ dependencies:
+ compare-func "^2.0.0"
+ q "^1.5.1"
+
+conventional-changelog-core@4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f"
+ integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==
+ dependencies:
+ add-stream "^1.0.0"
+ conventional-changelog-writer "^5.0.0"
+ conventional-commits-parser "^3.2.0"
+ dateformat "^3.0.0"
+ get-pkg-repo "^4.0.0"
+ git-raw-commits "^2.0.8"
+ git-remote-origin-url "^2.0.0"
+ git-semver-tags "^4.1.1"
+ lodash "^4.17.15"
+ normalize-package-data "^3.0.0"
+ q "^1.5.1"
+ read-pkg "^3.0.0"
+ read-pkg-up "^3.0.0"
+ through2 "^4.0.0"
+
+conventional-changelog-preset-loader@^2.3.4:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c"
+ integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==
+
+conventional-changelog-writer@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359"
+ integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==
+ dependencies:
+ conventional-commits-filter "^2.0.7"
+ dateformat "^3.0.0"
+ handlebars "^4.7.7"
+ json-stringify-safe "^5.0.1"
+ lodash "^4.17.15"
+ meow "^8.0.0"
+ semver "^6.0.0"
+ split "^1.0.0"
+ through2 "^4.0.0"
+
+conventional-commits-filter@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3"
+ integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==
+ dependencies:
+ lodash.ismatch "^4.4.0"
+ modify-values "^1.0.0"
+
+conventional-commits-parser@^3.2.0:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972"
+ integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==
+ dependencies:
+ JSONStream "^1.0.4"
+ is-text-path "^1.0.1"
+ lodash "^4.17.15"
+ meow "^8.0.0"
+ split2 "^3.0.0"
+ through2 "^4.0.0"
+
+conventional-recommended-bump@6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55"
+ integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==
+ dependencies:
+ concat-stream "^2.0.0"
+ conventional-changelog-preset-loader "^2.3.4"
+ conventional-commits-filter "^2.0.7"
+ conventional-commits-parser "^3.2.0"
+ git-raw-commits "^2.0.8"
+ git-semver-tags "^4.1.1"
+ meow "^8.0.0"
+ q "^1.5.1"
+
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
+copyfiles@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5"
+ integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==
+ dependencies:
+ glob "^7.0.5"
+ minimatch "^3.0.3"
+ mkdirp "^1.0.4"
+ noms "0.0.0"
+ through2 "^2.0.1"
+ untildify "^4.0.0"
+ yargs "^16.1.0"
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+cosmiconfig@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
+ integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.2.1"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.10.0"
+
+create-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
+ integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ prompts "^2.0.1"
+
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+crypto-random-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+ integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+dargs@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
+ integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
+
+dateformat@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
+ integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
+
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, 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"
+
+decamelize-keys@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8"
+ integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==
+ dependencies:
+ decamelize "^1.1.0"
+ map-obj "^1.0.0"
+
+decamelize@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+
+decamelize@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9"
+ integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==
+
+dedent@0.7.0, dedent@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+ integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+
+dedent@^1.0.0:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a"
+ integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==
+
+deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^4.2.2, deepmerge@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+
+defaults@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
+ integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
+ dependencies:
+ clone "^1.0.2"
+
+define-lazy-prop@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+ integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+
+del-cli@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-5.1.0.tgz#740eca1c7a9eb13043e68d8a361cf0ff9a18d5c8"
+ integrity sha512-xwMeh2acluWeccsfzE7VLsG3yTr7nWikbfw+xhMnpRrF15pGSkw+3/vJZWlGoE4I86UiLRNHicmKt4tkIX9Jtg==
+ dependencies:
+ del "^7.1.0"
+ meow "^10.1.3"
+
+del@^6.0.0:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a"
+ integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==
+ dependencies:
+ globby "^11.0.1"
+ graceful-fs "^4.2.4"
+ is-glob "^4.0.1"
+ is-path-cwd "^2.2.0"
+ is-path-inside "^3.0.2"
+ p-map "^4.0.0"
+ rimraf "^3.0.2"
+ slash "^3.0.0"
+
+del@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-7.1.0.tgz#0de0044d556b649ff05387f1fa7c885e155fd1b6"
+ integrity sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==
+ dependencies:
+ globby "^13.1.2"
+ graceful-fs "^4.2.10"
+ is-glob "^4.0.3"
+ is-path-cwd "^3.0.0"
+ is-path-inside "^4.0.0"
+ p-map "^5.5.0"
+ rimraf "^3.0.2"
+ slash "^4.0.0"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
+
+deprecation@^2.0.0, deprecation@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
+ integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
+
+detect-indent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
+ integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==
+
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
+diff-sequences@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+ integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ dependencies:
+ path-type "^4.0.0"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
+dot-prop@6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
+ integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
+ dependencies:
+ is-obj "^2.0.0"
+
+dot-prop@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+ integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ dependencies:
+ is-obj "^2.0.0"
+
+dotenv@~10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
+ integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+
+duplexer@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+ integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
+ejs@^3.1.7:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
+ integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
+ dependencies:
+ jake "^10.8.5"
+
+electron-to-chromium@^1.4.668:
+ version "1.4.745"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.745.tgz#9c202ce9cbf18a5b5e0ca47145fd127cc4dd2290"
+ integrity sha512-tRbzkaRI5gbUn5DEvF0dV4TQbMZ5CLkWeTAXmpC9IrYT+GE+x76i9p+o3RJ5l9XmdQlI1pPhVtE9uNcJJ0G0EA==
+
+emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
+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==
+
+emoji-regex@^9.2.2:
+ version "9.2.2"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+encoding@^0.1.13:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+ dependencies:
+ iconv-lite "^0.6.2"
+
+end-of-stream@^1.4.1:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
+enquirer@~2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+ dependencies:
+ ansi-colors "^4.1.1"
+
+env-paths@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
+envinfo@^7.7.4:
+ version "7.12.0"
+ resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.12.0.tgz#b56723b39c2053d67ea5714f026d05d4f5cc7acd"
+ integrity sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==
+
+err-code@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
+ integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+escalade@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
+ integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
+
+escape-string-regexp@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
+ integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+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==
+
+eslint-config-prettier@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
+ integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
+
+eslint-plugin-simple-import-sort@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351"
+ integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==
+
+eslint-plugin-unused-imports@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.1.0.tgz#db015b569d3774e17a482388c95c17bd303bc602"
+ integrity sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==
+ dependencies:
+ eslint-rule-composer "^0.3.0"
+
+eslint-rule-composer@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"
+ integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==
+
+eslint-scope@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
+ integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint@^8.56.0:
+ version "8.57.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
+ integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.6.1"
+ "@eslint/eslintrc" "^2.1.4"
+ "@eslint/js" "8.57.0"
+ "@humanwhocodes/config-array" "^0.11.14"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ "@ungap/structured-clone" "^1.2.0"
+ ajv "^6.12.4"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.3.2"
+ doctrine "^3.0.0"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^7.2.2"
+ eslint-visitor-keys "^3.4.3"
+ espree "^9.6.1"
+ esquery "^1.4.2"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^6.0.1"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-yaml "^4.1.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.3"
+ strip-ansi "^6.0.1"
+ text-table "^0.2.0"
+
+espree@^9.6.0, espree@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+ integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+ dependencies:
+ acorn "^8.9.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.4.1"
+
+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==
+
+esquery@^1.4.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
+ integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+eventemitter3@^4.0.4:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
+execa@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376"
+ integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
+
+expect@^29.0.0, expect@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
+ integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
+ dependencies:
+ "@jest/expect-utils" "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+
+exponential-backoff@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
+ integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==
+
+external-editor@^3.0.3:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@3.2.7:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
+ integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-glob@^3.2.9, fast-glob@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+ integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+fastq@^1.6.0:
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
+ integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
+ dependencies:
+ reusify "^1.0.4"
+
+fb-watchman@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
+ integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
+ dependencies:
+ bser "2.1.1"
+
+figures@3.2.0, figures@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+file-entry-cache@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+ integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ dependencies:
+ flat-cache "^3.0.4"
+
+file-url@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/file-url/-/file-url-3.0.0.tgz#247a586a746ce9f7a8ed05560290968afc262a77"
+ integrity sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==
+
+filelist@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
+ integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ dependencies:
+ minimatch "^5.0.1"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+find-up@5.0.0, find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
+find-up@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
+ dependencies:
+ locate-path "^2.0.0"
+
+find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
+ integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
+ dependencies:
+ flatted "^3.2.9"
+ keyv "^4.5.3"
+ rimraf "^3.0.2"
+
+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==
+
+flatted@^3.2.9:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
+ integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
+
+follow-redirects@^1.15.6:
+ version "1.15.6"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
+ integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+
+foreground-child@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
+ integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^4.0.1"
+
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+fs-constants@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+ integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+
+fs-extra@9.1.0, fs-extra@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+fs-extra@^11.1.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
+ integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+fs-minipass@^2.0.0, fs-minipass@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ dependencies:
+ minipass "^3.0.0"
+
+fs-minipass@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54"
+ integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==
+ dependencies:
+ minipass "^7.0.3"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+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==
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+gauge@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
+ integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
+ dependencies:
+ aproba "^1.0.3 || ^2.0.0"
+ color-support "^1.1.3"
+ console-control-strings "^1.1.0"
+ has-unicode "^2.0.1"
+ signal-exit "^3.0.7"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+ wide-align "^1.1.5"
+
+gauge@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112"
+ integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==
+ dependencies:
+ aproba "^1.0.3 || ^2.0.0"
+ color-support "^1.1.3"
+ console-control-strings "^1.1.0"
+ has-unicode "^2.0.1"
+ signal-exit "^4.0.1"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+ wide-align "^1.1.5"
+
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+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==
+
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+get-pkg-repo@^4.0.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385"
+ integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==
+ dependencies:
+ "@hutson/parse-repository-url" "^3.0.0"
+ hosted-git-info "^4.0.0"
+ through2 "^2.0.0"
+ yargs "^16.2.0"
+
+get-port@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193"
+ integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==
+
+get-stream@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
+ integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
+
+get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+git-raw-commits@^2.0.8:
+ version "2.0.11"
+ resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723"
+ integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==
+ dependencies:
+ dargs "^7.0.0"
+ lodash "^4.17.15"
+ meow "^8.0.0"
+ split2 "^3.0.0"
+ through2 "^4.0.0"
+
+git-remote-origin-url@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f"
+ integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==
+ dependencies:
+ gitconfiglocal "^1.0.0"
+ pify "^2.3.0"
+
+git-semver-tags@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780"
+ integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==
+ dependencies:
+ meow "^8.0.0"
+ semver "^6.0.0"
+
+git-up@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467"
+ integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==
+ dependencies:
+ is-ssh "^1.4.0"
+ parse-url "^8.1.0"
+
+git-url-parse@13.1.0:
+ version "13.1.0"
+ resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4"
+ integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==
+ dependencies:
+ git-up "^7.0.0"
+
+gitconfiglocal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b"
+ integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==
+ dependencies:
+ ini "^1.3.2"
+
+glob-parent@5.1.2, 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-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
+glob@7.1.4:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+ integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+ 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@8.1.0, glob@^8.0.1:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
+ integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^5.0.1"
+ once "^1.3.0"
+
+glob@^10.0.0, glob@^10.2.2:
+ version "10.3.12"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b"
+ integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==
+ dependencies:
+ foreground-child "^3.1.0"
+ jackspeak "^2.3.6"
+ minimatch "^9.0.1"
+ minipass "^7.0.4"
+ path-scurry "^1.10.2"
+
+glob@^7.0.5, glob@^7.1.3, glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^9.2.0:
+ version "9.3.5"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21"
+ integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ minimatch "^8.0.2"
+ minipass "^4.2.4"
+ path-scurry "^1.6.1"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^13.19.0:
+ version "13.24.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
+ integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ dependencies:
+ type-fest "^0.20.2"
+
+globby@11.1.0, globby@^11.0.1, globby@^11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+ integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.2.9"
+ ignore "^5.2.0"
+ merge2 "^1.4.1"
+ slash "^3.0.0"
+
+globby@^13.1.2:
+ version "13.2.2"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592"
+ integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==
+ dependencies:
+ dir-glob "^3.0.1"
+ fast-glob "^3.3.0"
+ ignore "^5.2.4"
+ merge2 "^1.4.1"
+ slash "^4.0.0"
+
+graceful-fs@4.2.10:
+ version "4.2.10"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
+ integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+handlebars@^4.7.7:
+ version "4.7.8"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
+ integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.2"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
+hard-rejection@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
+ integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+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-unicode@2.0.1, has-unicode@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
+
+hasown@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ dependencies:
+ function-bind "^1.1.2"
+
+hosted-git-info@^2.1.4:
+ version "2.8.9"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+hosted-git-info@^3.0.6:
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d"
+ integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==
+ dependencies:
+ lru-cache "^6.0.0"
+
+hosted-git-info@^4.0.0, hosted-git-info@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224"
+ integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==
+ dependencies:
+ lru-cache "^6.0.0"
+
+hosted-git-info@^5.0.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f"
+ integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==
+ dependencies:
+ lru-cache "^7.5.1"
+
+hosted-git-info@^6.0.0, hosted-git-info@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58"
+ integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==
+ dependencies:
+ lru-cache "^7.5.1"
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
+ integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
+
+http-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+ integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ dependencies:
+ "@tootallnate/once" "2"
+ agent-base "6"
+ debug "4"
+
+https-proxy-agent@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
+human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+humanize-ms@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+ integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
+ dependencies:
+ ms "^2.0.0"
+
+iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@^0.6.2:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+ieee754@^1.1.13:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+ignore-walk@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776"
+ integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==
+ dependencies:
+ minimatch "^5.0.1"
+
+ignore-walk@^6.0.0:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9"
+ integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==
+ dependencies:
+ minimatch "^9.0.0"
+
+ignore@^5.0.4, ignore@^5.2.0, ignore@^5.2.4:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
+ integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
+
+import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-local@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
+ integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+indent-string@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
+ integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
+
+infer-owner@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ini@^1.3.2, ini@^1.3.4:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+init-package-json@3.0.2, init-package-json@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69"
+ integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==
+ dependencies:
+ npm-package-arg "^9.0.1"
+ promzard "^0.3.0"
+ read "^1.0.7"
+ read-package-json "^5.0.0"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+ validate-npm-package-name "^4.0.0"
+
+inquirer@8.2.4:
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4"
+ integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==
+ 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.4.1"
+ run-async "^2.4.0"
+ rxjs "^7.5.5"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+ wrap-ansi "^7.0.0"
+
+inquirer@^8.2.4:
+ version "8.2.6"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562"
+ integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==
+ 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.4.1"
+ run-async "^2.4.0"
+ rxjs "^7.5.5"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+ wrap-ansi "^6.0.1"
+
+ip-address@^9.0.5:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
+ integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==
+ dependencies:
+ jsbn "1.1.0"
+ sprintf-js "^1.1.3"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-ci@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
+is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1:
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
+ integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
+ dependencies:
+ hasown "^2.0.0"
+
+is-docker@^2.0.0, is-docker@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+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-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-interactive@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+ integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+
+is-lambda@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
+ integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
+
+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-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-path-cwd@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+ integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
+
+is-path-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7"
+ integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==
+
+is-path-inside@^3.0.2, is-path-inside@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-path-inside@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db"
+ integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==
+
+is-plain-obj@^1.0.0, 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 sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
+
+is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-plain-object@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
+ integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+
+is-ssh@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2"
+ integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==
+ dependencies:
+ protocols "^2.0.1"
+
+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-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+is-text-path@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e"
+ integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==
+ dependencies:
+ text-extensions "^1.0.0"
+
+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==
+
+is-wsl@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
+
+isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
+ integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
+
+istanbul-lib-instrument@^5.0.4:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
+ integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
+
+istanbul-lib-instrument@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1"
+ integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==
+ dependencies:
+ "@babel/core" "^7.23.9"
+ "@babel/parser" "^7.23.9"
+ "@istanbuljs/schema" "^0.1.3"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^7.5.4"
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
+ integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^4.0.0"
+ supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+istanbul-reports@^3.1.3:
+ version "3.1.7"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b"
+ integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
+jackspeak@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
+ integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
+ dependencies:
+ "@isaacs/cliui" "^8.0.2"
+ optionalDependencies:
+ "@pkgjs/parseargs" "^0.11.0"
+
+jake@^10.8.5:
+ version "10.8.7"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f"
+ integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==
+ dependencies:
+ async "^3.2.3"
+ chalk "^4.0.2"
+ filelist "^1.0.4"
+ minimatch "^3.1.2"
+
+jest-changed-files@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
+ integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
+ dependencies:
+ execa "^5.0.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+
+jest-circus@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
+ integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ dedent "^1.0.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^29.7.0"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+ pretty-format "^29.7.0"
+ pure-rand "^6.0.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-cli@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
+ integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ create-jest "^29.7.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ yargs "^17.3.1"
+
+jest-config@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
+ integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-jest "^29.7.0"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-circus "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ micromatch "^4.0.4"
+ parse-json "^5.2.0"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-json-comments "^3.1.1"
+
+jest-diff@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
+ integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^29.6.3"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-docblock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
+ integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
+ dependencies:
+ detect-newline "^3.0.0"
+
+jest-each@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
+ integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ jest-util "^29.7.0"
+ pretty-format "^29.7.0"
+
+jest-environment-node@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
+ integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
+jest-get-type@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+ integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
+jest-haste-map@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
+ integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+jest-leak-detector@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
+ integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
+ dependencies:
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-matcher-utils@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
+ integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
+jest-message-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
+ integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.6.3"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-mock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
+ integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-util "^29.7.0"
+
+jest-pnp-resolver@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
+ integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
+
+jest-regex-util@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+ integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
+jest-resolve-dependencies@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
+ integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
+ dependencies:
+ jest-regex-util "^29.6.3"
+ jest-snapshot "^29.7.0"
+
+jest-resolve@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
+ integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
+ dependencies:
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ resolve "^1.20.0"
+ resolve.exports "^2.0.0"
+ slash "^3.0.0"
+
+jest-runner@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
+ integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/environment" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ graceful-fs "^4.2.9"
+ jest-docblock "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-leak-detector "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-resolve "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-util "^29.7.0"
+ jest-watcher "^29.7.0"
+ jest-worker "^29.7.0"
+ p-limit "^3.1.0"
+ source-map-support "0.5.13"
+
+jest-runtime@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
+ integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/globals" "^29.7.0"
+ "@jest/source-map" "^29.6.3"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ cjs-module-lexer "^1.0.0"
+ collect-v8-coverage "^1.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+
+jest-snapshot@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
+ integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+ chalk "^4.0.0"
+ expect "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ natural-compare "^1.4.0"
+ pretty-format "^29.7.0"
+ semver "^7.5.3"
+
+jest-util@^29.0.0, jest-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
+ integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
+ integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ camelcase "^6.2.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ leven "^3.1.0"
+ pretty-format "^29.7.0"
+
+jest-watcher@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
+ integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ jest-util "^29.7.0"
+ string-length "^4.0.1"
+
+jest-worker@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
+ integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
+ dependencies:
+ "@types/node" "*"
+ jest-util "^29.7.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest@^29.6.2:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
+ integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ import-local "^3.0.2"
+ jest-cli "^29.7.0"
+
+js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@4.1.0, 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 "^2.0.1"
+
+js-yaml@^3.10.0, js-yaml@^3.13.1:
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsbn@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
+ integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-parse-even-better-errors@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0"
+ integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
+json-stringify-nice@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67"
+ integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==
+
+json-stringify-safe@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+
+json5@^2.2.2, json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+jsonc-parser@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
+ integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
+
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonparse@^1.2.0, jsonparse@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
+ integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
+
+just-diff-apply@^5.2.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f"
+ integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==
+
+just-diff@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
+ integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
+
+keyv@^4.5.3:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+ integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ dependencies:
+ json-buffer "3.0.1"
+
+kind-of@^6.0.2, kind-of@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+lerna@^6:
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.6.2.tgz#ad921f913aca4e7307123a598768b6f15ca5804f"
+ integrity sha512-W4qrGhcdutkRdHEaDf9eqp7u4JvI+1TwFy5woX6OI8WPe4PYBdxuILAsvhp614fUG41rKSGDKlOh+AWzdSidTg==
+ dependencies:
+ "@lerna/child-process" "6.6.2"
+ "@lerna/create" "6.6.2"
+ "@lerna/legacy-package-management" "6.6.2"
+ "@npmcli/arborist" "6.2.3"
+ "@npmcli/run-script" "4.1.7"
+ "@nrwl/devkit" ">=15.5.2 < 16"
+ "@octokit/plugin-enterprise-rest" "6.0.1"
+ "@octokit/rest" "19.0.3"
+ byte-size "7.0.0"
+ chalk "4.1.0"
+ clone-deep "4.0.1"
+ cmd-shim "5.0.0"
+ columnify "1.6.0"
+ config-chain "1.1.12"
+ conventional-changelog-angular "5.0.12"
+ conventional-changelog-core "4.2.4"
+ conventional-recommended-bump "6.1.0"
+ cosmiconfig "7.0.0"
+ dedent "0.7.0"
+ dot-prop "6.0.1"
+ envinfo "^7.7.4"
+ execa "5.0.0"
+ fs-extra "9.1.0"
+ get-port "5.1.1"
+ get-stream "6.0.0"
+ git-url-parse "13.1.0"
+ glob-parent "5.1.2"
+ globby "11.1.0"
+ graceful-fs "4.2.10"
+ has-unicode "2.0.1"
+ import-local "^3.0.2"
+ init-package-json "3.0.2"
+ inquirer "^8.2.4"
+ is-ci "2.0.0"
+ is-stream "2.0.0"
+ js-yaml "^4.1.0"
+ libnpmaccess "^6.0.3"
+ libnpmpublish "7.1.4"
+ load-json-file "6.2.0"
+ make-dir "3.1.0"
+ minimatch "3.0.5"
+ multimatch "5.0.0"
+ node-fetch "2.6.7"
+ npm-package-arg "8.1.1"
+ npm-packlist "5.1.1"
+ npm-registry-fetch "^14.0.3"
+ npmlog "^6.0.2"
+ nx ">=15.5.2 < 16"
+ p-map "4.0.0"
+ p-map-series "2.1.0"
+ p-pipe "3.1.0"
+ p-queue "6.6.2"
+ p-reduce "2.1.0"
+ p-waterfall "2.1.1"
+ pacote "15.1.1"
+ pify "5.0.0"
+ read-cmd-shim "3.0.0"
+ read-package-json "5.0.1"
+ resolve-from "5.0.0"
+ rimraf "^4.4.1"
+ semver "^7.3.8"
+ signal-exit "3.0.7"
+ slash "3.0.0"
+ ssri "9.0.1"
+ strong-log-transformer "2.1.0"
+ tar "6.1.11"
+ temp-dir "1.0.0"
+ typescript "^3 || ^4"
+ upath "^2.0.1"
+ uuid "8.3.2"
+ validate-npm-package-license "3.0.4"
+ validate-npm-package-name "4.0.0"
+ write-file-atomic "4.0.1"
+ write-pkg "4.0.0"
+ yargs "16.2.0"
+ yargs-parser "20.2.4"
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+libnpmaccess@^6.0.3:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b"
+ integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==
+ dependencies:
+ aproba "^2.0.0"
+ minipass "^3.1.1"
+ npm-package-arg "^9.0.1"
+ npm-registry-fetch "^13.0.0"
+
+libnpmpublish@7.1.4:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-7.1.4.tgz#a0d138e00e52a0c71ffc82273acf0082fc2dfb36"
+ integrity sha512-mMntrhVwut5prP4rJ228eEbEyvIzLWhqFuY90j5QeXBCTT2pWSMno7Yo2S2qplPUr02zPurGH4heGLZ+wORczg==
+ dependencies:
+ ci-info "^3.6.1"
+ normalize-package-data "^5.0.0"
+ npm-package-arg "^10.1.0"
+ npm-registry-fetch "^14.0.3"
+ proc-log "^3.0.0"
+ semver "^7.3.7"
+ sigstore "^1.4.0"
+ ssri "^10.0.1"
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+lines-and-columns@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42"
+ integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==
+
+load-json-file@6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1"
+ integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==
+ dependencies:
+ graceful-fs "^4.1.15"
+ parse-json "^5.0.0"
+ strip-bom "^4.0.0"
+ type-fest "^0.6.0"
+
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ dependencies:
+ p-locate "^5.0.0"
+
+lodash.ismatch@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
+ integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==
+
+lodash.memoize@4.x:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash@^4.17.15, lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+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.1.0"
+ is-unicode-supported "^0.1.0"
+
+lru-cache@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
+ integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
+
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1:
+ version "7.18.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
+ integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+
+make-dir@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+make-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+make-dir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
+ integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
+ dependencies:
+ semver "^7.5.3"
+
+make-error@1.x, make-error@^1.1.1:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6:
+ version "10.2.1"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
+ integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==
+ dependencies:
+ agentkeepalive "^4.2.1"
+ cacache "^16.1.0"
+ http-cache-semantics "^4.1.0"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.0"
+ is-lambda "^1.0.1"
+ lru-cache "^7.7.1"
+ minipass "^3.1.6"
+ minipass-collect "^1.0.2"
+ minipass-fetch "^2.0.3"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ negotiator "^0.6.3"
+ promise-retry "^2.0.1"
+ socks-proxy-agent "^7.0.0"
+ ssri "^9.0.0"
+
+make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1:
+ version "11.1.1"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f"
+ integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==
+ dependencies:
+ agentkeepalive "^4.2.1"
+ cacache "^17.0.0"
+ http-cache-semantics "^4.1.1"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.0"
+ is-lambda "^1.0.1"
+ lru-cache "^7.7.1"
+ minipass "^5.0.0"
+ minipass-fetch "^3.0.0"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ negotiator "^0.6.3"
+ promise-retry "^2.0.1"
+ socks-proxy-agent "^7.0.0"
+ ssri "^10.0.0"
+
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
+
+map-obj@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+ integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==
+
+map-obj@^4.0.0, map-obj@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
+ integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
+
+meow@^10.1.3:
+ version "10.1.5"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f"
+ integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==
+ dependencies:
+ "@types/minimist" "^1.2.2"
+ camelcase-keys "^7.0.0"
+ decamelize "^5.0.0"
+ decamelize-keys "^1.1.0"
+ hard-rejection "^2.1.0"
+ minimist-options "4.1.0"
+ normalize-package-data "^3.0.2"
+ read-pkg-up "^8.0.0"
+ redent "^4.0.0"
+ trim-newlines "^4.0.2"
+ type-fest "^1.2.2"
+ yargs-parser "^20.2.9"
+
+meow@^8.0.0:
+ version "8.1.2"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897"
+ integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==
+ dependencies:
+ "@types/minimist" "^1.2.0"
+ camelcase-keys "^6.2.2"
+ decamelize-keys "^1.1.0"
+ hard-rejection "^2.1.0"
+ minimist-options "4.1.0"
+ normalize-package-data "^3.0.0"
+ read-pkg-up "^7.0.1"
+ redent "^3.0.0"
+ trim-newlines "^3.0.0"
+ type-fest "^0.18.0"
+ yargs-parser "^20.2.3"
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0, merge2@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.4:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+min-indent@^1.0.0, min-indent@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
+ integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+
+minimatch@3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3"
+ integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimatch@9.0.3:
+ version "9.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
+ integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimatch@^5.0.1:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
+ integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^6.1.6:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42"
+ integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^8.0.2:
+ version "8.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229"
+ integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimatch@^9.0.0, minimatch@^9.0.1:
+ version "9.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
+ integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+minimist-options@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
+ integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==
+ dependencies:
+ arrify "^1.0.1"
+ is-plain-obj "^1.1.0"
+ kind-of "^6.0.3"
+
+minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+minipass-collect@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+ integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-fetch@^2.0.3:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add"
+ integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==
+ dependencies:
+ minipass "^3.1.6"
+ minipass-sized "^1.0.3"
+ minizlib "^2.1.2"
+ optionalDependencies:
+ encoding "^0.1.13"
+
+minipass-fetch@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7"
+ integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==
+ dependencies:
+ minipass "^7.0.3"
+ minipass-sized "^1.0.3"
+ minizlib "^2.1.2"
+ optionalDependencies:
+ encoding "^0.1.13"
+
+minipass-flush@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+ integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-json-stream@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7"
+ integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==
+ dependencies:
+ jsonparse "^1.3.1"
+ minipass "^3.0.0"
+
+minipass-pipeline@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+ integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-sized@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
+ integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6:
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
+ integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
+ dependencies:
+ yallist "^4.0.0"
+
+minipass@^4.0.0, minipass@^4.2.4:
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a"
+ integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==
+
+minipass@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
+ integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
+
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3, minipass@^7.0.4:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
+ integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+
+minizlib@^2.1.1, minizlib@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+ integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+ dependencies:
+ minipass "^3.0.0"
+ yallist "^4.0.0"
+
+mkdirp-infer-owner@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316"
+ integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==
+ dependencies:
+ chownr "^2.0.0"
+ infer-owner "^1.0.4"
+ mkdirp "^1.0.3"
+
+mkdirp@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.0.tgz#758101231418bda24435c0888a91d9bd91f1372d"
+ integrity sha512-7+JDnNsyCvZXoUJdkMR0oUE2AmAdsNXGTmRbiOjYIwQ6q+bL6NwrozGQdPcmYaNcrhH37F50HHBUzoaBV6FITQ==
+
+mkdirp@^1.0.3, mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+modify-values@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
+ integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@^2.0.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+multimatch@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6"
+ integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==
+ dependencies:
+ "@types/minimatch" "^3.0.3"
+ array-differ "^3.0.0"
+ array-union "^2.1.0"
+ arrify "^2.0.1"
+ minimatch "^3.0.4"
+
+mute-stream@0.0.8, mute-stream@~0.0.4:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+negotiator@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+node-addon-api@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+ integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+
+node-fetch@2.6.7:
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
+ integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-fetch@^2.6.7:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-gyp-build@^4.3.0:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
+ integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
+
+node-gyp@^9.0.0:
+ version "9.4.1"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185"
+ integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==
+ dependencies:
+ env-paths "^2.2.0"
+ exponential-backoff "^3.1.1"
+ glob "^7.1.4"
+ graceful-fs "^4.2.6"
+ make-fetch-happen "^10.0.3"
+ nopt "^6.0.0"
+ npmlog "^6.0.0"
+ rimraf "^3.0.2"
+ semver "^7.3.5"
+ tar "^6.1.2"
+ which "^2.0.2"
+
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+
+noms@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859"
+ integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "~1.0.31"
+
+nopt@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
+ integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==
+ dependencies:
+ abbrev "^1.0.0"
+
+nopt@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7"
+ integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==
+ dependencies:
+ abbrev "^2.0.0"
+
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-package-data@^3.0.0, normalize-package-data@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e"
+ integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==
+ dependencies:
+ hosted-git-info "^4.0.1"
+ is-core-module "^2.5.0"
+ semver "^7.3.4"
+ validate-npm-package-license "^3.0.1"
+
+normalize-package-data@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c"
+ integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==
+ dependencies:
+ hosted-git-info "^5.0.0"
+ is-core-module "^2.8.1"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+
+normalize-package-data@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588"
+ integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==
+ dependencies:
+ hosted-git-info "^6.0.0"
+ is-core-module "^2.8.1"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+npm-bundled@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
+ integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
+ dependencies:
+ npm-normalize-package-bin "^1.0.1"
+
+npm-bundled@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7"
+ integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==
+ dependencies:
+ npm-normalize-package-bin "^3.0.0"
+
+npm-install-checks@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe"
+ integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==
+ dependencies:
+ semver "^7.1.1"
+
+npm-normalize-package-bin@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
+ integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
+
+npm-normalize-package-bin@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff"
+ integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==
+
+npm-normalize-package-bin@^3.0.0, npm-normalize-package-bin@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832"
+ integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==
+
+npm-package-arg@8.1.1:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04"
+ integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==
+ dependencies:
+ hosted-git-info "^3.0.6"
+ semver "^7.0.0"
+ validate-npm-package-name "^3.0.0"
+
+npm-package-arg@^10.0.0, npm-package-arg@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1"
+ integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==
+ dependencies:
+ hosted-git-info "^6.0.0"
+ proc-log "^3.0.0"
+ semver "^7.3.5"
+ validate-npm-package-name "^5.0.0"
+
+npm-package-arg@^9.0.1:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc"
+ integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==
+ dependencies:
+ hosted-git-info "^5.0.0"
+ proc-log "^2.0.1"
+ semver "^7.3.5"
+ validate-npm-package-name "^4.0.0"
+
+npm-packlist@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0"
+ integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==
+ dependencies:
+ glob "^8.0.1"
+ ignore-walk "^5.0.1"
+ npm-bundled "^1.1.2"
+ npm-normalize-package-bin "^1.0.1"
+
+npm-packlist@^7.0.0:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.4.tgz#033bf74110eb74daf2910dc75144411999c5ff32"
+ integrity sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==
+ dependencies:
+ ignore-walk "^6.0.0"
+
+npm-pick-manifest@^8.0.0, npm-pick-manifest@^8.0.1:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa"
+ integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==
+ dependencies:
+ npm-install-checks "^6.0.0"
+ npm-normalize-package-bin "^3.0.0"
+ npm-package-arg "^10.0.0"
+ semver "^7.3.5"
+
+npm-registry-fetch@14.0.3:
+ version "14.0.3"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz#8545e321c2b36d2c6fe6e009e77e9f0e527f547b"
+ integrity sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==
+ dependencies:
+ make-fetch-happen "^11.0.0"
+ minipass "^4.0.0"
+ minipass-fetch "^3.0.0"
+ minipass-json-stream "^1.0.1"
+ minizlib "^2.1.2"
+ npm-package-arg "^10.0.0"
+ proc-log "^3.0.0"
+
+npm-registry-fetch@^13.0.0:
+ version "13.3.1"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e"
+ integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==
+ dependencies:
+ make-fetch-happen "^10.0.6"
+ minipass "^3.1.6"
+ minipass-fetch "^2.0.3"
+ minipass-json-stream "^1.0.1"
+ minizlib "^2.1.2"
+ npm-package-arg "^9.0.1"
+ proc-log "^2.0.0"
+
+npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3:
+ version "14.0.5"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d"
+ integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==
+ dependencies:
+ make-fetch-happen "^11.0.0"
+ minipass "^5.0.0"
+ minipass-fetch "^3.0.0"
+ minipass-json-stream "^1.0.1"
+ minizlib "^2.1.2"
+ npm-package-arg "^10.0.0"
+ proc-log "^3.0.0"
+
+npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+npmlog@6.0.2, npmlog@^6.0.0, npmlog@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
+ integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
+ dependencies:
+ are-we-there-yet "^3.0.0"
+ console-control-strings "^1.1.0"
+ gauge "^4.0.3"
+ set-blocking "^2.0.0"
+
+npmlog@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8"
+ integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==
+ dependencies:
+ are-we-there-yet "^4.0.0"
+ console-control-strings "^1.1.0"
+ gauge "^5.0.0"
+ set-blocking "^2.0.0"
+
+nx@15.9.7, "nx@>=15.5.2 < 16":
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/nx/-/nx-15.9.7.tgz#f0e713cedb8637a517d9c4795c99afec4959a1b6"
+ integrity sha512-1qlEeDjX9OKZEryC8i4bA+twNg+lB5RKrozlNwWx/lLJHqWPUfvUTvxh+uxlPYL9KzVReQjUuxMLFMsHNqWUrA==
+ dependencies:
+ "@nrwl/cli" "15.9.7"
+ "@nrwl/tao" "15.9.7"
+ "@parcel/watcher" "2.0.4"
+ "@yarnpkg/lockfile" "^1.1.0"
+ "@yarnpkg/parsers" "3.0.0-rc.46"
+ "@zkochan/js-yaml" "0.0.6"
+ axios "^1.0.0"
+ chalk "^4.1.0"
+ cli-cursor "3.1.0"
+ cli-spinners "2.6.1"
+ cliui "^7.0.2"
+ dotenv "~10.0.0"
+ enquirer "~2.3.6"
+ fast-glob "3.2.7"
+ figures "3.2.0"
+ flat "^5.0.2"
+ fs-extra "^11.1.0"
+ glob "7.1.4"
+ ignore "^5.0.4"
+ js-yaml "4.1.0"
+ jsonc-parser "3.2.0"
+ lines-and-columns "~2.0.3"
+ minimatch "3.0.5"
+ npm-run-path "^4.0.1"
+ open "^8.4.0"
+ semver "7.5.4"
+ string-width "^4.2.3"
+ strong-log-transformer "^2.1.0"
+ tar-stream "~2.2.0"
+ tmp "~0.2.1"
+ tsconfig-paths "^4.1.2"
+ tslib "^2.3.0"
+ v8-compile-cache "2.3.0"
+ yargs "^17.6.2"
+ yargs-parser "21.1.1"
+ optionalDependencies:
+ "@nrwl/nx-darwin-arm64" "15.9.7"
+ "@nrwl/nx-darwin-x64" "15.9.7"
+ "@nrwl/nx-linux-arm-gnueabihf" "15.9.7"
+ "@nrwl/nx-linux-arm64-gnu" "15.9.7"
+ "@nrwl/nx-linux-arm64-musl" "15.9.7"
+ "@nrwl/nx-linux-x64-gnu" "15.9.7"
+ "@nrwl/nx-linux-x64-musl" "15.9.7"
+ "@nrwl/nx-win32-arm64-msvc" "15.9.7"
+ "@nrwl/nx-win32-x64-msvc" "15.9.7"
+
+once@^1.3.0, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+onetime@^5.1.0, onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+open@^8.4.0:
+ version "8.4.2"
+ resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
+ integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
+ dependencies:
+ define-lazy-prop "^2.0.0"
+ is-docker "^2.1.1"
+ is-wsl "^2.2.0"
+
+optionator@^0.9.3:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
+ integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
+ dependencies:
+ "@aashutoshrathi/word-wrap" "^1.2.3"
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+
+ora@^5.4.1:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
+ integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==
+ 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"
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+ dependencies:
+ p-try "^1.0.0"
+
+p-limit@^2.2.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, p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
+ dependencies:
+ p-limit "^1.1.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+p-map-series@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2"
+ integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==
+
+p-map@4.0.0, p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
+p-map@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715"
+ integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==
+ dependencies:
+ aggregate-error "^4.0.0"
+
+p-pipe@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e"
+ integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==
+
+p-queue@6.6.2:
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426"
+ integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==
+ dependencies:
+ eventemitter3 "^4.0.4"
+ p-timeout "^3.2.0"
+
+p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a"
+ integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==
+
+p-timeout@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
+ integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
+ dependencies:
+ p-finally "^1.0.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+p-waterfall@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee"
+ integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==
+ dependencies:
+ p-reduce "^2.0.0"
+
+pacote@15.1.1:
+ version "15.1.1"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.1.1.tgz#94d8c6e0605e04d427610b3aacb0357073978348"
+ integrity sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==
+ dependencies:
+ "@npmcli/git" "^4.0.0"
+ "@npmcli/installed-package-contents" "^2.0.1"
+ "@npmcli/promise-spawn" "^6.0.1"
+ "@npmcli/run-script" "^6.0.0"
+ cacache "^17.0.0"
+ fs-minipass "^3.0.0"
+ minipass "^4.0.0"
+ npm-package-arg "^10.0.0"
+ npm-packlist "^7.0.0"
+ npm-pick-manifest "^8.0.0"
+ npm-registry-fetch "^14.0.0"
+ proc-log "^3.0.0"
+ promise-retry "^2.0.1"
+ read-package-json "^6.0.0"
+ read-package-json-fast "^3.0.0"
+ sigstore "^1.0.0"
+ ssri "^10.0.0"
+ tar "^6.1.11"
+
+pacote@^15.0.0, pacote@^15.0.8:
+ version "15.2.0"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3"
+ integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==
+ dependencies:
+ "@npmcli/git" "^4.0.0"
+ "@npmcli/installed-package-contents" "^2.0.1"
+ "@npmcli/promise-spawn" "^6.0.1"
+ "@npmcli/run-script" "^6.0.0"
+ cacache "^17.0.0"
+ fs-minipass "^3.0.0"
+ minipass "^5.0.0"
+ npm-package-arg "^10.0.0"
+ npm-packlist "^7.0.0"
+ npm-pick-manifest "^8.0.0"
+ npm-registry-fetch "^14.0.0"
+ proc-log "^3.0.0"
+ promise-retry "^2.0.1"
+ read-package-json "^6.0.0"
+ read-package-json-fast "^3.0.0"
+ sigstore "^1.3.0"
+ ssri "^10.0.0"
+ tar "^6.1.11"
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-conflict-json@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c"
+ integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==
+ dependencies:
+ json-parse-even-better-errors "^3.0.0"
+ just-diff "^6.0.0"
+ just-diff-apply "^5.2.0"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+parse-json@^5.0.0, parse-json@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+parse-path@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b"
+ integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==
+ dependencies:
+ protocols "^2.0.0"
+
+parse-url@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d"
+ integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==
+ dependencies:
+ parse-path "^7.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-scurry@^1.10.2, path-scurry@^1.6.1:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7"
+ integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==
+ dependencies:
+ lru-cache "^10.2.0"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+ integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+ dependencies:
+ pify "^3.0.0"
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pify@5.0.0, pify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f"
+ integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==
+
+pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pirates@^4.0.4:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+
+pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+postcss-selector-parser@^6.0.10:
+ version "6.0.16"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04"
+ integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prettier@^3.0.2:
+ version "3.2.5"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368"
+ integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==
+
+pretty-format@29.4.3:
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c"
+ integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==
+ dependencies:
+ "@jest/schemas" "^29.4.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
+pretty-format@^29.0.0, pretty-format@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
+ integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
+proc-log@^2.0.0, proc-log@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685"
+ integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==
+
+proc-log@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8"
+ integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+promise-all-reject-late@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2"
+ integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==
+
+promise-call-limit@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea"
+ integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
+
+promise-retry@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
+ integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
+ dependencies:
+ err-code "^2.0.2"
+ retry "^0.12.0"
+
+prompts@^2.0.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+promzard@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
+ integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==
+ dependencies:
+ read "1"
+
+proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+ integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
+
+protocols@^2.0.0, protocols@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86"
+ integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==
+
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+pure-rand@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
+ integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
+
+q@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-lru@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
+ integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
+
+quick-lru@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+react-is@^18.0.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
+ integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
+read-cmd-shim@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155"
+ integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==
+
+read-cmd-shim@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb"
+ integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==
+
+read-package-json-fast@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83"
+ integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==
+ dependencies:
+ json-parse-even-better-errors "^2.3.0"
+ npm-normalize-package-bin "^1.0.1"
+
+read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049"
+ integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==
+ dependencies:
+ json-parse-even-better-errors "^3.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
+read-package-json@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26"
+ integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==
+ dependencies:
+ glob "^8.0.1"
+ json-parse-even-better-errors "^2.3.1"
+ normalize-package-data "^4.0.0"
+ npm-normalize-package-bin "^1.0.1"
+
+read-package-json@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa"
+ integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==
+ dependencies:
+ glob "^8.0.1"
+ json-parse-even-better-errors "^2.3.1"
+ normalize-package-data "^4.0.0"
+ npm-normalize-package-bin "^2.0.0"
+
+read-package-json@^6.0.0:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836"
+ integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==
+ dependencies:
+ glob "^10.2.2"
+ json-parse-even-better-errors "^3.0.0"
+ normalize-package-data "^5.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
+read-pkg-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
+ integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^3.0.0"
+
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+ dependencies:
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
+
+read-pkg-up@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670"
+ integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==
+ dependencies:
+ find-up "^5.0.0"
+ read-pkg "^6.0.0"
+ type-fest "^1.0.1"
+
+read-pkg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+ integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==
+ dependencies:
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.0.0"
+
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
+read-pkg@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c"
+ integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^3.0.2"
+ parse-json "^5.2.0"
+ type-fest "^1.0.1"
+
+read@1, read@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
+ integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==
+ dependencies:
+ mute-stream "~0.0.4"
+
+readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readable-stream@~1.0.31:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+readable-stream@~2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+redent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+ integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+ dependencies:
+ indent-string "^4.0.0"
+ strip-indent "^3.0.0"
+
+redent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9"
+ integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==
+ dependencies:
+ indent-string "^5.0.0"
+ strip-indent "^4.0.0"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
+resolve-from@5.0.0, resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve.exports@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
+ integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
+
+resolve@^1.10.0, resolve@^1.20.0:
+ version "1.22.8"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.0.tgz#5bda14e410d7e4dd522154891395802ce032c2cb"
+ integrity sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==
+ dependencies:
+ glob "^10.0.0"
+
+rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@^4.4.1:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755"
+ integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==
+ dependencies:
+ glob "^9.2.0"
+
+run-async@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+ integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
+rxjs@^7.5.5:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
+ integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
+ dependencies:
+ tslib "^2.1.0"
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+"semver@2 || 3 || 4 || 5", semver@^5.6.0:
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+ integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+
+semver@7.3.8:
+ version "7.3.8"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
+ integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
+ dependencies:
+ lru-cache "^6.0.0"
+
+semver@7.5.4:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
+semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4:
+ version "7.6.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
+ integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
+ dependencies:
+ lru-cache "^6.0.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 sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+signal-exit@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+sigstore@^1.0.0, sigstore@^1.3.0, sigstore@^1.4.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875"
+ integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==
+ dependencies:
+ "@sigstore/bundle" "^1.1.0"
+ "@sigstore/protobuf-specs" "^0.2.0"
+ "@sigstore/sign" "^1.0.0"
+ "@sigstore/tuf" "^1.0.3"
+ make-fetch-happen "^11.0.1"
+
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slash@3.0.0, slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slash@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
+ integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
+
+smart-buffer@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks-proxy-agent@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6"
+ integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==
+ dependencies:
+ agent-base "^6.0.2"
+ debug "^4.3.3"
+ socks "^2.6.2"
+
+socks@^2.6.2:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
+ integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
+ dependencies:
+ ip-address "^9.0.5"
+ smart-buffer "^4.2.0"
+
+sort-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
+ integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+source-map-support@0.5.13:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@^0.6.0, source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+spdx-correct@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
+ integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66"
+ integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.17"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c"
+ integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==
+
+split2@^3.0.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f"
+ integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==
+ dependencies:
+ readable-stream "^3.0.0"
+
+split@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
+ integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
+ dependencies:
+ through "2"
+
+sprintf-js@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
+ integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+ssri@9.0.1, ssri@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057"
+ integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==
+ dependencies:
+ minipass "^3.1.1"
+
+ssri@^10.0.0, ssri@^10.0.1:
+ version "10.0.5"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c"
+ integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==
+ dependencies:
+ minipass "^7.0.3"
+
+stack-utils@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
+ integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+ integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+ dependencies:
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
+
+"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ 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:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^5.0.1, string-width@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ dependencies:
+ eastasianwidth "^0.2.0"
+ emoji-regex "^9.2.2"
+ strip-ansi "^7.0.1"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6, 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 "^5.0.1"
+
+strip-ansi@^7.0.1:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ dependencies:
+ ansi-regex "^6.0.1"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
+
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-indent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+ integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+ dependencies:
+ min-indent "^1.0.0"
+
+strip-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853"
+ integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==
+ dependencies:
+ min-indent "^1.0.1"
+
+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==
+
+strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10"
+ integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==
+ dependencies:
+ duplexer "^0.1.1"
+ minimist "^1.2.0"
+ through "^2.3.4"
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-color@^8.0.0:
+ 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"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+symlink-workspace@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/symlink-workspace/-/symlink-workspace-1.1.0.tgz#476811e1fb5a00c529e44c8b37765dbefff77e19"
+ integrity sha512-7kF6g/7bpDRCi7KdJNPnMrXURehpb6Sd5yHePSnHT+8pD2uec5Se3KPHwyUFFK/vEYhgKX6qabtr1Qmrtzjr8g==
+ dependencies:
+ chalk "4.1.2"
+ glob "8.1.0"
+ minimist "^1.2.8"
+ mkdirp "3.0.0"
+ rimraf "5.0.0"
+
+tar-stream@~2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+ integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
+tar@6.1.11:
+ version "6.1.11"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+ integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
+tar@^6.1.11, tar@^6.1.2:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
+ integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^5.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
+temp-dir@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
+ integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==
+
+temp-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
+ integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
+
+tempy@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.0.tgz#4f192b3ee3328a2684d0e3fc5c491425395aab65"
+ integrity sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==
+ dependencies:
+ del "^6.0.0"
+ is-stream "^2.0.0"
+ temp-dir "^2.0.0"
+ type-fest "^0.16.0"
+ unique-string "^2.0.0"
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
+text-extensions@^1.0.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26"
+ integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
+through2@^2.0.0, through2@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+through2@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
+ integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
+ dependencies:
+ readable-stream "3"
+
+through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+tmp@~0.2.1:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
+ integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
+
+tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+
+treeverse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8"
+ integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==
+
+trim-newlines@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
+ integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
+
+trim-newlines@^4.0.2:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125"
+ integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==
+
+ts-api-utils@^1.0.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
+ integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
+
+ts-jest@^29.1.1:
+ version "29.1.2"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09"
+ integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==
+ dependencies:
+ bs-logger "0.x"
+ fast-json-stable-stringify "2.x"
+ jest-util "^29.0.0"
+ json5 "^2.2.3"
+ lodash.memoize "4.x"
+ make-error "1.x"
+ semver "^7.5.3"
+ yargs-parser "^21.0.1"
+
+ts-node@^10.9.2:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
+ integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
+ dependencies:
+ "@cspotcode/source-map-support" "^0.8.0"
+ "@tsconfig/node10" "^1.0.7"
+ "@tsconfig/node12" "^1.0.7"
+ "@tsconfig/node14" "^1.0.0"
+ "@tsconfig/node16" "^1.0.2"
+ acorn "^8.4.1"
+ acorn-walk "^8.1.1"
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ v8-compile-cache-lib "^3.0.1"
+ yn "3.1.1"
+
+tsconfig-paths@^4.1.2:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
+ integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==
+ dependencies:
+ json5 "^2.2.2"
+ minimist "^1.2.6"
+ strip-bom "^3.0.0"
+
+tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
+tuf-js@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43"
+ integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==
+ dependencies:
+ "@tufjs/models" "1.0.4"
+ debug "^4.3.4"
+ make-fetch-happen "^11.1.1"
+
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.16.0:
+ version "0.16.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
+ integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
+
+type-fest@^0.18.0:
+ version "0.18.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
+ integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
+
+type-fest@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+ integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-fest@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8"
+ integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
+ integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
+"typescript@^3 || ^4":
+ version "4.9.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
+ integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+
+typescript@^5.1.6:
+ version "5.4.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"
+ integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==
+
+uglify-js@^3.1.4:
+ version "3.17.4"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
+ integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
+
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+unique-filename@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2"
+ integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==
+ dependencies:
+ unique-slug "^3.0.0"
+
+unique-filename@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea"
+ integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==
+ dependencies:
+ unique-slug "^4.0.0"
+
+unique-slug@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9"
+ integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==
+ dependencies:
+ imurmurhash "^0.1.4"
+
+unique-slug@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3"
+ integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==
+ dependencies:
+ imurmurhash "^0.1.4"
+
+unique-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+ integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+ dependencies:
+ crypto-random-string "^2.0.0"
+
+universal-user-agent@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa"
+ integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==
+
+universalify@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
+ integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+
+untildify@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
+ integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+
+upath@2.0.1, upath@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b"
+ integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==
+
+update-browserslist-db@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+ integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+uuid@8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+v8-compile-cache-lib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
+ integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
+
+v8-compile-cache@2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+ integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+v8-to-istanbul@^9.0.1:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad"
+ integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^2.0.0"
+
+validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+validate-npm-package-name@4.0.0, validate-npm-package-name@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747"
+ integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==
+ dependencies:
+ builtins "^5.0.0"
+
+validate-npm-package-name@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
+ integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==
+ dependencies:
+ builtins "^1.0.3"
+
+validate-npm-package-name@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713"
+ integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==
+ dependencies:
+ builtins "^5.0.0"
+
+walk-up-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e"
+ integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==
+
+walker@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+ dependencies:
+ makeerror "1.0.12"
+
+wcwidth@^1.0.0, wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
+ dependencies:
+ defaults "^1.0.3"
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+which@^2.0.1, which@^2.0.2:
+ 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"
+
+which@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1"
+ integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
+ integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
+ dependencies:
+ string-width "^1.0.2 || 2 || 3 || 4"
+
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", 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 "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^6.0.1:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
+ integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ dependencies:
+ ansi-styles "^6.1.0"
+ string-width "^5.0.1"
+ strip-ansi "^7.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+write-file-atomic@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f"
+ integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
+write-file-atomic@^2.4.2:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
+ integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
+write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
+write-file-atomic@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7"
+ integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^4.0.1"
+
+write-json-file@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a"
+ integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==
+ dependencies:
+ detect-indent "^5.0.0"
+ graceful-fs "^4.1.15"
+ make-dir "^2.1.0"
+ pify "^4.0.1"
+ sort-keys "^2.0.0"
+ write-file-atomic "^2.4.2"
+
+write-pkg@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039"
+ integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==
+ dependencies:
+ sort-keys "^2.0.0"
+ type-fest "^0.4.1"
+ write-json-file "^3.2.0"
+
+xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+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==
+
+yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^1.10.0:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+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@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9:
+ 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@16.2.0, yargs@^16.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"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
+yargs@^17.3.1, yargs@^17.6.2:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
From 988db99ee78ec04016f57770917c834dddbd146f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 06:23:07 -0700
Subject: [PATCH 012/124] chore(release): publish
- @pyramation/inquirerer@0.0.2
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 4 ++--
2 files changed, 10 insertions(+), 2 deletions(-)
create mode 100644 packages/inquirerer/CHANGELOG.md
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
new file mode 100644
index 0000000..edc80da
--- /dev/null
+++ b/packages/inquirerer/CHANGELOG.md
@@ -0,0 +1,8 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## 0.0.2 (2024-04-21)
+
+**Note:** Version bump only for package @pyramation/inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 00e1803..bdcf158 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "@pyramation/inquirerer",
- "version": "0.0.1",
+ "version": "0.0.2",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
@@ -35,4 +35,4 @@
"minimist": "^1.2.8"
},
"keywords": []
-}
\ No newline at end of file
+}
From 93ee9caffee299bfcd9c637a3d2969747efef324 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 06:36:46 -0700
Subject: [PATCH 013/124] checkbox
---
packages/inquirerer/dev/index.ts | 20 +++++++----
packages/inquirerer/package.json | 4 ++-
packages/inquirerer/src/prompt.ts | 52 ++++++++++++++++++++++++++++-
packages/inquirerer/src/question.ts | 2 ++
yarn.lock | 10 ++++++
5 files changed, 80 insertions(+), 8 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index d8ac3c4..88b4106 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -1,15 +1,16 @@
#!/usr/bin/env node
import minimist from 'minimist';
+
import { Inquirerer } from "../src";
import { displayVersion } from '../src/utils';
const argv = minimist(process.argv.slice(2), {
alias: {
- v: 'version'
+ v: 'version'
}
- });
-
- if (!('tty' in argv)) {
+});
+
+if (!('tty' in argv)) {
argv.tty = true;
}
@@ -17,8 +18,8 @@ const argv = minimist(process.argv.slice(2), {
if (argv.version) {
displayVersion();
process.exit(0);
- }
-
+}
+
const prompter = new Inquirerer();
const main = async () => {
@@ -30,8 +31,15 @@ const main = async () => {
name: 'flower'
}
]);
+ const args2 = await prompter.promptCheckbox(argv, {
+ name: 'name',
+ options: [
+ 'a', 'b', 'c'
+ ]
+ });
console.log(args);
+ console.log(args2);
prompter.close();
};
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index bdcf158..fbaebcf 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -34,5 +34,7 @@
"js-yaml": "^4.1.0",
"minimist": "^1.2.8"
},
- "keywords": []
+ "keywords": [],
+ "devDependencies": {
+ }
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 39ab010..daff7b7 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -1,7 +1,7 @@
+
import readline from 'readline';
import { Question } from './question';
-
export class Inquirerer {
private rl: readline.Interface | null;
private noTty: boolean;
@@ -13,6 +13,8 @@ export class Inquirerer {
input: process.stdin,
output: process.stdout
});
+ process.stdin.setRawMode(true);
+ process.stdin.resume();
} else {
this.rl = null;
}
@@ -46,10 +48,58 @@ export class Inquirerer {
return obj as T;
}
+ async promptCheckbox(_argv: any, question: Question) {
+ const { options } = question;
+ let selectedIndex = 0;
+ const selections = new Array(options.length).fill(false);
+
+ const display = () => {
+ console.clear();
+ // @ts-ignore
+ options.forEach((option, index) => {
+ const isSelected = selectedIndex === index ? '>' : ' ';
+ const isChecked = selections[index] ? '◉' : '○';
+ console.log(`${isSelected} ${isChecked} ${option}`);
+ });
+ };
+
+ return new Promise((resolve) => {
+ display();
+
+ // @ts-ignore
+ const onKeyPress = (chunk, key) => {
+ const char = chunk.toString();
+
+ if (key && key.ctrl && key.name === 'c') {
+ process.exit(); // exit on Ctrl+C
+ }
+
+ if (char === '\u001b[A' || char === 'w') { // arrow up or 'w'
+ selectedIndex = (selectedIndex - 1 + options.length) % options.length;
+ } else if (char === '\u001b[B' || char === 's') { // arrow down or 's'
+ selectedIndex = (selectedIndex + 1) % options.length;
+ } else if (char === ' ') { // space bar
+ selections[selectedIndex] = !selections[selectedIndex];
+ } else if (char === '\r') { // enter key
+ process.stdin.removeListener('data', onKeyPress);
+ process.stdin.setRawMode(false);
+ resolve(selections);
+ return;
+ }
+
+ display();
+ };
+
+ process.stdin.on('data', onKeyPress);
+ });
+ }
+
// Method to cleanly close the readline interface
public close() {
if (this.rl) {
this.rl.close();
+ process.stdin.setRawMode(false);
+ process.stdin.pause();
}
}
}
\ No newline at end of file
diff --git a/packages/inquirerer/src/question.ts b/packages/inquirerer/src/question.ts
index 3bab009..0220853 100644
--- a/packages/inquirerer/src/question.ts
+++ b/packages/inquirerer/src/question.ts
@@ -1,4 +1,6 @@
export interface Question {
name: string;
type?: string; // This can be used for further customizations like validating input based on type
+
+ options?: string[]
}
diff --git a/yarn.lock b/yarn.lock
index 57ac480..ca31d28 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1296,6 +1296,11 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+"@types/keypress@^2.0.30":
+ version "2.0.30"
+ resolved "https://registry.yarnpkg.com/@types/keypress/-/keypress-2.0.30.tgz#b55c4f63b58970b30c7b8cb63f25af14a3dbda8d"
+ integrity sha512-PCS6Mrv4gbQ9167E25nuVmqerT4xM/zWuVFTLfHdQgBwmsfMj2kXR1DI3qZ5N3p21gbrPweRghci2CjMHRCWkA==
+
"@types/minimatch@^3.0.3":
version "3.0.5"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
@@ -4159,6 +4164,11 @@ just-diff@^6.0.0:
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
+keypress@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77"
+ integrity sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==
+
keyv@^4.5.3:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
From ff2a41ef7b0610806c2d91aaf9b69c2351222799 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 06:46:01 -0700
Subject: [PATCH 014/124] key codes
---
packages/inquirerer/src/keypress.ts | 53 ++++++++++++++++++++++++
packages/inquirerer/src/prompt.ts | 63 +++++++++++++----------------
2 files changed, 81 insertions(+), 35 deletions(-)
create mode 100644 packages/inquirerer/src/keypress.ts
diff --git a/packages/inquirerer/src/keypress.ts b/packages/inquirerer/src/keypress.ts
new file mode 100644
index 0000000..3c76653
--- /dev/null
+++ b/packages/inquirerer/src/keypress.ts
@@ -0,0 +1,53 @@
+type KeyHandler = () => void;
+
+export const KEY_CODES = {
+ UP_ARROW: '\u001b[A',
+ DOWN_ARROW: '\u001b[B',
+ RIGHT_ARROW: '\u001b[C',
+ LEFT_ARROW: '\u001b[D',
+ ENTER: '\r',
+ SPACE: ' ',
+ CTRL_C: '\u0003'
+};
+
+export class TerminalKeypress {
+ private listeners: Record = {};
+
+ constructor() {
+ process.stdin.setRawMode(true);
+ process.stdin.resume();
+ process.stdin.setEncoding('utf8');
+
+ process.stdin.on('data', (key: string) => {
+ const handlers = this.listeners[key];
+ handlers?.forEach(handler => handler());
+
+ // Exit on Ctrl+C
+ if (key === '\u0003') {
+ process.exit();
+ }
+ });
+ }
+
+ on(key: string, callback: KeyHandler): void {
+ if (!this.listeners[key]) {
+ this.listeners[key] = [];
+ }
+ this.listeners[key].push(callback);
+ }
+
+ off(key: string, callback: KeyHandler): void {
+ if (this.listeners[key]) {
+ const index = this.listeners[key].indexOf(callback);
+ if (index !== -1) {
+ this.listeners[key].splice(index, 1);
+ }
+ }
+ }
+
+ destroy(): void {
+ process.stdin.setRawMode(false);
+ process.stdin.pause();
+ process.stdin.removeAllListeners('data');
+ }
+}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index daff7b7..825994d 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -1,9 +1,11 @@
import readline from 'readline';
+import { KEY_CODES,TerminalKeypress } from './keypress';
import { Question } from './question';
export class Inquirerer {
private rl: readline.Interface | null;
+ private keypress: TerminalKeypress;
private noTty: boolean;
constructor(noTty: boolean = false) {
@@ -13,8 +15,7 @@ export class Inquirerer {
input: process.stdin,
output: process.stdout
});
- process.stdin.setRawMode(true);
- process.stdin.resume();
+ this.keypress = new TerminalKeypress();
} else {
this.rl = null;
}
@@ -48,14 +49,14 @@ export class Inquirerer {
return obj as T;
}
- async promptCheckbox(_argv: any, question: Question) {
- const { options } = question;
+
+ async promptCheckbox(_argv: any, question: Question): Promise {
+ const options = question.options || [];
let selectedIndex = 0;
- const selections = new Array(options.length).fill(false);
+ const selections: boolean[] = new Array(options.length).fill(false);
- const display = () => {
+ const display = (): void => {
console.clear();
- // @ts-ignore
options.forEach((option, index) => {
const isSelected = selectedIndex === index ? '>' : ' ';
const isChecked = selections[index] ? '◉' : '○';
@@ -63,43 +64,35 @@ export class Inquirerer {
});
};
- return new Promise((resolve) => {
- display();
-
- // @ts-ignore
- const onKeyPress = (chunk, key) => {
- const char = chunk.toString();
-
- if (key && key.ctrl && key.name === 'c') {
- process.exit(); // exit on Ctrl+C
- }
-
- if (char === '\u001b[A' || char === 'w') { // arrow up or 'w'
- selectedIndex = (selectedIndex - 1 + options.length) % options.length;
- } else if (char === '\u001b[B' || char === 's') { // arrow down or 's'
- selectedIndex = (selectedIndex + 1) % options.length;
- } else if (char === ' ') { // space bar
- selections[selectedIndex] = !selections[selectedIndex];
- } else if (char === '\r') { // enter key
- process.stdin.removeListener('data', onKeyPress);
- process.stdin.setRawMode(false);
- resolve(selections);
- return;
- }
+ display();
- display();
- };
+ this.keypress.on(KEY_CODES.UP_ARROW, () => {
+ selectedIndex = (selectedIndex - 1 + options.length) % options.length;
+ display();
+ });
+ this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
+ selectedIndex = (selectedIndex + 1) % options.length;
+ display();
+ });
+ this.keypress.on(KEY_CODES.SPACE, () => {
+ selections[selectedIndex] = !selections[selectedIndex];
+ display();
+ });
- process.stdin.on('data', onKeyPress);
+ return new Promise(resolve => {
+ this.keypress.on(KEY_CODES.ENTER, () => {
+ this.keypress.destroy();
+ resolve(selections);
+ });
});
}
+
// Method to cleanly close the readline interface
public close() {
if (this.rl) {
this.rl.close();
- process.stdin.setRawMode(false);
- process.stdin.pause();
+ this.keypress.destroy();
}
}
}
\ No newline at end of file
From 6f2fe4c48214f0f9d43fba2c670dfee8eb80339a Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 07:02:31 -0700
Subject: [PATCH 015/124] autocomplete
---
packages/inquirerer/dev/index.ts | 84 ++++++++++++++++++++---------
packages/inquirerer/src/keypress.ts | 4 +-
packages/inquirerer/src/prompt.ts | 68 +++++++++++++++++++++++
3 files changed, 130 insertions(+), 26 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 88b4106..8746846 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -3,45 +3,79 @@ import minimist from 'minimist';
import { Inquirerer } from "../src";
import { displayVersion } from '../src/utils';
+import { Question } from '../src/question';
const argv = minimist(process.argv.slice(2), {
- alias: {
- v: 'version'
- }
+ alias: {
+ v: 'version'
+ }
});
if (!('tty' in argv)) {
- argv.tty = true;
+ argv.tty = true;
}
if (argv.version) {
- displayVersion();
- process.exit(0);
+ displayVersion();
+ process.exit(0);
}
const prompter = new Inquirerer();
const main = async () => {
- const args = await prompter.prompt(argv, [
- {
- name: 'name'
- },
- {
- name: 'flower'
- }
- ]);
- const args2 = await prompter.promptCheckbox(argv, {
- name: 'name',
- options: [
- 'a', 'b', 'c'
- ]
- });
-
- console.log(args);
- console.log(args2);
-
- prompter.close();
+ const args = await prompter.prompt(argv, [
+ {
+ name: 'name'
+ },
+ {
+ name: 'flower'
+ }
+ ]);
+ // const args2 = await prompter.promptCheckbox(argv, {
+ // name: 'name',
+ // options: [
+ // 'a', 'b', 'c'
+ // ]
+ // });
+ const question: Question = {
+ name: 'fruitSearch',
+ type: 'autocomplete',
+ options: [
+ 'Apple', 'Apricot', 'Avocado',
+ 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ 'Date', 'Durian',
+ 'Elderberry',
+ 'Fig',
+ 'Grape', 'Grapefruit', 'Guava',
+ 'Honeydew',
+ 'Kiwi', 'Kumquat',
+ 'Lemon', 'Lime', 'Lychee',
+ 'Mango', 'Melon', 'Mulberry',
+ 'Nectarine',
+ 'Orange',
+ 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ 'Quince',
+ 'Raspberry', 'Redcurrant',
+ 'Strawberry', 'Starfruit',
+ 'Tangerine',
+ 'Ugli Fruit',
+ 'Vanilla',
+ 'Watermelon',
+ 'Xigua (Chinese Watermelon)',
+ 'Yellow Plum',
+ 'Zucchini'
+ ]
+
+ };
+ const args3 = await prompter.promptAutocomplete(question);
+
+ console.log(args);
+ // console.log(args2);
+ console.log(args3);
+
+ prompter.close();
};
main();
\ No newline at end of file
diff --git a/packages/inquirerer/src/keypress.ts b/packages/inquirerer/src/keypress.ts
index 3c76653..6b9e2fd 100644
--- a/packages/inquirerer/src/keypress.ts
+++ b/packages/inquirerer/src/keypress.ts
@@ -7,7 +7,9 @@ export const KEY_CODES = {
LEFT_ARROW: '\u001b[D',
ENTER: '\r',
SPACE: ' ',
- CTRL_C: '\u0003'
+ CTRL_C: '\u0003',
+ BACKSPACE: '\x7f', // Commonly used BACKSPACE key in Unix-like systems
+ BACKSPACE_LEGACY: '\x08' // For compatibility with some systems
};
export class TerminalKeypress {
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 825994d..2cab050 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -88,6 +88,74 @@ export class Inquirerer {
}
+ async promptAutocomplete(question: Question): Promise {
+ const options = question.options || [];
+ let input = '';
+ let filteredOptions = options;
+ let selectedIndex = 0;
+
+ const display = (): void => {
+ console.clear();
+ console.log(`Search: ${input}`);
+ filteredOptions.forEach((option, index) => {
+ if (index === selectedIndex) {
+ console.log(`> ${option}`); // Highlight the selected option
+ } else {
+ console.log(` ${option}`);
+ }
+ });
+ };
+
+ const updateFilteredOptions = (): void => {
+ filteredOptions = this.filterOptions(options, input);
+ if (selectedIndex >= filteredOptions.length) {
+ selectedIndex = Math.max(filteredOptions.length - 1, 0);
+ }
+ };
+
+ display();
+
+ // Handling BACKSPACE key
+ this.keypress.on(KEY_CODES.BACKSPACE, () => {
+ input = input.slice(0, -1);
+ updateFilteredOptions();
+ display();
+ });
+
+ // Register alphanumeric and space keypresses to accumulate input
+ 'abcdefghijklmnopqrstuvwxyz0123456789 '.split('').forEach(char => {
+ this.keypress.on(char, () => {
+ input += char;
+ updateFilteredOptions();
+ display();
+ });
+ });
+
+ // Navigation
+ this.keypress.on(KEY_CODES.UP_ARROW, () => {
+ selectedIndex = Math.max(0, selectedIndex - 1);
+ display();
+ });
+ this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
+ selectedIndex = Math.min(filteredOptions.length - 1, selectedIndex + 1);
+ display();
+ });
+
+ return new Promise(resolve => {
+ this.keypress.on(KEY_CODES.ENTER, () => {
+ this.keypress.destroy();
+ resolve(filteredOptions[selectedIndex] || input);
+ });
+ });
+ }
+
+ filterOptions(options: string[], input: string): string[] {
+ return options
+ .filter(option => option.toLowerCase().startsWith(input.toLowerCase()))
+ .sort();
+ }
+
+
// Method to cleanly close the readline interface
public close() {
if (this.rl) {
From e8fe76698cd03304dea32bc1dcc42c518b8d44b8 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 07:16:41 -0700
Subject: [PATCH 016/124] scrolling
---
packages/inquirerer/dev/index.ts | 17 ++++++++------
packages/inquirerer/src/keypress.ts | 19 +++++++++++++---
packages/inquirerer/src/prompt.ts | 35 ++++++++++++++++++++---------
packages/inquirerer/src/question.ts | 5 ++++-
4 files changed, 55 insertions(+), 21 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 8746846..3b9d309 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -32,15 +32,18 @@ const main = async () => {
name: 'flower'
}
]);
- // const args2 = await prompter.promptCheckbox(argv, {
- // name: 'name',
- // options: [
- // 'a', 'b', 'c'
- // ]
- // });
+
+ const args2 = await prompter.promptCheckbox(argv, {
+ name: 'name',
+ options: [
+ 'a', 'b', 'c'
+ ]
+ });
+
const question: Question = {
name: 'fruitSearch',
type: 'autocomplete',
+ maxDisplayLines: 5,
options: [
'Apple', 'Apricot', 'Avocado',
'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
@@ -72,7 +75,7 @@ const main = async () => {
const args3 = await prompter.promptAutocomplete(question);
console.log(args);
- // console.log(args2);
+ console.log(args2);
console.log(args3);
prompter.close();
diff --git a/packages/inquirerer/src/keypress.ts b/packages/inquirerer/src/keypress.ts
index 6b9e2fd..d6b1df5 100644
--- a/packages/inquirerer/src/keypress.ts
+++ b/packages/inquirerer/src/keypress.ts
@@ -14,18 +14,23 @@ export const KEY_CODES = {
export class TerminalKeypress {
private listeners: Record = {};
+ private active: boolean = true;
+
constructor() {
process.stdin.setRawMode(true);
process.stdin.resume();
process.stdin.setEncoding('utf8');
+ this.setupListeners();
+ }
+
+ private setupListeners(): void {
process.stdin.on('data', (key: string) => {
+ if (!this.active) return;
const handlers = this.listeners[key];
handlers?.forEach(handler => handler());
-
- // Exit on Ctrl+C
- if (key === '\u0003') {
+ if (key === KEY_CODES.CTRL_C) { // Ctrl+C
process.exit();
}
});
@@ -47,6 +52,14 @@ export class TerminalKeypress {
}
}
+ pause(): void {
+ this.active = false;
+ }
+
+ resume(): void {
+ this.active = true;
+ }
+
destroy(): void {
process.stdin.setRawMode(false);
process.stdin.pause();
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 2cab050..fa89cf8 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -51,6 +51,7 @@ export class Inquirerer {
async promptCheckbox(_argv: any, question: Question): Promise {
+ this.keypress.resume();
const options = question.options || [];
let selectedIndex = 0;
const selections: boolean[] = new Array(options.length).fill(false);
@@ -81,7 +82,7 @@ export class Inquirerer {
return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
- this.keypress.destroy();
+ this.keypress.pause();
resolve(selections);
});
});
@@ -89,25 +90,34 @@ export class Inquirerer {
async promptAutocomplete(question: Question): Promise {
+ this.keypress.resume();
const options = question.options || [];
let input = '';
let filteredOptions = options;
let selectedIndex = 0;
+ let startIndex = 0; // Start index for visible options
+ const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
const display = (): void => {
console.clear();
console.log(`Search: ${input}`);
- filteredOptions.forEach((option, index) => {
- if (index === selectedIndex) {
- console.log(`> ${option}`); // Highlight the selected option
- } else {
- console.log(` ${option}`);
- }
- });
+ // Determine the range of options to display
+ const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
+ for (let i = startIndex; i < endIndex; i++) {
+ const option = filteredOptions[i];
+ const isSelected = i === selectedIndex ? '>' : ' ';
+ console.log(`${isSelected} ${option}`);
+ }
};
const updateFilteredOptions = (): void => {
filteredOptions = this.filterOptions(options, input);
+ // Adjust startIndex to keep the selectedIndex in the visible range
+ if (selectedIndex < startIndex) {
+ startIndex = selectedIndex;
+ } else if (selectedIndex >= startIndex + maxLines) {
+ startIndex = selectedIndex - maxLines + 1;
+ }
if (selectedIndex >= filteredOptions.length) {
selectedIndex = Math.max(filteredOptions.length - 1, 0);
}
@@ -134,21 +144,26 @@ export class Inquirerer {
// Navigation
this.keypress.on(KEY_CODES.UP_ARROW, () => {
selectedIndex = Math.max(0, selectedIndex - 1);
+ if (selectedIndex < startIndex) {
+ startIndex = selectedIndex; // Scroll up
+ }
display();
});
this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
selectedIndex = Math.min(filteredOptions.length - 1, selectedIndex + 1);
+ if (selectedIndex >= startIndex + maxLines) {
+ startIndex = selectedIndex - maxLines + 1; // Scroll down
+ }
display();
});
return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
- this.keypress.destroy();
+ this.keypress.pause();
resolve(filteredOptions[selectedIndex] || input);
});
});
}
-
filterOptions(options: string[], input: string): string[] {
return options
.filter(option => option.toLowerCase().startsWith(input.toLowerCase()))
diff --git a/packages/inquirerer/src/question.ts b/packages/inquirerer/src/question.ts
index 0220853..c6de4cc 100644
--- a/packages/inquirerer/src/question.ts
+++ b/packages/inquirerer/src/question.ts
@@ -2,5 +2,8 @@ export interface Question {
name: string;
type?: string; // This can be used for further customizations like validating input based on type
- options?: string[]
+ options?: string[],
+
+ maxDisplayLines?: number; // Optional parameter to limit the number of visible options
+
}
From ddc64b4ac514bf706f37328e2fffc60721fda6f1 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 07:26:20 -0700
Subject: [PATCH 017/124] colorize
---
packages/inquirerer/src/prompt.ts | 35 ++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index fa89cf8..1b21e08 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -1,4 +1,4 @@
-
+import chalk from 'chalk';
import readline from 'readline';
import { KEY_CODES,TerminalKeypress } from './keypress';
@@ -55,18 +55,21 @@ export class Inquirerer {
const options = question.options || [];
let selectedIndex = 0;
const selections: boolean[] = new Array(options.length).fill(false);
-
+
const display = (): void => {
console.clear();
options.forEach((option, index) => {
- const isSelected = selectedIndex === index ? '>' : ' ';
+ const isSelected = selectedIndex === index;
+ const marker = isSelected ? '>' : ' ';
const isChecked = selections[index] ? '◉' : '○';
- console.log(`${isSelected} ${isChecked} ${option}`);
+ const line = `${marker} ${isChecked} ${option}`;
+ // If the current line is selected, highlight it in blue
+ console.log(isSelected ? chalk.blue(line) : line);
});
};
-
+
display();
-
+
this.keypress.on(KEY_CODES.UP_ARROW, () => {
selectedIndex = (selectedIndex - 1 + options.length) % options.length;
display();
@@ -79,7 +82,7 @@ export class Inquirerer {
selections[selectedIndex] = !selections[selectedIndex];
display();
});
-
+
return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
@@ -88,7 +91,6 @@ export class Inquirerer {
});
}
-
async promptAutocomplete(question: Question): Promise {
this.keypress.resume();
const options = question.options || [];
@@ -105,8 +107,11 @@ export class Inquirerer {
const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
for (let i = startIndex; i < endIndex; i++) {
const option = filteredOptions[i];
- const isSelected = i === selectedIndex ? '>' : ' ';
- console.log(`${isSelected} ${option}`);
+ if (i === selectedIndex) {
+ console.log(chalk.blue('> ' + option)); // Highlight the selected option with chalk
+ } else {
+ console.log(' ' + option);
+ }
}
};
@@ -143,16 +148,20 @@ export class Inquirerer {
// Navigation
this.keypress.on(KEY_CODES.UP_ARROW, () => {
- selectedIndex = Math.max(0, selectedIndex - 1);
+ selectedIndex = selectedIndex - 1 >= 0 ? selectedIndex - 1 : filteredOptions.length - 1;
if (selectedIndex < startIndex) {
startIndex = selectedIndex; // Scroll up
+ } else if (selectedIndex === filteredOptions.length - 1) {
+ startIndex = Math.max(0, filteredOptions.length - maxLines); // Jump to the bottom of the list
}
display();
});
this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
- selectedIndex = Math.min(filteredOptions.length - 1, selectedIndex + 1);
+ selectedIndex = (selectedIndex + 1) % filteredOptions.length;
if (selectedIndex >= startIndex + maxLines) {
startIndex = selectedIndex - maxLines + 1; // Scroll down
+ } else if (selectedIndex === 0) {
+ startIndex = 0; // Jump to the top of the list
}
display();
});
@@ -164,6 +173,8 @@ export class Inquirerer {
});
});
}
+
+
filterOptions(options: string[], input: string): string[] {
return options
.filter(option => option.toLowerCase().startsWith(input.toLowerCase()))
From fd18ab99b56aecca6afcd9943df22d6809208ce6 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 07:31:05 -0700
Subject: [PATCH 018/124] checkbox
---
packages/inquirerer/dev/index.ts | 28 +++++++++++++++++++++--
packages/inquirerer/src/prompt.ts | 38 +++++++++++++++++++++++--------
2 files changed, 54 insertions(+), 12 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 3b9d309..889b8cd 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -35,9 +35,33 @@ const main = async () => {
const args2 = await prompter.promptCheckbox(argv, {
name: 'name',
+ maxDisplayLines: 8,
options: [
- 'a', 'b', 'c'
- ]
+ 'Apple', 'Apricot', 'Avocado',
+ 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ 'Date', 'Durian',
+ 'Elderberry',
+ 'Fig',
+ 'Grape', 'Grapefruit', 'Guava',
+ 'Honeydew',
+ 'Kiwi', 'Kumquat',
+ 'Lemon', 'Lime', 'Lychee',
+ 'Mango', 'Melon', 'Mulberry',
+ 'Nectarine',
+ 'Orange',
+ 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ 'Quince',
+ 'Raspberry', 'Redcurrant',
+ 'Strawberry', 'Starfruit',
+ 'Tangerine',
+ 'Ugli Fruit',
+ 'Vanilla',
+ 'Watermelon',
+ 'Xigua (Chinese Watermelon)',
+ 'Yellow Plum',
+ 'Zucchini'
+ ]
});
const question: Question = {
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 1b21e08..0c43746 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -50,47 +50,65 @@ export class Inquirerer {
}
- async promptCheckbox(_argv: any, question: Question): Promise {
+ async promptCheckbox(_argv: any, question: Question): Promise<{[key: string]: boolean}> {
this.keypress.resume();
const options = question.options || [];
let selectedIndex = 0;
+ let startIndex = 0; // Start index for visible options
+ const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
const selections: boolean[] = new Array(options.length).fill(false);
const display = (): void => {
console.clear();
- options.forEach((option, index) => {
- const isSelected = selectedIndex === index;
+ const endIndex = Math.min(startIndex + maxLines, options.length);
+ for (let i = startIndex; i < endIndex; i++) {
+ const option = options[i];
+ const isSelected = selectedIndex === i;
const marker = isSelected ? '>' : ' ';
- const isChecked = selections[index] ? '◉' : '○';
+ const isChecked = selections[i] ? '◉' : '○';
const line = `${marker} ${isChecked} ${option}`;
- // If the current line is selected, highlight it in blue
console.log(isSelected ? chalk.blue(line) : line);
- });
+ }
};
display();
this.keypress.on(KEY_CODES.UP_ARROW, () => {
- selectedIndex = (selectedIndex - 1 + options.length) % options.length;
+ selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : options.length - 1;
+ if (selectedIndex < startIndex) {
+ startIndex = selectedIndex; // Scroll up
+ } else if (selectedIndex === options.length - 1) {
+ startIndex = Math.max(0, options.length - maxLines); // Jump to the bottom of the list
+ }
display();
});
+
this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
selectedIndex = (selectedIndex + 1) % options.length;
+ if (selectedIndex >= startIndex + maxLines) {
+ startIndex = selectedIndex - maxLines + 1; // Scroll down
+ } else if (selectedIndex === 0) {
+ startIndex = 0; // Jump to the top of the list
+ }
display();
});
+
this.keypress.on(KEY_CODES.SPACE, () => {
selections[selectedIndex] = !selections[selectedIndex];
display();
});
- return new Promise(resolve => {
+ return new Promise<{[key: string]: boolean}>(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
- resolve(selections);
+ const result: {[key: string]: boolean} = {};
+ options.forEach((option, index) => {
+ result[option] = selections[index];
+ });
+ resolve(result);
});
});
}
-
async promptAutocomplete(question: Question): Promise {
this.keypress.resume();
const options = question.options || [];
From 8b50ef9ab3ff592e6b569b217d87cff7d39a7b7c Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 07:46:41 -0700
Subject: [PATCH 019/124] options
---
packages/inquirerer/src/prompt.ts | 74 +++++++++++++++++++++++------
packages/inquirerer/src/question.ts | 1 +
2 files changed, 61 insertions(+), 14 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 0c43746..c2d177d 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,6 +3,11 @@ import readline from 'readline';
import { KEY_CODES,TerminalKeypress } from './keypress';
import { Question } from './question';
+
+interface Value {
+ name: string,
+ value: boolean
+}
export class Inquirerer {
private rl: readline.Interface | null;
private keypress: TerminalKeypress;
@@ -50,22 +55,30 @@ export class Inquirerer {
}
- async promptCheckbox(_argv: any, question: Question): Promise<{[key: string]: boolean}> {
+
+ async promptCheckbox(_argv: any, question: Question): Promise {
this.keypress.resume();
const options = question.options || [];
+ let input = ''; // Search input
+ let filteredOptions = options;
let selectedIndex = 0;
let startIndex = 0; // Start index for visible options
const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
const selections: boolean[] = new Array(options.length).fill(false);
+ const updateFilteredOptions = (): void => {
+ filteredOptions = options.filter(option => option.toLowerCase().includes(input.toLowerCase()));
+ };
+
const display = (): void => {
console.clear();
- const endIndex = Math.min(startIndex + maxLines, options.length);
+ console.log(`Search: ${input}`);
+ const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
for (let i = startIndex; i < endIndex; i++) {
- const option = options[i];
+ const option = filteredOptions[i];
const isSelected = selectedIndex === i;
const marker = isSelected ? '>' : ' ';
- const isChecked = selections[i] ? '◉' : '○';
+ const isChecked = selections[options.indexOf(option)] ? '◉' : '○'; // Use the original index in options
const line = `${marker} ${isChecked} ${option}`;
console.log(isSelected ? chalk.blue(line) : line);
}
@@ -73,18 +86,34 @@ export class Inquirerer {
display();
+ // Handling BACKSPACE key
+ this.keypress.on(KEY_CODES.BACKSPACE, () => {
+ input = input.slice(0, -1);
+ updateFilteredOptions();
+ display();
+ });
+
+ // Register alphanumeric keypresses to accumulate input, excluding space
+ 'abcdefghijklmnopqrstuvwxyz0123456789'.split('').forEach(char => {
+ this.keypress.on(char, () => {
+ input += char;
+ updateFilteredOptions();
+ display();
+ });
+ });
+
this.keypress.on(KEY_CODES.UP_ARROW, () => {
- selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : options.length - 1;
+ selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : filteredOptions.length - 1;
if (selectedIndex < startIndex) {
startIndex = selectedIndex; // Scroll up
- } else if (selectedIndex === options.length - 1) {
- startIndex = Math.max(0, options.length - maxLines); // Jump to the bottom of the list
+ } else if (selectedIndex === filteredOptions.length - 1) {
+ startIndex = Math.max(0, filteredOptions.length - maxLines); // Jump to the bottom of the list
}
display();
});
this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
- selectedIndex = (selectedIndex + 1) % options.length;
+ selectedIndex = (selectedIndex + 1) % filteredOptions.length;
if (selectedIndex >= startIndex + maxLines) {
startIndex = selectedIndex - maxLines + 1; // Scroll down
} else if (selectedIndex === 0) {
@@ -94,17 +123,34 @@ export class Inquirerer {
});
this.keypress.on(KEY_CODES.SPACE, () => {
- selections[selectedIndex] = !selections[selectedIndex];
+ // Map filtered index back to the original index in options
+ selections[options.indexOf(filteredOptions[selectedIndex])] = !selections[options.indexOf(filteredOptions[selectedIndex])];
display();
});
- return new Promise<{[key: string]: boolean}>(resolve => {
+ return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
- const result: {[key: string]: boolean} = {};
- options.forEach((option, index) => {
- result[option] = selections[index];
- });
+ const result: Value[] = [];
+ if (question.returnFullResults) {
+ // Return all options with their selected status
+ options.forEach((option, index) => {
+ result.push({
+ name: option,
+ value: selections[index]
+ });
+ });
+ } else {
+ // Return only options that are selected
+ options.forEach((option, index) => {
+ if (selections[index]) {
+ result.push({
+ name: option,
+ value: selections[index]
+ });
+ }
+ });
+ }
resolve(result);
});
});
diff --git a/packages/inquirerer/src/question.ts b/packages/inquirerer/src/question.ts
index c6de4cc..d96b64e 100644
--- a/packages/inquirerer/src/question.ts
+++ b/packages/inquirerer/src/question.ts
@@ -6,4 +6,5 @@ export interface Question {
maxDisplayLines?: number; // Optional parameter to limit the number of visible options
+ returnFullResults?: boolean;
}
From c85c83194af541c0e82898e42121bd7fe01c7fa9 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 08:04:44 -0700
Subject: [PATCH 020/124] opts
---
packages/inquirerer/dev/index.ts | 2 ++
packages/inquirerer/src/prompt.ts | 40 ++++++++++++++++-------------
packages/inquirerer/src/question.ts | 3 +++
3 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 889b8cd..c3dedfb 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -36,6 +36,8 @@ const main = async () => {
const args2 = await prompter.promptCheckbox(argv, {
name: 'name',
maxDisplayLines: 8,
+ returnFullResults: false,
+ required: true,
options: [
'Apple', 'Apricot', 'Avocado',
'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index c2d177d..07a396e 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -27,33 +27,37 @@ export class Inquirerer {
}
// Method to prompt for missing parameters
- public async prompt(params: T, questions: Question[], usageText?: string): Promise {
- const obj: any = { ...params };
+ // Method to prompt for missing parameters
+public async prompt(params: T, questions: Question[], usageText?: string): Promise {
+ const obj: any = { ...params };
- if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
- console.log(usageText);
- }
+ if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
+ console.log(usageText);
+ }
- for (const question of questions) {
- if (obj[question.name] === undefined) {
- if (!this.noTty) {
- if (this.rl) {
- obj[question.name] = await new Promise((resolve) => {
- this.rl.question(`Enter ${question.name}: `, resolve);
+ for (const question of questions) {
+ if (obj[question.name] === undefined) {
+ if (!this.noTty) {
+ if (this.rl) {
+ obj[question.name] = await new Promise((resolve) => {
+ this.rl.question(`Enter ${question.name}: `, (answer) => {
+ resolve(answer ? answer : null); // Convert empty string to null
});
- } else {
- throw new Error("No TTY available and a readline interface is missing.");
- }
+ });
} else {
- // Optionally handle noTty cases, e.g., set defaults or throw errors
- throw new Error(`Missing required parameter: ${question.name}`);
+ throw new Error("No TTY available and a readline interface is missing.");
}
+ } else {
+ // Optionally handle noTty cases, e.g., set defaults or throw errors
+ throw new Error(`Missing required parameter: ${question.name}`);
}
}
-
- return obj as T;
}
+ return obj as T;
+}
+
+
async promptCheckbox(_argv: any, question: Question): Promise {
diff --git a/packages/inquirerer/src/question.ts b/packages/inquirerer/src/question.ts
index d96b64e..47ca889 100644
--- a/packages/inquirerer/src/question.ts
+++ b/packages/inquirerer/src/question.ts
@@ -7,4 +7,7 @@ export interface Question {
maxDisplayLines?: number; // Optional parameter to limit the number of visible options
returnFullResults?: boolean;
+ allowCustomOptions?: boolean;
+
+ required?: boolean;
}
From 083084fff58e5748830796ffb319d6fd3afb4387 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 18:11:13 -0700
Subject: [PATCH 021/124] test with mocks
---
packages/inquirerer/__tests__/first.test.ts | 3 -
packages/inquirerer/__tests__/prompt.test.ts | 56 +++++
packages/inquirerer/dev/index.ts | 124 ++++++----
packages/inquirerer/src/keypress.ts | 45 +++-
packages/inquirerer/src/last-text.txt | 13 +
packages/inquirerer/src/prompt.ts | 226 ++++++++++++++----
packages/inquirerer/src/question.ts | 13 -
packages/inquirerer/src/question/classes.ts | 1 +
packages/inquirerer/src/question/index.ts | 1 +
packages/inquirerer/src/question/types.ts | 40 ++++
.../src/this_is_NOT_required-text.txt | 66 +++++
.../inquirerer/src/this_is_required-text.txt | 67 ++++++
12 files changed, 532 insertions(+), 123 deletions(-)
delete mode 100644 packages/inquirerer/__tests__/first.test.ts
create mode 100644 packages/inquirerer/__tests__/prompt.test.ts
create mode 100644 packages/inquirerer/src/last-text.txt
delete mode 100644 packages/inquirerer/src/question.ts
create mode 100644 packages/inquirerer/src/question/classes.ts
create mode 100644 packages/inquirerer/src/question/index.ts
create mode 100644 packages/inquirerer/src/question/types.ts
create mode 100644 packages/inquirerer/src/this_is_NOT_required-text.txt
create mode 100644 packages/inquirerer/src/this_is_required-text.txt
diff --git a/packages/inquirerer/__tests__/first.test.ts b/packages/inquirerer/__tests__/first.test.ts
deleted file mode 100644
index 2d48e8d..0000000
--- a/packages/inquirerer/__tests__/first.test.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-it('works', () => {
- console.log('hello test world!');
-})
\ No newline at end of file
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
new file mode 100644
index 0000000..47f94cb
--- /dev/null
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -0,0 +1,56 @@
+import readline from 'readline';
+import { Readable, Writable } from 'stream';
+
+import { Inquirerer } from '../src'; // Ensure correct import path
+import { Question } from '../src/question'; // Assuming you have a type for questions
+
+jest.mock('readline');
+
+describe('Inquirerer', () => {
+ let mockWrite: jest.Mock;
+ let mockInput: Readable;
+ let mockOutput: Writable;
+
+ beforeEach(() => {
+ mockWrite = jest.fn();
+
+ // Create a mock input stream with a setRawMode method
+ mockInput = new Readable({
+ read(size) {}
+ });
+ // @ts-ignore to add non-standard method
+ mockInput.setRawMode = jest.fn();
+
+ // Create a mock output stream
+ mockOutput = new Writable({
+ write: (chunk, encoding, callback) => {
+ mockWrite(chunk.toString());
+ callback();
+ }
+ });
+
+ readline.createInterface = jest.fn().mockReturnValue({
+ question: (questionText: string, cb: (input: string) => void) => {
+ setTimeout(() => cb('user input'), 350); // simulate user delay
+ },
+ close: jest.fn(),
+ });
+ });
+
+ it('prompts user and correctly processes delayed input', async () => {
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [{ name: 'username', type: 'text' }];
+ const initialParams = {};
+
+ const expectedResult = { username: 'user input' };
+
+ const result = await new Promise(resolve => {
+ setTimeout(() => {
+ prompter.prompt(initialParams, questions).then(resolve);
+ }, 1100); // Wait slightly longer than the readline delay to ensure input is received
+ });
+
+ expect(result).toEqual(expectedResult);
+ // expect(mockWrite).toHaveBeenCalledWith(expect.stringContaining('username:\n> '));
+ });
+});
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index c3dedfb..75c51c5 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -2,8 +2,8 @@
import minimist from 'minimist';
import { Inquirerer } from "../src";
-import { displayVersion } from '../src/utils';
import { Question } from '../src/question';
+import { displayVersion } from '../src/utils';
const argv = minimist(process.argv.slice(2), {
alias: {
@@ -24,47 +24,47 @@ if (argv.version) {
const prompter = new Inquirerer();
const main = async () => {
- const args = await prompter.prompt(argv, [
- {
- name: 'name'
- },
- {
- name: 'flower'
- }
- ]);
+ // const args = await prompter.prompt(argv, [
+ // {
+ // name: 'name'
+ // },
+ // {
+ // name: 'flower'
+ // }
+ // ]);
- const args2 = await prompter.promptCheckbox(argv, {
- name: 'name',
- maxDisplayLines: 8,
- returnFullResults: false,
- required: true,
- options: [
- 'Apple', 'Apricot', 'Avocado',
- 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
- 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
- 'Date', 'Durian',
- 'Elderberry',
- 'Fig',
- 'Grape', 'Grapefruit', 'Guava',
- 'Honeydew',
- 'Kiwi', 'Kumquat',
- 'Lemon', 'Lime', 'Lychee',
- 'Mango', 'Melon', 'Mulberry',
- 'Nectarine',
- 'Orange',
- 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
- 'Quince',
- 'Raspberry', 'Redcurrant',
- 'Strawberry', 'Starfruit',
- 'Tangerine',
- 'Ugli Fruit',
- 'Vanilla',
- 'Watermelon',
- 'Xigua (Chinese Watermelon)',
- 'Yellow Plum',
- 'Zucchini'
- ]
- });
+ // const args2 = await prompter.checkbox({
+ // name: 'name',
+ // maxDisplayLines: 8,
+ // returnFullResults: false,
+ // required: true,
+ // options: [
+ // 'Apple', 'Apricot', 'Avocado',
+ // 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ // 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ // 'Date', 'Durian',
+ // 'Elderberry',
+ // 'Fig',
+ // 'Grape', 'Grapefruit', 'Guava',
+ // 'Honeydew',
+ // 'Kiwi', 'Kumquat',
+ // 'Lemon', 'Lime', 'Lychee',
+ // 'Mango', 'Melon', 'Mulberry',
+ // 'Nectarine',
+ // 'Orange',
+ // 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ // 'Quince',
+ // 'Raspberry', 'Redcurrant',
+ // 'Strawberry', 'Starfruit',
+ // 'Tangerine',
+ // 'Ugli Fruit',
+ // 'Vanilla',
+ // 'Watermelon',
+ // 'Xigua (Chinese Watermelon)',
+ // 'Yellow Plum',
+ // 'Zucchini'
+ // ]
+ // });
const question: Question = {
name: 'fruitSearch',
@@ -98,12 +98,46 @@ const main = async () => {
]
};
- const args3 = await prompter.promptAutocomplete(question);
+ // const args3 = await prompter.autocomplete(question);
+
+ // console.log(args);
+ // console.log(args2);
+ // console.log(args3);
- console.log(args);
- console.log(args2);
- console.log(args3);
+ const massive = await prompter.prompt({}, [
+ question,
+ {
+ type: 'text',
+ name: 'first',
+ message: 'Enter your first name'
+ },
+ {
+ type: 'text',
+ name: 'last',
+ required: true,
+ message: 'Enter your last name'
+ },
+ {
+ ...question,
+ name: 'autocomp',
+ type: 'autocomplete',
+ message: 'Enter your completion',
+ },
+ {
+ ...question,
+ name: 'this_is_NOT_required',
+ type: 'checkbox',
+ required: true
+ },
+ {
+ ...question,
+ name: 'this_is_required',
+ type: 'checkbox',
+ required: true
+ }
+ ])
+ console.log({massive})
prompter.close();
};
diff --git a/packages/inquirerer/src/keypress.ts b/packages/inquirerer/src/keypress.ts
index d6b1df5..81be5c6 100644
--- a/packages/inquirerer/src/keypress.ts
+++ b/packages/inquirerer/src/keypress.ts
@@ -1,5 +1,15 @@
+import { Readable } from 'stream';
+
type KeyHandler = () => void;
+interface ProcessWrapper {
+ exit: (code?: number) => never;
+}
+
+const defaultProcessWrapper: ProcessWrapper = {
+ exit: (code?: number) => process.exit(code)
+};
+
export const KEY_CODES = {
UP_ARROW: '\u001b[A',
DOWN_ARROW: '\u001b[B',
@@ -15,23 +25,38 @@ export const KEY_CODES = {
export class TerminalKeypress {
private listeners: Record = {};
private active: boolean = true;
+ private noTty: boolean;
+ private input: Readable;
+ private proc: ProcessWrapper;
-
- constructor() {
- process.stdin.setRawMode(true);
- process.stdin.resume();
- process.stdin.setEncoding('utf8');
+ constructor(
+ noTty: boolean = false,
+ input: Readable = process.stdin,
+ proc: ProcessWrapper = defaultProcessWrapper,
+ ) {
+ this.noTty = noTty;
+ this.input = input;
+ this.proc = proc;
+
+ if (this.isTTY()) {
+ (this.input as any).setRawMode(true);
+ this.input.resume();
+ this.input.setEncoding('utf8');
+ }
this.setupListeners();
}
+ isTTY() {
+ return !this.noTty;
+ }
private setupListeners(): void {
- process.stdin.on('data', (key: string) => {
+ this.input.on('data', (key: string) => {
if (!this.active) return;
const handlers = this.listeners[key];
handlers?.forEach(handler => handler());
if (key === KEY_CODES.CTRL_C) { // Ctrl+C
- process.exit();
+ this.proc.exit(0);
}
});
}
@@ -61,8 +86,8 @@ export class TerminalKeypress {
}
destroy(): void {
- process.stdin.setRawMode(false);
- process.stdin.pause();
- process.stdin.removeAllListeners('data');
+ (this.input as any).setRawMode(false);
+ this.input.pause();
+ this.input.removeAllListeners('data');
}
}
diff --git a/packages/inquirerer/src/last-text.txt b/packages/inquirerer/src/last-text.txt
new file mode 100644
index 0000000..60d1e56
--- /dev/null
+++ b/packages/inquirerer/src/last-text.txt
@@ -0,0 +1,13 @@
+{
+ "question": {
+ "type": "text",
+ "name": "last",
+ "required": true,
+ "message": "Enter your last name"
+ },
+ "obj": {
+ "fruitSearch": "Apple",
+ "first": null,
+ "last": "sdf"
+ }
+}
\ No newline at end of file
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 07a396e..2d520cf 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -1,66 +1,184 @@
-import chalk from 'chalk';
+import chalk from 'chalk';
import readline from 'readline';
+import { Writable, Readable } from 'stream';
-import { KEY_CODES,TerminalKeypress } from './keypress';
-import { Question } from './question';
+import { KEY_CODES, TerminalKeypress } from './keypress';
+import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, Question, TextQuestion, Value } from './question';
+import { writeFileSync } from 'fs';
-interface Value {
- name: string,
- value: boolean
+const requiredMessage = (question: Question) => chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
+interface PromptContext {
+ numTries: number;
+}
+
+
+function generatePromptMessage(question: Question, ctx: PromptContext): string {
+ let promptMessage = question.message ? `${question.message}\n> ` : `${question.name}:\n> `;
+
+ if (ctx.numTries > 0 && question.required) {
+ promptMessage = requiredMessage(question) + promptMessage;
+ }
+
+ switch (question.type) {
+ case 'confirm':
+ promptMessage += `(y/n)${question.default !== undefined ? ` [${question.default ? 'y' : 'n'}]` : ''}`;
+ break;
+ case 'text':
+ if (question.default) {
+ promptMessage += ` [${question.default}]`;
+ }
+ break;
+ case 'autocomplete':
+ case 'checkbox':
+ // For these types, you might want to show the default selected options if any
+ if (question.options && question.default) {
+ const defaultOptions = Array.isArray(question.default) ? question.default : [question.default];
+ const defaultText = defaultOptions.join(', ');
+ promptMessage += ` [${defaultText}]`;
+ }
+ break;
+ }
+
+ return promptMessage;
}
export class Inquirerer {
private rl: readline.Interface | null;
private keypress: TerminalKeypress;
private noTty: boolean;
+ private output: Writable;
- constructor(noTty: boolean = false) {
+ constructor(
+ noTty: boolean = false,
+ input: Readable = process.stdin,
+ output: Writable = process.stdout,
+ ) {
this.noTty = noTty;
+ this.output = output;
+
if (!noTty) {
this.rl = readline.createInterface({
- input: process.stdin,
- output: process.stdout
+ input,
+ output
});
- this.keypress = new TerminalKeypress();
+ this.keypress = new TerminalKeypress(noTty, input);
} else {
this.rl = null;
}
}
- // Method to prompt for missing parameters
- // Method to prompt for missing parameters
-public async prompt(params: T, questions: Question[], usageText?: string): Promise {
- const obj: any = { ...params };
-
- if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
- console.log(usageText);
+ clearScreen() {
+ // same as console.clear()
+ this.output.write('\x1Bc'); // This is the escape sequence to clear the terminal screen.
+ }
+
+ write(message: string) {
+ this.output.write(message);
+ }
+
+ log(message: string) {
+ this.output.write(message + '\n');
}
- for (const question of questions) {
- if (obj[question.name] === undefined) {
- if (!this.noTty) {
- if (this.rl) {
- obj[question.name] = await new Promise((resolve) => {
- this.rl.question(`Enter ${question.name}: `, (answer) => {
- resolve(answer ? answer : null); // Convert empty string to null
- });
- });
- } else {
- throw new Error("No TTY available and a readline interface is missing.");
+ public async prompt(params: T, questions: Question[], usageText?: string): Promise {
+ const obj: any = { ...params };
+
+ // when interactive and missing a bunch of stuff, we should display to the user
+ if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
+ this.log(usageText);
+ }
+
+ const needsContinue = (question: Question) => {
+ const value = obj[question.name];
+ return (
+ value === undefined ||
+ value === null ||
+ (typeof value === 'string' && value.trim().length === 0) // Check for empty string, safely trimming it
+ );
+ };
+
+ let index = 0;
+ let numTries = 0;
+ while (index < questions.length) {
+ const question = questions[index];
+ const ctx: PromptContext = {
+ numTries
+ }
+ if (needsContinue(question)) {
+ switch (question.type) {
+ case 'confirm':
+ obj[question.name] = await this.confirm(question as ConfirmQuestion, ctx);
+ break;
+ case 'checkbox':
+ obj[question.name] = await this.checkbox(question as CheckboxQuestion, ctx);
+ break;
+ case 'autocomplete':
+ obj[question.name] = await this.autocomplete(question as AutocompleteQuestion, ctx);
+ break;
+ case 'text':
+ default:
+ obj[question.name] = await this.text(question as TextQuestion, ctx); // Use promptText instead of text
+ break;
+ }
+ // Check if the question is required and the response is not adequate
+ if (question.required && needsContinue(question)) {
+ // Reset the property to undefined to re-trigger the prompt
+ numTries++;
+ obj[question.name] = undefined;
+ continue; // Stay on the same question
+ } else if (question.required) {
+ writeFileSync(__dirname + `/${question.name}-text.txt`, JSON.stringify({question, obj}, null, 2))
}
- } else {
- // Optionally handle noTty cases, e.g., set defaults or throw errors
- throw new Error(`Missing required parameter: ${question.name}`);
}
+ index++; // Move to the next question
+ numTries = 0;
}
+
+ return obj as T;
}
- return obj as T;
-}
+ async confirm(question: ConfirmQuestion, ctx: PromptContext): Promise {
+ if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
+
+ return new Promise((resolve) => {
+ // Construct the prompt with the default option indicated
+ const promptMessage = generatePromptMessage(question, ctx);
+ this.rl.question(promptMessage, (answer) => {
+ const userInput = answer.trim().toLowerCase();
+
+ if (userInput === '') {
+ resolve(question.default ?? false); // Use default value if input is empty
+ } else if (['yes', 'y'].includes(userInput)) {
+ resolve(true);
+ } else {
+ resolve(false);
+ }
+ });
+ });
+ }
+ async text(question: TextQuestion, ctx: PromptContext): Promise {
+ if (this.noTty || !this.rl) return question.default ?? null; // Return default if non-interactive
+ let userInput = '';
+
+ return new Promise((resolve) => {
+ this.clearScreen(); // Clear the console at the beginning of each input session
+ const promptMessage = generatePromptMessage(question, ctx);
+
+ this.rl.question(promptMessage, (answer) => { // Include the prompt directly in the question method
+ userInput = answer;
+ if (userInput.trim() !== '') {
+ resolve(userInput); // Return input if not empty
+ } else {
+ resolve(null); // Return null if empty and not required
+ }
+ });
+ });
+ }
+ async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
+ if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
- async promptCheckbox(_argv: any, question: Question): Promise {
this.keypress.resume();
const options = question.options || [];
let input = ''; // Search input
@@ -69,14 +187,16 @@ public async prompt(params: T, questions: Question[], usageTex
let startIndex = 0; // Start index for visible options
const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
const selections: boolean[] = new Array(options.length).fill(false);
-
+
const updateFilteredOptions = (): void => {
filteredOptions = options.filter(option => option.toLowerCase().includes(input.toLowerCase()));
};
-
+
const display = (): void => {
- console.clear();
- console.log(`Search: ${input}`);
+ this.clearScreen();
+ const promptMessage = generatePromptMessage(question, ctx);
+ this.write(promptMessage);
+ this.log(`${input}`);
const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
for (let i = startIndex; i < endIndex; i++) {
const option = filteredOptions[i];
@@ -84,19 +204,19 @@ public async prompt(params: T, questions: Question[], usageTex
const marker = isSelected ? '>' : ' ';
const isChecked = selections[options.indexOf(option)] ? '◉' : '○'; // Use the original index in options
const line = `${marker} ${isChecked} ${option}`;
- console.log(isSelected ? chalk.blue(line) : line);
+ this.log(isSelected ? chalk.blue(line) : line);
}
};
-
+
display();
-
+
// Handling BACKSPACE key
this.keypress.on(KEY_CODES.BACKSPACE, () => {
input = input.slice(0, -1);
updateFilteredOptions();
display();
});
-
+
// Register alphanumeric keypresses to accumulate input, excluding space
'abcdefghijklmnopqrstuvwxyz0123456789'.split('').forEach(char => {
this.keypress.on(char, () => {
@@ -105,7 +225,7 @@ public async prompt(params: T, questions: Question[], usageTex
display();
});
});
-
+
this.keypress.on(KEY_CODES.UP_ARROW, () => {
selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : filteredOptions.length - 1;
if (selectedIndex < startIndex) {
@@ -115,7 +235,7 @@ public async prompt(params: T, questions: Question[], usageTex
}
display();
});
-
+
this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
selectedIndex = (selectedIndex + 1) % filteredOptions.length;
if (selectedIndex >= startIndex + maxLines) {
@@ -125,13 +245,13 @@ public async prompt(params: T, questions: Question[], usageTex
}
display();
});
-
+
this.keypress.on(KEY_CODES.SPACE, () => {
// Map filtered index back to the original index in options
selections[options.indexOf(filteredOptions[selectedIndex])] = !selections[options.indexOf(filteredOptions[selectedIndex])];
display();
});
-
+
return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
@@ -159,7 +279,9 @@ public async prompt(params: T, questions: Question[], usageTex
});
});
}
- async promptAutocomplete(question: Question): Promise {
+ async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
+ if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
+
this.keypress.resume();
const options = question.options || [];
let input = '';
@@ -169,16 +291,17 @@ public async prompt(params: T, questions: Question[], usageTex
const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
const display = (): void => {
- console.clear();
- console.log(`Search: ${input}`);
+ this.clearScreen();
+ const promptMessage = generatePromptMessage(question, ctx);
+ this.log(promptMessage);
// Determine the range of options to display
const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
for (let i = startIndex; i < endIndex; i++) {
const option = filteredOptions[i];
if (i === selectedIndex) {
- console.log(chalk.blue('> ' + option)); // Highlight the selected option with chalk
+ this.log(chalk.blue('> ' + option)); // Highlight the selected option with chalk
} else {
- console.log(' ' + option);
+ this.log(' ' + option);
}
}
};
@@ -242,7 +365,6 @@ public async prompt(params: T, questions: Question[], usageTex
});
}
-
filterOptions(options: string[], input: string): string[] {
return options
.filter(option => option.toLowerCase().startsWith(input.toLowerCase()))
diff --git a/packages/inquirerer/src/question.ts b/packages/inquirerer/src/question.ts
deleted file mode 100644
index 47ca889..0000000
--- a/packages/inquirerer/src/question.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-export interface Question {
- name: string;
- type?: string; // This can be used for further customizations like validating input based on type
-
- options?: string[],
-
- maxDisplayLines?: number; // Optional parameter to limit the number of visible options
-
- returnFullResults?: boolean;
- allowCustomOptions?: boolean;
-
- required?: boolean;
-}
diff --git a/packages/inquirerer/src/question/classes.ts b/packages/inquirerer/src/question/classes.ts
new file mode 100644
index 0000000..ab0c014
--- /dev/null
+++ b/packages/inquirerer/src/question/classes.ts
@@ -0,0 +1 @@
+//
\ No newline at end of file
diff --git a/packages/inquirerer/src/question/index.ts b/packages/inquirerer/src/question/index.ts
new file mode 100644
index 0000000..fcdac2d
--- /dev/null
+++ b/packages/inquirerer/src/question/index.ts
@@ -0,0 +1 @@
+export * from './types';
\ No newline at end of file
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
new file mode 100644
index 0000000..eca0882
--- /dev/null
+++ b/packages/inquirerer/src/question/types.ts
@@ -0,0 +1,40 @@
+export interface Value {
+ name: string;
+ value: boolean;
+}
+
+export interface BaseQuestion {
+ name: string;
+ type: string;
+ default?: any;
+ required?: boolean;
+ message?: string;
+ }
+
+ export interface ConfirmQuestion extends BaseQuestion {
+ type: 'confirm';
+ default?: boolean; // Defaults are typically boolean for confirm types
+ }
+
+ export interface AutocompleteQuestion extends BaseQuestion {
+ type: 'autocomplete';
+ options: string[];
+ maxDisplayLines?: number;
+ returnFullResults?: boolean;
+ allowCustomOptions?: boolean;
+ }
+
+ export interface CheckboxQuestion extends BaseQuestion {
+ type: 'checkbox';
+ options: string[];
+ maxDisplayLines?: number;
+ returnFullResults?: boolean;
+ default?: Value[];
+ }
+
+ export interface TextQuestion extends BaseQuestion {
+ type: 'text';
+ default?: string;
+ }
+
+ export type Question = ConfirmQuestion | AutocompleteQuestion | CheckboxQuestion | TextQuestion;
\ No newline at end of file
diff --git a/packages/inquirerer/src/this_is_NOT_required-text.txt b/packages/inquirerer/src/this_is_NOT_required-text.txt
new file mode 100644
index 0000000..6fde057
--- /dev/null
+++ b/packages/inquirerer/src/this_is_NOT_required-text.txt
@@ -0,0 +1,66 @@
+{
+ "question": {
+ "name": "this_is_NOT_required",
+ "type": "checkbox",
+ "maxDisplayLines": 5,
+ "options": [
+ "Apple",
+ "Apricot",
+ "Avocado",
+ "Banana",
+ "Blackberry",
+ "Blueberry",
+ "Boysenberry",
+ "Cherry",
+ "Clementine",
+ "Coconut",
+ "Cranberry",
+ "Date",
+ "Durian",
+ "Elderberry",
+ "Fig",
+ "Grape",
+ "Grapefruit",
+ "Guava",
+ "Honeydew",
+ "Kiwi",
+ "Kumquat",
+ "Lemon",
+ "Lime",
+ "Lychee",
+ "Mango",
+ "Melon",
+ "Mulberry",
+ "Nectarine",
+ "Orange",
+ "Papaya",
+ "Peach",
+ "Pear",
+ "Persimmon",
+ "Pineapple",
+ "Plum",
+ "Pomegranate",
+ "Pomelo",
+ "Quince",
+ "Raspberry",
+ "Redcurrant",
+ "Strawberry",
+ "Starfruit",
+ "Tangerine",
+ "Ugli Fruit",
+ "Vanilla",
+ "Watermelon",
+ "Xigua (Chinese Watermelon)",
+ "Yellow Plum",
+ "Zucchini"
+ ],
+ "required": true
+ },
+ "obj": {
+ "fruitSearch": "Apple",
+ "first": null,
+ "last": "sdf",
+ "autocomp": "Apple",
+ "this_is_NOT_required": []
+ }
+}
\ No newline at end of file
diff --git a/packages/inquirerer/src/this_is_required-text.txt b/packages/inquirerer/src/this_is_required-text.txt
new file mode 100644
index 0000000..256d41f
--- /dev/null
+++ b/packages/inquirerer/src/this_is_required-text.txt
@@ -0,0 +1,67 @@
+{
+ "question": {
+ "name": "this_is_required",
+ "type": "checkbox",
+ "maxDisplayLines": 5,
+ "options": [
+ "Apple",
+ "Apricot",
+ "Avocado",
+ "Banana",
+ "Blackberry",
+ "Blueberry",
+ "Boysenberry",
+ "Cherry",
+ "Clementine",
+ "Coconut",
+ "Cranberry",
+ "Date",
+ "Durian",
+ "Elderberry",
+ "Fig",
+ "Grape",
+ "Grapefruit",
+ "Guava",
+ "Honeydew",
+ "Kiwi",
+ "Kumquat",
+ "Lemon",
+ "Lime",
+ "Lychee",
+ "Mango",
+ "Melon",
+ "Mulberry",
+ "Nectarine",
+ "Orange",
+ "Papaya",
+ "Peach",
+ "Pear",
+ "Persimmon",
+ "Pineapple",
+ "Plum",
+ "Pomegranate",
+ "Pomelo",
+ "Quince",
+ "Raspberry",
+ "Redcurrant",
+ "Strawberry",
+ "Starfruit",
+ "Tangerine",
+ "Ugli Fruit",
+ "Vanilla",
+ "Watermelon",
+ "Xigua (Chinese Watermelon)",
+ "Yellow Plum",
+ "Zucchini"
+ ],
+ "required": true
+ },
+ "obj": {
+ "fruitSearch": "Apple",
+ "first": null,
+ "last": "sdf",
+ "autocomp": "Apple",
+ "this_is_NOT_required": [],
+ "this_is_required": []
+ }
+}
\ No newline at end of file
From d20249fffb0d9b648f270921f34e8f7bef28b5e7 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 20:11:03 -0700
Subject: [PATCH 022/124] test more events
---
.../__snapshots__/prompt.test.ts.snap | 85 ++++++
packages/inquirerer/__tests__/prompt.test.ts | 256 ++++++++++++++++--
packages/inquirerer/src/last-text.txt | 6 +-
.../src/this_is_NOT_required-text.txt | 15 +-
.../inquirerer/src/this_is_required-text.txt | 22 +-
5 files changed, 351 insertions(+), 33 deletions(-)
create mode 100644 packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
diff --git a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
new file mode 100644
index 0000000..ad7f481
--- /dev/null
+++ b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
@@ -0,0 +1,85 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Inquirerer checkbox 1`] = `
+{
+ "checkbox": [
+ {
+ "name": "b",
+ "value": true,
+ },
+ {
+ "name": "c",
+ "value": true,
+ },
+ ],
+}
+`;
+
+exports[`Inquirerer checkbox w/options 1`] = `
+{
+ "checkbox": [
+ {
+ "name": "a",
+ "value": false,
+ },
+ {
+ "name": "b",
+ "value": true,
+ },
+ {
+ "name": "c",
+ "value": true,
+ },
+ ],
+}
+`;
+
+exports[`Inquirerer handles autocomplete selection with key events 1`] = `
+[
+ "c",
+ "autocompleteField:
+>
+",
+ "[34m> first option[39m
+",
+ " second option
+",
+ " third option
+",
+ "c",
+ "autocompleteField:
+>
+",
+ " first option
+",
+ "[34m> second option[39m
+",
+ " third option
+",
+]
+`;
+
+exports[`Inquirerer handles autocomplete selection with key events 2`] = `
+[
+ "[B",
+ "
+",
+]
+`;
+
+exports[`Inquirerer handles multiple questions 1`] = `
+[
+ "c",
+ "c",
+]
+`;
+
+exports[`Inquirerer handles multiple questions 2`] = `[]`;
+
+exports[`Inquirerer prompts user and correctly processes delayed input 1`] = `
+[
+ "c",
+]
+`;
+
+exports[`Inquirerer prompts user and correctly processes delayed input 2`] = `[]`;
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
index 47f94cb..a47c2a4 100644
--- a/packages/inquirerer/__tests__/prompt.test.ts
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -1,56 +1,274 @@
import readline from 'readline';
-import { Readable, Writable } from 'stream';
+import { Readable, Writable, Transform } from 'stream';
-import { Inquirerer } from '../src'; // Ensure correct import path
-import { Question } from '../src/question'; // Assuming you have a type for questions
+
+import { Inquirerer } from '../src';
+import { Question } from '../src/question';
jest.mock('readline');
+function sleep(ms: number): Promise {
+ return new Promise(resolve => setTimeout(resolve, ms));
+}
+
describe('Inquirerer', () => {
let mockWrite: jest.Mock;
let mockInput: Readable;
let mockOutput: Writable;
+ let questionHandlers: Array<(input: string) => void> = [];
+ let currentQuestionIndex: number = 0;
+ let transformStream: Transform;
+
+ let writeResults: string[];
+ let transformResults: string[];
+
+ let inputQueue: Array<{ type: 'key' | 'read', value: string }> = [];
+ let currentInputIndex: number = 0;
+
+ function setupReadlineMock() {
+ readline.createInterface = jest.fn().mockReturnValue({
+ question: (questionText: string, cb: (input: string) => void) => {
+ // Process the queued inputs when question is called
+ const nextInput = inputQueue[currentInputIndex++];
+ if (nextInput && nextInput.type === 'read') {
+ setTimeout(() => cb(nextInput.value), 350); // Simulate readline delay
+ }
+ },
+ close: jest.fn(),
+ });
+ }
+
+ function enqueueInputResponse(input: { type: 'key' | 'read', value: string }) {
+ if (input.type === 'key') {
+ // Push key events directly to mockInput
+ // @ts-ignore
+ setTimeout(() => mockInput.push(input.value), 350);
+ } else {
+ // Queue readline responses to be handled by the readline mock
+ inputQueue.push(input);
+ }
+ }
+
+ const KEY_SEQUENCES = {
+ ENTER: '\u000d', // Carriage return
+ UP_ARROW: '\u001b[A', // ANSI escape sequence for the up arrow
+ DOWN_ARROW: '\u001b[B',
+ SPACE: ' '
+ };
beforeEach(() => {
mockWrite = jest.fn();
+ currentQuestionIndex = 0;
+ questionHandlers = [];
+ writeResults = [];
+ transformResults = [];
+
- // Create a mock input stream with a setRawMode method
mockInput = new Readable({
- read(size) {}
+ read(size) { }
});
- // @ts-ignore to add non-standard method
- mockInput.setRawMode = jest.fn();
+ // @ts-ignore
+ mockInput.setRawMode = jest.fn(); // Mock TTY-specific method if needed
- // Create a mock output stream
mockOutput = new Writable({
write: (chunk, encoding, callback) => {
- mockWrite(chunk.toString());
+ const str = chunk.toString();
+ writeResults.push(str);
+ mockWrite(str);
callback();
}
});
- readline.createInterface = jest.fn().mockReturnValue({
- question: (questionText: string, cb: (input: string) => void) => {
- setTimeout(() => cb('user input'), 350); // simulate user delay
- },
- close: jest.fn(),
+ // Create the transform stream to log and pass through data
+ transformStream = new Transform({
+ transform(chunk, encoding, callback) {
+ const data = chunk.toString();
+ transformResults.push(data);
+ this.push(chunk); // Pass the data through
+ callback();
+ }
});
+
+ setupReadlineMock();
+ // Pipe the transform stream to the mock output to intercept writes
+ // transformStream.pipe(mockOutput);
+
+ // mockOutput.pipe(transformStream);
+ mockInput.pipe(transformStream);
+
+ // mockInput.pipe(transformStream).pipe(mockOutput);
+
});
it('prompts user and correctly processes delayed input', async () => {
+ enqueueInputResponse({ type: 'read', value: 'user input' });
+
const prompter = new Inquirerer(false, mockInput, mockOutput);
const questions: Question[] = [{ name: 'username', type: 'text' }];
const initialParams = {};
const expectedResult = { username: 'user input' };
- const result = await new Promise(resolve => {
- setTimeout(() => {
- prompter.prompt(initialParams, questions).then(resolve);
- }, 1100); // Wait slightly longer than the readline delay to ensure input is received
- });
+ const result = await prompter.prompt(initialParams, questions);
expect(result).toEqual(expectedResult);
// expect(mockWrite).toHaveBeenCalledWith(expect.stringContaining('username:\n> '));
+ expect(writeResults).toMatchSnapshot();
+ expect(transformResults).toMatchSnapshot();
+ });
+
+ it('handles multiple questions', async () => {
+ enqueueInputResponse({ type: 'read', value: 'first question answer' });
+ enqueueInputResponse({ type: 'read', value: 'second question answer' });
+
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [
+ { name: 'firstQuestion', type: 'text' },
+ { name: 'secondQuestion', type: 'text' }
+ ];
+ const initialParams = {};
+
+ const result = await prompter.prompt(initialParams, questions);
+
+ expect(result).toEqual({
+ firstQuestion: 'first question answer',
+ secondQuestion: 'second question answer'
+ });
+ expect(writeResults).toMatchSnapshot();
+ expect(transformResults).toMatchSnapshot();
+ });
+
+ xit('handles autocomplete selection with key events', async () => {
+ // Simulate typing 'fir', navigating down to the second option, and selecting it
+ // enqueueInputResponse({ type: 'read', value: 'fir' });
+ // enqueueInputResponse({ type: 'key', value: 'DOWN_ARROW' });
+
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [{
+ name: 'autocompleteField',
+ type: 'autocomplete',
+ options: ['first option', 'firry second option', 'firry third option']
+ }];
+ const initialParams = {};
+
+ enqueueInputResponse({ type: 'key', value: 'f' });
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER });
+
+ const result = await prompter.prompt(initialParams, questions);
+
+ // Expected to select the second option
+ expect(result).toEqual({ autocompleteField: 'second option' });
+ expect(writeResults).toMatchSnapshot();
+ expect(transformResults).toMatchSnapshot();
});
+
+ it('handles combined key events and readline inputs', async () => {
+
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [
+ { name: 'firstQuestion', type: 'text' },
+ { name: 'secondQuestion', type: 'text' }
+ ];
+ const initialParams = {};
+
+ enqueueInputResponse({ type: 'read', value: 'first question answer' });
+ // enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW }); // Simulate Down Arrow
+ // enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER }); // Simulate Enter
+ enqueueInputResponse({ type: 'read', value: 'second question answer' });
+
+ const result = await prompter.prompt(initialParams, questions);
+
+
+
+ expect(result).toEqual({
+ firstQuestion: 'first question answer',
+ secondQuestion: 'second question answer'
+ });
+ });
+
+ it('checkbox', async () => {
+
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [
+ {
+ name: 'checkbox', type: 'checkbox', options: [
+ 'a',
+ 'b',
+ 'c'
+ ]
+ }
+ ];
+ const initialParams = {};
+
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW }); // Simulate Down Arrow
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.SPACE }); // Space to select
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW }); // Simulate Down Arrow
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.SPACE }); // Space to select
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER }); // Simulate Enter
+
+ const result = await prompter.prompt(initialParams, questions);
+
+ expect(result).toMatchSnapshot();
+ });
+
+ it('checkbox w/options', async () => {
+
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [
+ {
+ name: 'checkbox',
+ type: 'checkbox',
+ options: [
+ 'a',
+ 'b',
+ 'c'
+ ],
+ returnFullResults: true
+ }
+ ];
+ const initialParams = {};
+
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW }); // Simulate Down Arrow
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.SPACE }); // Space to select
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW }); // Simulate Down Arrow
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.SPACE }); // Space to select
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER }); // Simulate Enter
+
+ const result = await prompter.prompt(initialParams, questions);
+
+ expect(result).toMatchSnapshot();
+ });
+
+ it('handles readline inputs', async () => {
+
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [
+ { name: 'firstQuestion', type: 'text' },
+ { name: 'secondQuestion', type: 'text' },
+ { name: 'youGotIt', type: 'confirm' },
+ { name: 'andGotIt', type: 'confirm' },
+ ];
+ const initialParams = {};
+
+ enqueueInputResponse({ type: 'read', value: 'first question answer' });
+ // enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW }); // Simulate Down Arrow
+ // enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER }); // Simulate Enter
+ enqueueInputResponse({ type: 'read', value: 'second question answer' });
+ enqueueInputResponse({ type: 'read', value: 'Y' });
+ enqueueInputResponse({ type: 'read', value: 'N' });
+
+ const result = await prompter.prompt(initialParams, questions);
+
+
+
+ expect(result).toEqual({
+ firstQuestion: 'first question answer',
+ secondQuestion: 'second question answer',
+ youGotIt: true,
+ andGotIt: false
+ });
+ });
+
});
diff --git a/packages/inquirerer/src/last-text.txt b/packages/inquirerer/src/last-text.txt
index 60d1e56..6d39ab0 100644
--- a/packages/inquirerer/src/last-text.txt
+++ b/packages/inquirerer/src/last-text.txt
@@ -6,8 +6,8 @@
"message": "Enter your last name"
},
"obj": {
- "fruitSearch": "Apple",
- "first": null,
- "last": "sdf"
+ "fruitSearch": "Apricot",
+ "first": "adsf",
+ "last": "asdf"
}
}
\ No newline at end of file
diff --git a/packages/inquirerer/src/this_is_NOT_required-text.txt b/packages/inquirerer/src/this_is_NOT_required-text.txt
index 6fde057..d355226 100644
--- a/packages/inquirerer/src/this_is_NOT_required-text.txt
+++ b/packages/inquirerer/src/this_is_NOT_required-text.txt
@@ -57,10 +57,15 @@
"required": true
},
"obj": {
- "fruitSearch": "Apple",
- "first": null,
- "last": "sdf",
- "autocomp": "Apple",
- "this_is_NOT_required": []
+ "fruitSearch": "Apricot",
+ "first": "adsf",
+ "last": "asdf",
+ "autocomp": "Apricot",
+ "this_is_NOT_required": [
+ {
+ "name": "Apricot",
+ "value": true
+ }
+ ]
}
}
\ No newline at end of file
diff --git a/packages/inquirerer/src/this_is_required-text.txt b/packages/inquirerer/src/this_is_required-text.txt
index 256d41f..1cda611 100644
--- a/packages/inquirerer/src/this_is_required-text.txt
+++ b/packages/inquirerer/src/this_is_required-text.txt
@@ -57,11 +57,21 @@
"required": true
},
"obj": {
- "fruitSearch": "Apple",
- "first": null,
- "last": "sdf",
- "autocomp": "Apple",
- "this_is_NOT_required": [],
- "this_is_required": []
+ "fruitSearch": "Apricot",
+ "first": "adsf",
+ "last": "asdf",
+ "autocomp": "Apricot",
+ "this_is_NOT_required": [
+ {
+ "name": "Apricot",
+ "value": true
+ }
+ ],
+ "this_is_required": [
+ {
+ "name": "Apricot",
+ "value": true
+ }
+ ]
}
}
\ No newline at end of file
From b10ae8433977b0b60020affaaac7f9babd9ccbde Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 20:29:44 -0700
Subject: [PATCH 023/124] autocomplete tests
---
.../__snapshots__/autocomplete.test.ts.snap | 53 ++++++++
.../__snapshots__/prompt.test.ts.snap | 33 -----
.../inquirerer/__tests__/autocomplete.test.ts | 127 ++++++++++++++++++
packages/inquirerer/__tests__/prompt.test.ts | 26 ----
4 files changed, 180 insertions(+), 59 deletions(-)
create mode 100644 packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
create mode 100644 packages/inquirerer/__tests__/autocomplete.test.ts
diff --git a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
new file mode 100644
index 0000000..a10236a
--- /dev/null
+++ b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
@@ -0,0 +1,53 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Inquirerer handles autocomplete selection with key events 1`] = `
+{
+ "result": {
+ "autocompleteField": "firry third option",
+ },
+}
+`;
+
+exports[`Inquirerer handles autocomplete selection with key events 2`] = `
+[
+ "c",
+ "autocompleteField:
+>
+",
+ "[34m> first option[39m
+",
+ " firry second option
+",
+ " firry third option
+",
+ "c",
+ "autocompleteField:
+>
+",
+ " first option
+",
+ "[34m> firry second option[39m
+",
+ " firry third option
+",
+ "c",
+ "autocompleteField:
+>
+",
+ " first option
+",
+ " firry second option
+",
+ "[34m> firry third option[39m
+",
+]
+`;
+
+exports[`Inquirerer handles autocomplete selection with key events 3`] = `
+[
+ "[B",
+ "[B",
+ "
+",
+]
+`;
diff --git a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
index ad7f481..3361438 100644
--- a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
@@ -34,39 +34,6 @@ exports[`Inquirerer checkbox w/options 1`] = `
}
`;
-exports[`Inquirerer handles autocomplete selection with key events 1`] = `
-[
- "c",
- "autocompleteField:
->
-",
- "[34m> first option[39m
-",
- " second option
-",
- " third option
-",
- "c",
- "autocompleteField:
->
-",
- " first option
-",
- "[34m> second option[39m
-",
- " third option
-",
-]
-`;
-
-exports[`Inquirerer handles autocomplete selection with key events 2`] = `
-[
- "[B",
- "
-",
-]
-`;
-
exports[`Inquirerer handles multiple questions 1`] = `
[
"c",
diff --git a/packages/inquirerer/__tests__/autocomplete.test.ts b/packages/inquirerer/__tests__/autocomplete.test.ts
new file mode 100644
index 0000000..5e77bca
--- /dev/null
+++ b/packages/inquirerer/__tests__/autocomplete.test.ts
@@ -0,0 +1,127 @@
+import readline from 'readline';
+import { Readable, Writable, Transform } from 'stream';
+
+
+import { Inquirerer } from '../src';
+import { Question } from '../src/question';
+
+jest.mock('readline');
+
+function sleep(ms: number): Promise {
+ return new Promise(resolve => setTimeout(resolve, ms));
+}
+
+describe('Inquirerer', () => {
+ let mockWrite: jest.Mock;
+ let mockInput: Readable;
+ let mockOutput: Writable;
+ let questionHandlers: Array<(input: string) => void> = [];
+ let currentQuestionIndex: number = 0;
+ let transformStream: Transform;
+
+ let writeResults: string[];
+ let transformResults: string[];
+
+ let inputQueue: Array<{ type: 'key' | 'read', value: string }> = [];
+ let currentInputIndex: number = 0;
+
+ function setupReadlineMock() {
+ readline.createInterface = jest.fn().mockReturnValue({
+ question: (questionText: string, cb: (input: string) => void) => {
+ // Process the queued inputs when question is called
+ const nextInput = inputQueue[currentInputIndex++];
+ if (nextInput && nextInput.type === 'read') {
+ setTimeout(() => cb(nextInput.value), 350); // Simulate readline delay
+ }
+ },
+ close: jest.fn(),
+ });
+ }
+
+ function enqueueInputResponse(input: { type: 'key' | 'read', value: string }) {
+ if (input.type === 'key') {
+ // Push key events directly to mockInput
+ // @ts-ignore
+ setTimeout(() => mockInput.push(input.value), 350);
+ } else {
+ // Queue readline responses to be handled by the readline mock
+ inputQueue.push(input);
+ }
+ }
+
+ const KEY_SEQUENCES = {
+ ENTER: '\u000d', // Carriage return
+ UP_ARROW: '\u001b[A', // ANSI escape sequence for the up arrow
+ DOWN_ARROW: '\u001b[B',
+ SPACE: ' '
+ };
+
+ beforeEach(() => {
+ mockWrite = jest.fn();
+ currentQuestionIndex = 0;
+ questionHandlers = [];
+ writeResults = [];
+ transformResults = [];
+
+
+ mockInput = new Readable({
+ read(size) { }
+ });
+ // @ts-ignore
+ mockInput.setRawMode = jest.fn(); // Mock TTY-specific method if needed
+
+ mockOutput = new Writable({
+ write: (chunk, encoding, callback) => {
+ const str = chunk.toString();
+ writeResults.push(str);
+ mockWrite(str);
+ callback();
+ }
+ });
+
+ // Create the transform stream to log and pass through data
+ transformStream = new Transform({
+ transform(chunk, encoding, callback) {
+ const data = chunk.toString();
+ transformResults.push(data);
+ this.push(chunk); // Pass the data through
+ callback();
+ }
+ });
+
+ setupReadlineMock();
+ // Pipe the transform stream to the mock output to intercept writes
+ // transformStream.pipe(mockOutput);
+
+ // mockOutput.pipe(transformStream);
+ mockInput.pipe(transformStream);
+
+ // mockInput.pipe(transformStream).pipe(mockOutput);
+
+ });
+
+ it('handles autocomplete selection with key events', async () => {
+ const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const questions: Question[] = [{
+ name: 'autocompleteField',
+ type: 'autocomplete',
+ options: ['first option', 'firry second option', 'firry third option']
+ }];
+ const initialParams = {};
+
+ enqueueInputResponse({ type: 'read', value: 'fir' });
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
+ enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER });
+
+ const result = await prompter.prompt(initialParams, questions);
+
+ // Expected to select the second option
+ // expect(result).toEqual({ autocompleteField: 'second option' });
+ expect({result}).toMatchSnapshot();
+ expect(writeResults).toMatchSnapshot();
+ expect(transformResults).toMatchSnapshot();
+ });
+
+
+});
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
index a47c2a4..7c9feba 100644
--- a/packages/inquirerer/__tests__/prompt.test.ts
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -138,32 +138,6 @@ describe('Inquirerer', () => {
expect(transformResults).toMatchSnapshot();
});
- xit('handles autocomplete selection with key events', async () => {
- // Simulate typing 'fir', navigating down to the second option, and selecting it
- // enqueueInputResponse({ type: 'read', value: 'fir' });
- // enqueueInputResponse({ type: 'key', value: 'DOWN_ARROW' });
-
- const prompter = new Inquirerer(false, mockInput, mockOutput);
- const questions: Question[] = [{
- name: 'autocompleteField',
- type: 'autocomplete',
- options: ['first option', 'firry second option', 'firry third option']
- }];
- const initialParams = {};
-
- enqueueInputResponse({ type: 'key', value: 'f' });
- enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
- enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
- enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER });
-
- const result = await prompter.prompt(initialParams, questions);
-
- // Expected to select the second option
- expect(result).toEqual({ autocompleteField: 'second option' });
- expect(writeResults).toMatchSnapshot();
- expect(transformResults).toMatchSnapshot();
- });
-
it('handles combined key events and readline inputs', async () => {
const prompter = new Inquirerer(false, mockInput, mockOutput);
From 05518ab8191276de1ed9f339cf1831250dcddc5f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 22:48:46 -0700
Subject: [PATCH 024/124] pkg
---
.github/workflows/run-tests.yml | 30 ++++++++
README.md | 17 +++-
packages/inquirerer/src/prompt.ts | 2 -
.../src/this_is_NOT_required-text.txt | 71 -----------------
.../inquirerer/src/this_is_required-text.txt | 77 -------------------
5 files changed, 44 insertions(+), 153 deletions(-)
create mode 100644 .github/workflows/run-tests.yml
delete mode 100644 packages/inquirerer/src/this_is_NOT_required-text.txt
delete mode 100644 packages/inquirerer/src/this_is_required-text.txt
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
new file mode 100644
index 0000000..97ed0c3
--- /dev/null
+++ b/.github/workflows/run-tests.yml
@@ -0,0 +1,30 @@
+name: Run Tests
+
+on:
+ push:
+
+ pull_request:
+ types: [opened, reopened]
+
+ workflow_dispatch:
+
+jobs:
+ run-tests:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Repository 🛎️
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20.x'
+
+ - name: Install Dependencies
+ run: yarn install
+
+ - name: Build Project
+ run: yarn build
+
+ - name: Test inquirerer
+ run: cd packages/inquirerer && yarn test
diff --git a/README.md b/README.md
index d6c03ad..5a53f30 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,21 @@
# inquirerer
-
- 
- __MODULEDESC__
+
+
+
+
+
+
+
+
+
+
+
+
+This is the new and improved version of [pyramation/inquirer](https://github.com/pyramation/inquirerer). Soon this will completely replace it!
+
## install
```sh
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 2d520cf..3e9308d 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -125,8 +125,6 @@ export class Inquirerer {
numTries++;
obj[question.name] = undefined;
continue; // Stay on the same question
- } else if (question.required) {
- writeFileSync(__dirname + `/${question.name}-text.txt`, JSON.stringify({question, obj}, null, 2))
}
}
index++; // Move to the next question
diff --git a/packages/inquirerer/src/this_is_NOT_required-text.txt b/packages/inquirerer/src/this_is_NOT_required-text.txt
deleted file mode 100644
index d355226..0000000
--- a/packages/inquirerer/src/this_is_NOT_required-text.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "question": {
- "name": "this_is_NOT_required",
- "type": "checkbox",
- "maxDisplayLines": 5,
- "options": [
- "Apple",
- "Apricot",
- "Avocado",
- "Banana",
- "Blackberry",
- "Blueberry",
- "Boysenberry",
- "Cherry",
- "Clementine",
- "Coconut",
- "Cranberry",
- "Date",
- "Durian",
- "Elderberry",
- "Fig",
- "Grape",
- "Grapefruit",
- "Guava",
- "Honeydew",
- "Kiwi",
- "Kumquat",
- "Lemon",
- "Lime",
- "Lychee",
- "Mango",
- "Melon",
- "Mulberry",
- "Nectarine",
- "Orange",
- "Papaya",
- "Peach",
- "Pear",
- "Persimmon",
- "Pineapple",
- "Plum",
- "Pomegranate",
- "Pomelo",
- "Quince",
- "Raspberry",
- "Redcurrant",
- "Strawberry",
- "Starfruit",
- "Tangerine",
- "Ugli Fruit",
- "Vanilla",
- "Watermelon",
- "Xigua (Chinese Watermelon)",
- "Yellow Plum",
- "Zucchini"
- ],
- "required": true
- },
- "obj": {
- "fruitSearch": "Apricot",
- "first": "adsf",
- "last": "asdf",
- "autocomp": "Apricot",
- "this_is_NOT_required": [
- {
- "name": "Apricot",
- "value": true
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/packages/inquirerer/src/this_is_required-text.txt b/packages/inquirerer/src/this_is_required-text.txt
deleted file mode 100644
index 1cda611..0000000
--- a/packages/inquirerer/src/this_is_required-text.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "question": {
- "name": "this_is_required",
- "type": "checkbox",
- "maxDisplayLines": 5,
- "options": [
- "Apple",
- "Apricot",
- "Avocado",
- "Banana",
- "Blackberry",
- "Blueberry",
- "Boysenberry",
- "Cherry",
- "Clementine",
- "Coconut",
- "Cranberry",
- "Date",
- "Durian",
- "Elderberry",
- "Fig",
- "Grape",
- "Grapefruit",
- "Guava",
- "Honeydew",
- "Kiwi",
- "Kumquat",
- "Lemon",
- "Lime",
- "Lychee",
- "Mango",
- "Melon",
- "Mulberry",
- "Nectarine",
- "Orange",
- "Papaya",
- "Peach",
- "Pear",
- "Persimmon",
- "Pineapple",
- "Plum",
- "Pomegranate",
- "Pomelo",
- "Quince",
- "Raspberry",
- "Redcurrant",
- "Strawberry",
- "Starfruit",
- "Tangerine",
- "Ugli Fruit",
- "Vanilla",
- "Watermelon",
- "Xigua (Chinese Watermelon)",
- "Yellow Plum",
- "Zucchini"
- ],
- "required": true
- },
- "obj": {
- "fruitSearch": "Apricot",
- "first": "adsf",
- "last": "asdf",
- "autocomp": "Apricot",
- "this_is_NOT_required": [
- {
- "name": "Apricot",
- "value": true
- }
- ],
- "this_is_required": [
- {
- "name": "Apricot",
- "value": true
- }
- ]
- }
-}
\ No newline at end of file
From 4170e055dd4b347235868839b0299d8199e5ff06 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:08:24 -0700
Subject: [PATCH 025/124] pkg
---
README.md | 143 +++++++++++++---
packages/inquirerer/README.md | 158 +++++++++++++++---
.../__snapshots__/autocomplete.test.ts.snap | 68 +++-----
.../__snapshots__/prompt.test.ts.snap | 52 ------
.../inquirerer/__tests__/autocomplete.test.ts | 10 +-
packages/inquirerer/__tests__/prompt.test.ts | 16 +-
6 files changed, 300 insertions(+), 147 deletions(-)
delete mode 100644 packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
diff --git a/README.md b/README.md
index 5a53f30..02ee364 100644
--- a/README.md
+++ b/README.md
@@ -14,46 +14,149 @@
-This is the new and improved version of [pyramation/inquirer](https://github.com/pyramation/inquirerer). Soon this will completely replace it!
+This library is designed to facilitate the creation of command-line utilities by providing a robust framework for capturing user input through interactive prompts. It supports a variety of question types, making it highly flexible and suitable for a wide range of applications.
-## install
+_This is the new and improved version of [pyramation/inquirer](https://github.com/pyramation/inquirerer). Soon this will completely replace it!_
+
+## Install
```sh
npm install inquirerer
```
-## Table of contents
-- [inquirerer](#inquirerer)
+## Features
+
+- 🖊 **Multiple Question Types:** Support for text, autocomplete, checkbox, and confirm questions.
+- 🛠 **Customizable Prompts:** Easily configure prompts to include default values, requirement flags, and custom validation rules.
+- 🔎 **Interactive Autocomplete:** Dynamically filter options based on user input.
+- ✔️ **Flexible Checkbox Selections:** Allow users to select multiple options from a list.
+
+## Table of Contents
+
+- [Introduction](#inquirerer)
- [Install](#install)
- - [Table of contents](#table-of-contents)
+- [Features](#features)
+- [Installation](#installation)
+- [Usage](#usage)
+ - [Example Questions](#example-questions)
+ - [Text Question](#text-question)
+ - [Confirm Question](#confirm-question)
+ - [Autocomplete Question](#autocomplete-question)
+ - [Checkbox Question](#checkbox-question)
+ - [Executing a Prompt](#executing-a-prompt)
- [Developing](#developing)
- [Credits](#credits)
+- [Disclaimer](#disclaimer)
-## Developing
+## Installation
+To install the library, use `npm` or `yarn`:
-When first cloning the repo:
+```bash
+npm install inquirerer
```
-yarn
-yarn build
+
+## Usage
+
+Import the library and use it to create prompts for your command-line application:
+
+```js
+import { Inquirerer } from 'inquirerer';
+```
+
+### Example Questions
+
+Here are several examples of different question types you can use:
+
+#### Text Question
+
+```js
+{
+ type: 'text',
+ name: 'firstName',
+ message: 'Enter your first name',
+}
```
-## Related
+#### Confirm Question
+
+```js
+{
+ type: 'confirm',
+ name: 'continue',
+ message: 'Do you wish to continue?',
+ default: true,
+}
+```
-Checkout these related projects:
+#### Autocomplete Question
+
+```js
+{
+ type: 'autocomplete',
+ name: 'fruitChoice',
+ message: 'Select your favorite fruit',
+ options: [
+ 'Apple', 'Banana', 'Cherry'
+ ],
+ maxDisplayLines: 5
+}
+```
-* [@cosmology/telescope](https://github.com/cosmology-tech/telescope) Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.
-* [@cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.
-* [chain-registry](https://github.com/cosmology-tech/chain-registry) Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.
-* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.
-* [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) Set up a modern Cosmos app by running one command.
-* [interchain-ui](https://github.com/cosmology-tech/interchain-ui) The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.
-* [starship](https://github.com/cosmology-tech/starship) Unified Testing and Development for the Interchain.
+#### Checkbox Question
+
+```js
+{
+ type: 'checkbox',
+ name: 'techStack',
+ message: 'Choose your tech stack',
+ options: [
+ 'Node.js', 'React', 'Angular', 'Vue.js'
+ ],
+ returnFullResults: false,
+ required: true
+}
+```
-## Credits
+### Executing a Prompt
+
+To run a prompt and handle the response:
+
+```js
+const prompter = new Inquirerer();
+
+async function runPrompt() {
+ const responses = await prompter.prompt({}, [
+ {
+ type: 'text',
+ name: 'lastName',
+ message: 'Enter your last name',
+ required: true
+ },
+ {
+ type: 'checkbox',
+ name: 'devTools',
+ message: 'Select development tools:',
+ options: ['VS Code', 'Sublime', 'Atom'],
+ required: true
+ }
+ ]);
+
+ console.log(responses);
+}
+
+runPrompt();
+```
-🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.zone/validator)
+## Developing
+
+
+When first cloning the repo:
+```
+yarn
+yarn build
+```
## Disclaimer
diff --git a/packages/inquirerer/README.md b/packages/inquirerer/README.md
index a85579a..02ee364 100644
--- a/packages/inquirerer/README.md
+++ b/packages/inquirerer/README.md
@@ -1,48 +1,162 @@
# inquirerer
-
- 
- inquirerer
+
+
-## install
+
+
+
+
+
+
+
+
+
+
+This library is designed to facilitate the creation of command-line utilities by providing a robust framework for capturing user input through interactive prompts. It supports a variety of question types, making it highly flexible and suitable for a wide range of applications.
+
+_This is the new and improved version of [pyramation/inquirer](https://github.com/pyramation/inquirerer). Soon this will completely replace it!_
+
+## Install
```sh
npm install inquirerer
```
-## Table of contents
-- [inquirerer](#inquirerer)
+## Features
+
+- 🖊 **Multiple Question Types:** Support for text, autocomplete, checkbox, and confirm questions.
+- 🛠 **Customizable Prompts:** Easily configure prompts to include default values, requirement flags, and custom validation rules.
+- 🔎 **Interactive Autocomplete:** Dynamically filter options based on user input.
+- ✔️ **Flexible Checkbox Selections:** Allow users to select multiple options from a list.
+
+## Table of Contents
+
+- [Introduction](#inquirerer)
- [Install](#install)
- - [Table of contents](#table-of-contents)
+- [Features](#features)
+- [Installation](#installation)
+- [Usage](#usage)
+ - [Example Questions](#example-questions)
+ - [Text Question](#text-question)
+ - [Confirm Question](#confirm-question)
+ - [Autocomplete Question](#autocomplete-question)
+ - [Checkbox Question](#checkbox-question)
+ - [Executing a Prompt](#executing-a-prompt)
- [Developing](#developing)
- [Credits](#credits)
+- [Disclaimer](#disclaimer)
-## Developing
+## Installation
-When first cloning the repo:
+To install the library, use `npm` or `yarn`:
+```bash
+npm install inquirerer
```
-yarn
-yarn build
+
+## Usage
+
+Import the library and use it to create prompts for your command-line application:
+
+```js
+import { Inquirerer } from 'inquirerer';
```
-## Related
+### Example Questions
-Checkout these related projects:
+Here are several examples of different question types you can use:
-* [@cosmology/telescope](https://github.com/cosmology-tech/telescope) Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.
-* [@cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.
-* [chain-registry](https://github.com/cosmology-tech/chain-registry) Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.
-* [cosmos-kit](https://github.com/cosmology-tech/cosmos-kit) Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.
-* [create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) Set up a modern Cosmos app by running one command.
-* [interchain-ui](https://github.com/cosmology-tech/interchain-ui) The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.
-* [starship](https://github.com/cosmology-tech/starship) Unified Testing and Development for the Interchain.
+#### Text Question
-## Credits
+```js
+{
+ type: 'text',
+ name: 'firstName',
+ message: 'Enter your first name',
+}
+```
-🛠 Built by Cosmology — if you like our tools, please consider delegating to [our validator ⚛️](https://cosmology.zone/validator)
+#### Confirm Question
+```js
+{
+ type: 'confirm',
+ name: 'continue',
+ message: 'Do you wish to continue?',
+ default: true,
+}
+```
+
+#### Autocomplete Question
+
+```js
+{
+ type: 'autocomplete',
+ name: 'fruitChoice',
+ message: 'Select your favorite fruit',
+ options: [
+ 'Apple', 'Banana', 'Cherry'
+ ],
+ maxDisplayLines: 5
+}
+```
+
+#### Checkbox Question
+
+```js
+{
+ type: 'checkbox',
+ name: 'techStack',
+ message: 'Choose your tech stack',
+ options: [
+ 'Node.js', 'React', 'Angular', 'Vue.js'
+ ],
+ returnFullResults: false,
+ required: true
+}
+```
+
+### Executing a Prompt
+
+To run a prompt and handle the response:
+
+```js
+const prompter = new Inquirerer();
+
+async function runPrompt() {
+ const responses = await prompter.prompt({}, [
+ {
+ type: 'text',
+ name: 'lastName',
+ message: 'Enter your last name',
+ required: true
+ },
+ {
+ type: 'checkbox',
+ name: 'devTools',
+ message: 'Select development tools:',
+ options: ['VS Code', 'Sublime', 'Atom'],
+ required: true
+ }
+ ]);
+
+ console.log(responses);
+}
+
+runPrompt();
+```
+
+
+## Developing
+
+
+When first cloning the repo:
+```
+yarn
+yarn build
+```
## Disclaimer
diff --git a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
index a10236a..92aca54 100644
--- a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
@@ -1,53 +1,37 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Inquirerer handles autocomplete selection with key events 1`] = `
-{
+"{
"result": {
- "autocompleteField": "firry third option",
- },
-}
+ "autocompleteField": "firry third option"
+ }
+}"
`;
exports[`Inquirerer handles autocomplete selection with key events 2`] = `
-[
- "c",
- "autocompleteField:
->
-",
- "[34m> first option[39m
-",
- " firry second option
-",
- " firry third option
-",
- "c",
- "autocompleteField:
->
-",
- " first option
-",
- "[34m> firry second option[39m
-",
- " firry third option
-",
- "c",
- "autocompleteField:
->
-",
- " first option
-",
- " firry second option
-",
- "[34m> firry third option[39m
-",
-]
+"[
+ "\\u001bc",
+ "autocompleteField:\\n> \\n",
+ "\\u001b[34m> first option\\u001b[39m\\n",
+ " firry second option\\n",
+ " firry third option\\n",
+ "\\u001bc",
+ "autocompleteField:\\n> \\n",
+ " first option\\n",
+ "\\u001b[34m> firry second option\\u001b[39m\\n",
+ " firry third option\\n",
+ "\\u001bc",
+ "autocompleteField:\\n> \\n",
+ " first option\\n",
+ " firry second option\\n",
+ "\\u001b[34m> firry third option\\u001b[39m\\n"
+]"
`;
exports[`Inquirerer handles autocomplete selection with key events 3`] = `
-[
- "[B",
- "[B",
- "
-",
-]
+"[
+ "\\u001b[B",
+ "\\u001b[B",
+ "\\r"
+]"
`;
diff --git a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
deleted file mode 100644
index 3361438..0000000
--- a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
+++ /dev/null
@@ -1,52 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Inquirerer checkbox 1`] = `
-{
- "checkbox": [
- {
- "name": "b",
- "value": true,
- },
- {
- "name": "c",
- "value": true,
- },
- ],
-}
-`;
-
-exports[`Inquirerer checkbox w/options 1`] = `
-{
- "checkbox": [
- {
- "name": "a",
- "value": false,
- },
- {
- "name": "b",
- "value": true,
- },
- {
- "name": "c",
- "value": true,
- },
- ],
-}
-`;
-
-exports[`Inquirerer handles multiple questions 1`] = `
-[
- "c",
- "c",
-]
-`;
-
-exports[`Inquirerer handles multiple questions 2`] = `[]`;
-
-exports[`Inquirerer prompts user and correctly processes delayed input 1`] = `
-[
- "c",
-]
-`;
-
-exports[`Inquirerer prompts user and correctly processes delayed input 2`] = `[]`;
diff --git a/packages/inquirerer/__tests__/autocomplete.test.ts b/packages/inquirerer/__tests__/autocomplete.test.ts
index 5e77bca..dfc4e7a 100644
--- a/packages/inquirerer/__tests__/autocomplete.test.ts
+++ b/packages/inquirerer/__tests__/autocomplete.test.ts
@@ -1,7 +1,7 @@
import readline from 'readline';
import { Readable, Writable, Transform } from 'stream';
-
+import stripAnsi from 'strip-ansi';
import { Inquirerer } from '../src';
import { Question } from '../src/question';
@@ -11,6 +11,8 @@ function sleep(ms: number): Promise {
return new Promise(resolve => setTimeout(resolve, ms));
}
+const snap = (str: any) => expect(stripAnsi(JSON.stringify(str, null, 2))).toMatchSnapshot();
+
describe('Inquirerer', () => {
let mockWrite: jest.Mock;
let mockInput: Readable;
@@ -118,9 +120,9 @@ describe('Inquirerer', () => {
// Expected to select the second option
// expect(result).toEqual({ autocompleteField: 'second option' });
- expect({result}).toMatchSnapshot();
- expect(writeResults).toMatchSnapshot();
- expect(transformResults).toMatchSnapshot();
+ snap({result});
+ snap(writeResults);
+ snap(transformResults);
});
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
index 7c9feba..6304bad 100644
--- a/packages/inquirerer/__tests__/prompt.test.ts
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -1,7 +1,7 @@
import readline from 'readline';
import { Readable, Writable, Transform } from 'stream';
-
+import stripAnsi from 'strip-ansi';
import { Inquirerer } from '../src';
import { Question } from '../src/question';
@@ -11,6 +11,8 @@ function sleep(ms: number): Promise {
return new Promise(resolve => setTimeout(resolve, ms));
}
+const snap = (str: any) => expect(stripAnsi(JSON.stringify(str, null, 2)));
+
describe('Inquirerer', () => {
let mockWrite: jest.Mock;
let mockInput: Readable;
@@ -113,8 +115,8 @@ describe('Inquirerer', () => {
expect(result).toEqual(expectedResult);
// expect(mockWrite).toHaveBeenCalledWith(expect.stringContaining('username:\n> '));
- expect(writeResults).toMatchSnapshot();
- expect(transformResults).toMatchSnapshot();
+ snap(writeResults);
+ snap(transformResults);
});
it('handles multiple questions', async () => {
@@ -134,8 +136,8 @@ describe('Inquirerer', () => {
firstQuestion: 'first question answer',
secondQuestion: 'second question answer'
});
- expect(writeResults).toMatchSnapshot();
- expect(transformResults).toMatchSnapshot();
+ snap(writeResults);
+ snap(transformResults);
});
it('handles combined key events and readline inputs', async () => {
@@ -184,7 +186,7 @@ describe('Inquirerer', () => {
const result = await prompter.prompt(initialParams, questions);
- expect(result).toMatchSnapshot();
+ snap(result);
});
it('checkbox w/options', async () => {
@@ -212,7 +214,7 @@ describe('Inquirerer', () => {
const result = await prompter.prompt(initialParams, questions);
- expect(result).toMatchSnapshot();
+ snap(result);
});
it('handles readline inputs', async () => {
From 27935b66e46e113e6acf40163f4d3502ffe9ae06 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:13:04 -0700
Subject: [PATCH 026/124] strip ansi for CI
---
.../__snapshots__/autocomplete.test.ts.snap | 68 ++++++++++++-------
.../__snapshots__/prompt.test.ts.snap | 52 ++++++++++++++
.../inquirerer/__tests__/autocomplete.test.ts | 6 +-
packages/inquirerer/__tests__/prompt.test.ts | 6 +-
4 files changed, 100 insertions(+), 32 deletions(-)
create mode 100644 packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
diff --git a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
index 92aca54..2cb83c2 100644
--- a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
@@ -1,37 +1,53 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Inquirerer handles autocomplete selection with key events 1`] = `
-"{
+{
"result": {
- "autocompleteField": "firry third option"
- }
-}"
+ "autocompleteField": "firry third option",
+ },
+}
`;
exports[`Inquirerer handles autocomplete selection with key events 2`] = `
-"[
- "\\u001bc",
- "autocompleteField:\\n> \\n",
- "\\u001b[34m> first option\\u001b[39m\\n",
- " firry second option\\n",
- " firry third option\\n",
- "\\u001bc",
- "autocompleteField:\\n> \\n",
- " first option\\n",
- "\\u001b[34m> firry second option\\u001b[39m\\n",
- " firry third option\\n",
- "\\u001bc",
- "autocompleteField:\\n> \\n",
- " first option\\n",
- " firry second option\\n",
- "\\u001b[34m> firry third option\\u001b[39m\\n"
-]"
+[
+ "",
+ "autocompleteField:
+>
+",
+ "> first option
+",
+ " firry second option
+",
+ " firry third option
+",
+ "",
+ "autocompleteField:
+>
+",
+ " first option
+",
+ "> firry second option
+",
+ " firry third option
+",
+ "",
+ "autocompleteField:
+>
+",
+ " first option
+",
+ " firry second option
+",
+ "> firry third option
+",
+]
`;
exports[`Inquirerer handles autocomplete selection with key events 3`] = `
-"[
- "\\u001b[B",
- "\\u001b[B",
- "\\r"
-]"
+[
+ "",
+ "",
+ "
+",
+]
`;
diff --git a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
new file mode 100644
index 0000000..c632e50
--- /dev/null
+++ b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
@@ -0,0 +1,52 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Inquirerer checkbox 1`] = `
+{
+ "checkbox": [
+ {
+ "name": "b",
+ "value": true,
+ },
+ {
+ "name": "c",
+ "value": true,
+ },
+ ],
+}
+`;
+
+exports[`Inquirerer checkbox w/options 1`] = `
+{
+ "checkbox": [
+ {
+ "name": "a",
+ "value": false,
+ },
+ {
+ "name": "b",
+ "value": true,
+ },
+ {
+ "name": "c",
+ "value": true,
+ },
+ ],
+}
+`;
+
+exports[`Inquirerer handles multiple questions 1`] = `
+[
+ "",
+ "",
+]
+`;
+
+exports[`Inquirerer handles multiple questions 2`] = `[]`;
+
+exports[`Inquirerer prompts user and correctly processes delayed input 1`] = `
+[
+ "",
+]
+`;
+
+exports[`Inquirerer prompts user and correctly processes delayed input 2`] = `[]`;
diff --git a/packages/inquirerer/__tests__/autocomplete.test.ts b/packages/inquirerer/__tests__/autocomplete.test.ts
index dfc4e7a..1fe6c8c 100644
--- a/packages/inquirerer/__tests__/autocomplete.test.ts
+++ b/packages/inquirerer/__tests__/autocomplete.test.ts
@@ -11,7 +11,7 @@ function sleep(ms: number): Promise {
return new Promise(resolve => setTimeout(resolve, ms));
}
-const snap = (str: any) => expect(stripAnsi(JSON.stringify(str, null, 2))).toMatchSnapshot();
+const snap = (str: any) => expect(str).toMatchSnapshot();
describe('Inquirerer', () => {
let mockWrite: jest.Mock;
@@ -75,7 +75,7 @@ describe('Inquirerer', () => {
mockOutput = new Writable({
write: (chunk, encoding, callback) => {
const str = chunk.toString();
- writeResults.push(str);
+ writeResults.push(stripAnsi(str));
mockWrite(str);
callback();
}
@@ -85,7 +85,7 @@ describe('Inquirerer', () => {
transformStream = new Transform({
transform(chunk, encoding, callback) {
const data = chunk.toString();
- transformResults.push(data);
+ transformResults.push(stripAnsi(data));
this.push(chunk); // Pass the data through
callback();
}
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
index 6304bad..a677d03 100644
--- a/packages/inquirerer/__tests__/prompt.test.ts
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -11,7 +11,7 @@ function sleep(ms: number): Promise {
return new Promise(resolve => setTimeout(resolve, ms));
}
-const snap = (str: any) => expect(stripAnsi(JSON.stringify(str, null, 2)));
+const snap = (str: any) => expect(str).toMatchSnapshot();
describe('Inquirerer', () => {
let mockWrite: jest.Mock;
@@ -75,7 +75,7 @@ describe('Inquirerer', () => {
mockOutput = new Writable({
write: (chunk, encoding, callback) => {
const str = chunk.toString();
- writeResults.push(str);
+ writeResults.push(stripAnsi(str));
mockWrite(str);
callback();
}
@@ -85,7 +85,7 @@ describe('Inquirerer', () => {
transformStream = new Transform({
transform(chunk, encoding, callback) {
const data = chunk.toString();
- transformResults.push(data);
+ transformResults.push(stripAnsi(data));
this.push(chunk); // Pass the data through
callback();
}
From 022621ced804acb029b6f4278308229aa788163d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:15:03 -0700
Subject: [PATCH 027/124] inquirerer
---
packages/inquirerer/package.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index fbaebcf..e6e2033 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
- "name": "@pyramation/inquirerer",
- "version": "0.0.2",
+ "name": "inquirerer",
+ "version": "0.2.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 4a28bd1dcf933ab34261c51b511ee09ec4c94f5d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:15:17 -0700
Subject: [PATCH 028/124] chore(release): publish
- inquirerer@0.3.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 6 ++----
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index edc80da..deb787e 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# 0.3.0 (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## 0.0.2 (2024-04-21)
**Note:** Version bump only for package @pyramation/inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index e6e2033..a9b5aaa 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.2.0",
+ "version": "0.3.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
@@ -34,7 +34,5 @@
"js-yaml": "^4.1.0",
"minimist": "^1.2.8"
},
- "keywords": [],
- "devDependencies": {
- }
+ "keywords": []
}
From f8dab7dece3b86517901d552b6668bc9e88ea398 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:16:13 -0700
Subject: [PATCH 029/124] type
---
packages/inquirerer/src/package.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/inquirerer/src/package.ts b/packages/inquirerer/src/package.ts
index 6a22899..74d39ab 100644
--- a/packages/inquirerer/src/package.ts
+++ b/packages/inquirerer/src/package.ts
@@ -2,7 +2,7 @@ import { existsSync,readFileSync } from "fs";
import { dirname,join } from "path";
// need to search due to the dist/ folder and src/, etc.
-function findPackageJson(currentDir: string) {
+function findPackageJson(currentDir: string): string {
const filePath = join(currentDir, 'package.json');
// Check if package.json exists in the current directory
@@ -22,7 +22,7 @@ function findPackageJson(currentDir: string) {
return findPackageJson(parentDir);
}
-export function readAndParsePackageJson() {
+export function readAndParsePackageJson(): any {
// Start searching from the current directory
const pkgPath = findPackageJson(__dirname);
From e0e0688781db858a04735ff2c84f2ae315f72ff4 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:21:36 -0700
Subject: [PATCH 030/124] pkg
---
packages/inquirerer/src/index.ts | 3 ++-
packages/inquirerer/src/last-text.txt | 13 -------------
packages/inquirerer/src/question/classes.ts | 1 -
3 files changed, 2 insertions(+), 15 deletions(-)
delete mode 100644 packages/inquirerer/src/last-text.txt
delete mode 100644 packages/inquirerer/src/question/classes.ts
diff --git a/packages/inquirerer/src/index.ts b/packages/inquirerer/src/index.ts
index 44e152d..c7f1f9c 100644
--- a/packages/inquirerer/src/index.ts
+++ b/packages/inquirerer/src/index.ts
@@ -1 +1,2 @@
-export * from './prompt';
\ No newline at end of file
+export * from './prompt';
+export * from './question';
\ No newline at end of file
diff --git a/packages/inquirerer/src/last-text.txt b/packages/inquirerer/src/last-text.txt
deleted file mode 100644
index 6d39ab0..0000000
--- a/packages/inquirerer/src/last-text.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "question": {
- "type": "text",
- "name": "last",
- "required": true,
- "message": "Enter your last name"
- },
- "obj": {
- "fruitSearch": "Apricot",
- "first": "adsf",
- "last": "asdf"
- }
-}
\ No newline at end of file
diff --git a/packages/inquirerer/src/question/classes.ts b/packages/inquirerer/src/question/classes.ts
deleted file mode 100644
index ab0c014..0000000
--- a/packages/inquirerer/src/question/classes.ts
+++ /dev/null
@@ -1 +0,0 @@
-//
\ No newline at end of file
From a8472a9c3d0b5b68dcf647bf68b76e39c4a0c856 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:21:44 -0700
Subject: [PATCH 031/124] chore(release): publish
- inquirerer@0.4.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index deb787e..3eaae44 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.4.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.3.0...inquirerer@0.4.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# 0.3.0 (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index a9b5aaa..e45e5bd 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.3.0",
+ "version": "0.4.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From e6fe13f9a2ba5aa1a7061f74bbc2d37e6d23ad4b Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:53:38 -0700
Subject: [PATCH 032/124] commander
---
packages/inquirerer/src/commander.ts | 68 ++++++++++++++++++++++++++++
packages/inquirerer/src/index.ts | 1 +
packages/inquirerer/src/utils.ts | 8 +++-
3 files changed, 76 insertions(+), 1 deletion(-)
create mode 100644 packages/inquirerer/src/commander.ts
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
new file mode 100644
index 0000000..b10d0c7
--- /dev/null
+++ b/packages/inquirerer/src/commander.ts
@@ -0,0 +1,68 @@
+import deepmerge from 'deepmerge';
+import minimist, { Opts, ParsedArgs } from 'minimist';
+import { Readable,Writable } from 'stream';
+
+import { Inquirerer } from './prompt';
+import { getVersion } from './utils';
+
+// Define the type for the command handler function
+export type CommandHandler = (argv: ParsedArgs, prompter: Inquirerer, options: CLIOptions) => void;
+
+export interface CLIOptions {
+ noTty: boolean;
+ input: Readable;
+ output: Writable;
+ minimistOpts: Opts;
+ version: string;
+}
+
+export const defaultCLIOptions: CLIOptions = {
+ version: `inquirerer@${getVersion()}`,
+ noTty: false,
+ input: process.stdin,
+ output: process.stdout,
+ minimistOpts: {
+ alias: {
+ v: 'version'
+ }
+ }
+};
+
+export class CLI {
+ private argv: ParsedArgs;
+ private prompter: Inquirerer;
+ private commandHandler: CommandHandler;
+ private options: CLIOptions;
+
+ constructor(
+ commandHandler: CommandHandler,
+ options: Partial
+ ) {
+ const { input, output, ...optionsWithoutIO } = options;
+ const { input: defaultInput, output: defaultOutput, ...defaultOptionsWithoutIO } = defaultCLIOptions;
+ const mergedOptions: Partial = deepmerge(defaultOptionsWithoutIO, optionsWithoutIO);
+ mergedOptions.input = input || defaultInput;
+ mergedOptions.output = output || defaultOutput;
+ this.options = mergedOptions as CLIOptions;
+
+ this.argv = minimist(process.argv.slice(2), this.options.minimistOpts);
+ this.prompter = new Inquirerer();
+ this.commandHandler = commandHandler;
+ }
+
+ public run(): void {
+ if (!('tty' in this.argv)) {
+ this.argv.tty = true;
+ }
+
+ if (this.argv.version) {
+ console.log(this.options.version);
+ process.exit(0);
+ }
+
+ this.commandHandler(this.argv, this.prompter, this.options);
+ this.prompter.close();
+ }
+}
+
+export default CLI;
diff --git a/packages/inquirerer/src/index.ts b/packages/inquirerer/src/index.ts
index c7f1f9c..ef58b66 100644
--- a/packages/inquirerer/src/index.ts
+++ b/packages/inquirerer/src/index.ts
@@ -1,2 +1,3 @@
+export * from './commander';
export * from './prompt';
export * from './question';
\ No newline at end of file
diff --git a/packages/inquirerer/src/utils.ts b/packages/inquirerer/src/utils.ts
index 0c5f44e..7fe894f 100644
--- a/packages/inquirerer/src/utils.ts
+++ b/packages/inquirerer/src/utils.ts
@@ -3,8 +3,14 @@ import chalk from 'chalk';
import { readAndParsePackageJson } from "./package";
// Function to display the version information
-export function displayVersion() {
+export function displayVersion(): any {
const pkg = readAndParsePackageJson();
console.log(chalk.green(`Name: ${pkg.name}`));
console.log(chalk.blue(`Version: ${pkg.version}`));
}
+
+
+export function getVersion(): string {
+ const pkg = readAndParsePackageJson();
+ return pkg.version;
+}
From c439f88418bb4c4cbd048df4c214ca6cab6dafa0 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Sun, 21 Apr 2024 23:53:46 -0700
Subject: [PATCH 033/124] chore(release): publish
- inquirerer@0.5.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 3eaae44..b8380b8 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.5.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.4.0...inquirerer@0.5.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.4.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.3.0...inquirerer@0.4.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index e45e5bd..5a5a509 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.4.0",
+ "version": "0.5.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 17439b7fbfc1a3d4565022bc6508b47cbefd84dd Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:12:32 -0700
Subject: [PATCH 034/124] commander and defaults
---
packages/inquirerer/src/commander.ts | 13 ++++++++-----
packages/inquirerer/src/prompt.ts | 4 ++++
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index b10d0c7..5365922 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -36,7 +36,8 @@ export class CLI {
constructor(
commandHandler: CommandHandler,
- options: Partial
+ options: Partial,
+ argv?: any
) {
const { input, output, ...optionsWithoutIO } = options;
const { input: defaultInput, output: defaultOutput, ...defaultOptionsWithoutIO } = defaultCLIOptions;
@@ -45,12 +46,13 @@ export class CLI {
mergedOptions.output = output || defaultOutput;
this.options = mergedOptions as CLIOptions;
- this.argv = minimist(process.argv.slice(2), this.options.minimistOpts);
- this.prompter = new Inquirerer();
+ this.argv = argv ? argv : minimist(process.argv.slice(2), this.options.minimistOpts);
+ this.prompter = new Inquirerer(this.options.noTty, this.options.input, this.options.output);
this.commandHandler = commandHandler;
+
}
- public run(): void {
+ public async run(): Promise {
if (!('tty' in this.argv)) {
this.argv.tty = true;
}
@@ -60,8 +62,9 @@ export class CLI {
process.exit(0);
}
- this.commandHandler(this.argv, this.prompter, this.options);
+ const args = await this.commandHandler(this.argv, this.prompter, this.options);
this.prompter.close();
+ return args;
}
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 3e9308d..f9b5f87 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -125,6 +125,10 @@ export class Inquirerer {
numTries++;
obj[question.name] = undefined;
continue; // Stay on the same question
+ } else {
+ if ('default' in question) {
+ obj[question.name] = question.default;
+ }
}
}
index++; // Move to the next question
From 26c6d34ee85e94b7081d00aefee08ece5e1af144 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:12:38 -0700
Subject: [PATCH 035/124] chore(release): publish
- inquirerer@0.6.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index b8380b8..3b7a113 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.6.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.5.0...inquirerer@0.6.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.5.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.4.0...inquirerer@0.5.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 5a5a509..a1354c6 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.5.0",
+ "version": "0.6.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 255a380402a7a3bc0d578cf4b0e36a38511f687f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:46:38 -0700
Subject: [PATCH 036/124] useDefaults
---
.../inquirerer/__tests__/autocomplete.test.ts | 6 +++-
packages/inquirerer/__tests__/prompt.test.ts | 36 +++++++++++++++----
packages/inquirerer/src/commander.ts | 6 +++-
packages/inquirerer/src/prompt.ts | 30 +++++++++++++---
4 files changed, 65 insertions(+), 13 deletions(-)
diff --git a/packages/inquirerer/__tests__/autocomplete.test.ts b/packages/inquirerer/__tests__/autocomplete.test.ts
index 1fe6c8c..5b68a54 100644
--- a/packages/inquirerer/__tests__/autocomplete.test.ts
+++ b/packages/inquirerer/__tests__/autocomplete.test.ts
@@ -103,7 +103,11 @@ describe('Inquirerer', () => {
});
it('handles autocomplete selection with key events', async () => {
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [{
name: 'autocompleteField',
type: 'autocomplete',
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
index a677d03..0c2580f 100644
--- a/packages/inquirerer/__tests__/prompt.test.ts
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -105,7 +105,11 @@ describe('Inquirerer', () => {
it('prompts user and correctly processes delayed input', async () => {
enqueueInputResponse({ type: 'read', value: 'user input' });
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [{ name: 'username', type: 'text' }];
const initialParams = {};
@@ -123,7 +127,11 @@ describe('Inquirerer', () => {
enqueueInputResponse({ type: 'read', value: 'first question answer' });
enqueueInputResponse({ type: 'read', value: 'second question answer' });
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [
{ name: 'firstQuestion', type: 'text' },
{ name: 'secondQuestion', type: 'text' }
@@ -142,7 +150,11 @@ describe('Inquirerer', () => {
it('handles combined key events and readline inputs', async () => {
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [
{ name: 'firstQuestion', type: 'text' },
{ name: 'secondQuestion', type: 'text' }
@@ -166,7 +178,11 @@ describe('Inquirerer', () => {
it('checkbox', async () => {
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [
{
name: 'checkbox', type: 'checkbox', options: [
@@ -191,7 +207,11 @@ describe('Inquirerer', () => {
it('checkbox w/options', async () => {
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [
{
name: 'checkbox',
@@ -219,7 +239,11 @@ describe('Inquirerer', () => {
it('handles readline inputs', async () => {
- const prompter = new Inquirerer(false, mockInput, mockOutput);
+ const prompter = new Inquirerer({
+ input: mockInput,
+ output: mockOutput,
+ noTty: false
+ });
const questions: Question[] = [
{ name: 'firstQuestion', type: 'text' },
{ name: 'secondQuestion', type: 'text' },
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index 5365922..e0c51cc 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -47,7 +47,11 @@ export class CLI {
this.options = mergedOptions as CLIOptions;
this.argv = argv ? argv : minimist(process.argv.slice(2), this.options.minimistOpts);
- this.prompter = new Inquirerer(this.options.noTty, this.options.input, this.options.output);
+ this.prompter = new Inquirerer({
+ noTty: this.options.noTty,
+ input: this.options.input,
+ output: this.options.output
+ });
this.commandHandler = commandHandler;
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index f9b5f87..3bd394d 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -1,10 +1,9 @@
import chalk from 'chalk';
import readline from 'readline';
-import { Writable, Readable } from 'stream';
+import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, Question, TextQuestion, Value } from './question';
-import { writeFileSync } from 'fs';
const requiredMessage = (question: Question) => chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
interface PromptContext {
@@ -41,17 +40,31 @@ function generatePromptMessage(question: Question, ctx: PromptContext): string {
return promptMessage;
}
+
+export interface InquirererOptions {
+ noTty?: boolean;
+ input?: Readable;
+ output?: Writable;
+ useDefaults?: boolean;
+}
export class Inquirerer {
private rl: readline.Interface | null;
private keypress: TerminalKeypress;
private noTty: boolean;
private output: Writable;
+ private useDefaults: boolean;
constructor(
- noTty: boolean = false,
- input: Readable = process.stdin,
- output: Writable = process.stdout,
+ options?: InquirererOptions
) {
+ const {
+ noTty = false,
+ input = process.stdin,
+ output = process.stdout,
+ useDefaults = false
+ } = options ?? {}
+
+ this.useDefaults = useDefaults;
this.noTty = noTty;
this.output = output;
@@ -100,6 +113,13 @@ export class Inquirerer {
let numTries = 0;
while (index < questions.length) {
const question = questions[index];
+
+ if ('default' in question && this.useDefaults) {
+ obj[question.name] = question.default;
+ continue;
+ }
+
+
const ctx: PromptContext = {
numTries
}
From 49eaa8d76816d598381eaed418c9a8a276656a52 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:46:48 -0700
Subject: [PATCH 037/124] chore(release): publish
- inquirerer@0.7.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 3b7a113..1e3780c 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.7.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.6.0...inquirerer@0.7.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.6.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.5.0...inquirerer@0.6.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index a1354c6..6a3905d 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.6.0",
+ "version": "0.7.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 4187ac0f3e58e3de9c94e26c44d4852cbe255810 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:48:44 -0700
Subject: [PATCH 038/124] useDefault
---
packages/inquirerer/src/prompt.ts | 5 +++++
packages/inquirerer/src/question/types.ts | 1 +
2 files changed, 6 insertions(+)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 3bd394d..7737ede 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -118,6 +118,11 @@ export class Inquirerer {
obj[question.name] = question.default;
continue;
}
+
+ if ('default' in question && question.useDefault) {
+ obj[question.name] = question.default;
+ continue;
+ }
const ctx: PromptContext = {
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index eca0882..d7270d3 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -7,6 +7,7 @@ export interface BaseQuestion {
name: string;
type: string;
default?: any;
+ useDefault?: boolean;
required?: boolean;
message?: string;
}
From 085d11be60905cbc3ce81cfb5e95aedc0cf371f7 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:48:53 -0700
Subject: [PATCH 039/124] chore(release): publish
- inquirerer@0.8.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 1e3780c..d46a655 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.8.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.7.0...inquirerer@0.8.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.7.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.6.0...inquirerer@0.7.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 6a3905d..d1a57c7 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.7.0",
+ "version": "0.8.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 19c0c92eb62431a708e1ab11ba210aae8fce66c4 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:49:36 -0700
Subject: [PATCH 040/124] defaults
---
packages/inquirerer/src/prompt.ts | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 7737ede..9d20292 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -114,16 +114,10 @@ export class Inquirerer {
while (index < questions.length) {
const question = questions[index];
- if ('default' in question && this.useDefaults) {
+ if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
continue;
}
-
- if ('default' in question && question.useDefault) {
- obj[question.name] = question.default;
- continue;
- }
-
const ctx: PromptContext = {
numTries
From 622bb3bad2ec70cced180002d078a684a7cad661 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:52:34 -0700
Subject: [PATCH 041/124] index
---
packages/inquirerer/src/prompt.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 9d20292..cf917c2 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -116,6 +116,7 @@ export class Inquirerer {
if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
+ index++; // Move to the next question
continue;
}
From 3b4b7a1d3939599b6c843a6a8cc2ffa2c2ba9fc7 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 01:52:40 -0700
Subject: [PATCH 042/124] chore(release): publish
- inquirerer@0.8.1
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index d46a655..33140bd 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.8.1](https://github.com/pyramation/inquirerer/compare/inquirerer@0.8.0...inquirerer@0.8.1) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.8.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.7.0...inquirerer@0.8.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index d1a57c7..2c620fc 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.8.0",
+ "version": "0.8.1",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From bff3c4d8a43fa68e580e7e640ef244d3000ccef7 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:21:02 -0700
Subject: [PATCH 043/124] prompts and OptionValue[]
---
.../__snapshots__/autocomplete.test.ts.snap | 12 +-
packages/inquirerer/dev/index.ts | 119 ++++++++++++---
packages/inquirerer/src/prompt.ts | 142 ++++++++++++------
packages/inquirerer/src/question/types.ts | 8 +-
4 files changed, 212 insertions(+), 69 deletions(-)
diff --git a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
index 2cb83c2..27e8f05 100644
--- a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
@@ -11,8 +11,8 @@ exports[`Inquirerer handles autocomplete selection with key events 1`] = `
exports[`Inquirerer handles autocomplete selection with key events 2`] = `
[
"",
- "autocompleteField:
->
+ "[--autocompleteField]:
+$
",
"> first option
",
@@ -21,8 +21,8 @@ exports[`Inquirerer handles autocomplete selection with key events 2`] = `
" firry third option
",
"",
- "autocompleteField:
->
+ "[--autocompleteField]:
+$
",
" first option
",
@@ -31,8 +31,8 @@ exports[`Inquirerer handles autocomplete selection with key events 2`] = `
" firry third option
",
"",
- "autocompleteField:
->
+ "[--autocompleteField]:
+$
",
" first option
",
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 75c51c5..6b37ff1 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -105,39 +105,122 @@ const main = async () => {
// console.log(args3);
const massive = await prompter.prompt({}, [
- question,
+ // question,
+ // {
+ // type: 'text',
+ // name: 'first',
+ // message: 'Enter your first name'
+ // },
+ // {
+ // type: 'text',
+ // name: 'last',
+ // required: true,
+ // message: 'Enter your last name'
+ // },
+ // {
+ // ...question,
+ // name: 'autocomp',
+ // type: 'autocomplete',
+ // message: 'Enter your completion',
+ // },
+ // {
+ // ...question,
+ // name: 'this_is_NOT_required',
+ // type: 'checkbox',
+ // required: true
+ // },
+ // {
+ // ...question,
+ // name: 'this_is_required',
+ // type: 'checkbox',
+ // required: true
+ // },
+ // {
+ // name: 'searcher',
+ // type: 'autocomplete',
+ // options: [
+ // 'Apple', 'Apricot', 'Avocado',
+ // 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ // 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ // 'Date', 'Durian',
+ // 'Elderberry',
+ // 'Fig',
+ // 'Grape', 'Grapefruit', 'Guava',
+ // 'Honeydew',
+ // 'Kiwi', 'Kumquat',
+ // 'Lemon', 'Lime', 'Lychee',
+ // 'Mango', 'Melon', 'Mulberry',
+ // 'Nectarine',
+ // 'Orange',
+ // 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ // 'Quince',
+ // 'Raspberry', 'Redcurrant',
+ // 'Strawberry', 'Starfruit',
+ // 'Tangerine',
+ // 'Ugli Fruit',
+ // 'Vanilla',
+ // 'Watermelon',
+ // 'Xigua (Chinese Watermelon)',
+ // 'Yellow Plum',
+ // 'Zucchini'
+ // ]
+ // },
{
- type: 'text',
- name: 'first',
- message: 'Enter your first name'
+ name: 'text',
+ type: 'text'
},
{
- type: 'text',
- name: 'last',
- required: true,
- message: 'Enter your last name'
+ name: 'confirm',
+ type: 'confirm'
},
{
- ...question,
- name: 'autocomp',
+ name: 'autocomplete',
type: 'autocomplete',
- message: 'Enter your completion',
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
},
{
- ...question,
- name: 'this_is_NOT_required',
+ name: 'checkbox',
type: 'checkbox',
- required: true
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
},
{
- ...question,
- name: 'this_is_required',
+ name: 'autocomplete2',
+ type: 'autocomplete',
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
+ },
+ {
+ name: 'checkbox2',
type: 'checkbox',
- required: true
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
}
+
])
- console.log({massive})
+ console.log(JSON.stringify(massive, null, 2))
prompter.close();
};
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index cf917c2..c106e77 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,7 +3,7 @@ import readline from 'readline';
import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
-import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, Question, TextQuestion, Value } from './question';
+import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue,Question, TextQuestion, Value } from './question';
const requiredMessage = (question: Question) => chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
interface PromptContext {
@@ -12,7 +12,8 @@ interface PromptContext {
function generatePromptMessage(question: Question, ctx: PromptContext): string {
- let promptMessage = question.message ? `${question.message}\n> ` : `${question.name}:\n> `;
+ let promptMessage = question.message ? question.message : question.name;
+ promptMessage = `${chalk.white('[')}${chalk.green('--'+promptMessage)}${chalk.white(']:')}\n`;
if (ctx.numTries > 0 && question.required) {
promptMessage = requiredMessage(question) + promptMessage;
@@ -46,32 +47,44 @@ export interface InquirererOptions {
input?: Readable;
output?: Writable;
useDefaults?: boolean;
+ globalMaxLines?: number;
}
export class Inquirerer {
private rl: readline.Interface | null;
private keypress: TerminalKeypress;
private noTty: boolean;
private output: Writable;
+ private input: Readable;
private useDefaults: boolean;
+ private globalMaxLines: number;
constructor(
options?: InquirererOptions
) {
- const {
+ const {
noTty = false,
input = process.stdin,
output = process.stdout,
- useDefaults = false
+ useDefaults = false,
+ globalMaxLines = 10
} = options ?? {}
this.useDefaults = useDefaults;
this.noTty = noTty;
this.output = output;
+ this.input = input;
+ this.globalMaxLines = globalMaxLines;
if (!noTty) {
this.rl = readline.createInterface({
input,
- output
+ // dissallow readline from prompting user, since we'll handle it!
+ output
+ // : new Writable({
+ // write(chunk, encoding, callback) {
+ // callback(); // Do nothing with the data
+ // }
+ // })
});
this.keypress = new TerminalKeypress(noTty, input);
} else {
@@ -83,15 +96,28 @@ export class Inquirerer {
// same as console.clear()
this.output.write('\x1Bc'); // This is the escape sequence to clear the terminal screen.
}
-
+
write(message: string) {
this.output.write(message);
}
-
+
log(message: string) {
this.output.write(message + '\n');
}
+ getInput(input: string) {
+ return `${chalk.white.bold('$')} ${input}`;
+ }
+
+ getPrompt(question: Question, ctx: PromptContext, input: string) {
+ const promptMessage = generatePromptMessage(question, ctx);
+ return promptMessage + this.getInput(input);
+ }
+ displayPrompt(question: Question, ctx: PromptContext, input: string) {
+ const prompt = this.getPrompt(question, ctx, input);
+ this.log(prompt);
+ }
+
public async prompt(params: T, questions: Question[], usageText?: string): Promise {
const obj: any = { ...params };
@@ -162,9 +188,8 @@ export class Inquirerer {
if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
return new Promise((resolve) => {
- // Construct the prompt with the default option indicated
- const promptMessage = generatePromptMessage(question, ctx);
- this.rl.question(promptMessage, (answer) => {
+ this.clearScreen();
+ this.rl.question(this.getPrompt(question, ctx, ''), (answer) => {
const userInput = answer.trim().toLowerCase();
if (userInput === '') {
@@ -181,16 +206,14 @@ export class Inquirerer {
async text(question: TextQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? null; // Return default if non-interactive
- let userInput = '';
+ let input = '';
return new Promise((resolve) => {
- this.clearScreen(); // Clear the console at the beginning of each input session
- const promptMessage = generatePromptMessage(question, ctx);
-
- this.rl.question(promptMessage, (answer) => { // Include the prompt directly in the question method
- userInput = answer;
- if (userInput.trim() !== '') {
- resolve(userInput); // Return input if not empty
+ this.clearScreen();
+ this.rl.question(this.getPrompt(question, ctx, input), (answer) => { // Include the prompt directly in the question method
+ input = answer;
+ if (input.trim() !== '') {
+ resolve(input); // Return input if not empty
} else {
resolve(null); // Return null if empty and not required
}
@@ -198,35 +221,38 @@ export class Inquirerer {
});
}
- async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
+ async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
this.keypress.resume();
- const options = question.options || [];
+ const options = (question.options ?? []).map(option=>this.getOptionValue(option))
let input = ''; // Search input
let filteredOptions = options;
let selectedIndex = 0;
let startIndex = 0; // Start index for visible options
- const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
+ const maxLines = this.getMaxLines(question, options.length) // Use provided max or total options
const selections: boolean[] = new Array(options.length).fill(false);
const updateFilteredOptions = (): void => {
- filteredOptions = options.filter(option => option.toLowerCase().includes(input.toLowerCase()));
+ filteredOptions = options.filter(option => option.name.toLowerCase().includes(input.toLowerCase()));
};
const display = (): void => {
this.clearScreen();
- const promptMessage = generatePromptMessage(question, ctx);
- this.write(promptMessage);
- this.log(`${input}`);
+ this.displayPrompt(question, ctx, input);
const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
for (let i = startIndex; i < endIndex; i++) {
const option = filteredOptions[i];
const isSelected = selectedIndex === i;
const marker = isSelected ? '>' : ' ';
- const isChecked = selections[options.indexOf(option)] ? '◉' : '○'; // Use the original index in options
- const line = `${marker} ${isChecked} ${option}`;
- this.log(isSelected ? chalk.blue(line) : line);
+ const index = options.map(o=>o.name).indexOf(option.name);
+ if (index >= 0) {
+ const isChecked = selections[index] ? '◉' : '○'; // Use the original index in options
+ const line = `${marker} ${isChecked} ${option.name}`;
+ this.log(isSelected ? chalk.blue(line) : line);
+ } else {
+ this.log('No options'); // sometimes user searches and there are no options...
+ }
}
};
@@ -282,7 +308,7 @@ export class Inquirerer {
// Return all options with their selected status
options.forEach((option, index) => {
result.push({
- name: option,
+ name: option.name,
value: selections[index]
});
});
@@ -291,7 +317,7 @@ export class Inquirerer {
options.forEach((option, index) => {
if (selections[index]) {
result.push({
- name: option,
+ name: option.name,
value: selections[index]
});
}
@@ -301,29 +327,40 @@ export class Inquirerer {
});
});
}
- async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
+
+ private getOptionValue(option: string | OptionValue): OptionValue {
+ if (typeof option === 'string') {
+ return { name: option, value: option };
+ } else {
+ return { name: option.name, value: option.value };
+ }
+ }
+
+ async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
this.keypress.resume();
- const options = question.options || [];
+ const options = (question.options ?? []).map(option => this.getOptionValue(option));
+
let input = '';
let filteredOptions = options;
let selectedIndex = 0;
let startIndex = 0; // Start index for visible options
- const maxLines = question.maxDisplayLines || options.length; // Use provided max or total options
+ const maxLines = this.getMaxLines(question, options.length) // Use provided max or total options
const display = (): void => {
this.clearScreen();
- const promptMessage = generatePromptMessage(question, ctx);
- this.log(promptMessage);
+ this.displayPrompt(question, ctx, input);
// Determine the range of options to display
const endIndex = Math.min(startIndex + maxLines, filteredOptions.length);
for (let i = startIndex; i < endIndex; i++) {
const option = filteredOptions[i];
- if (i === selectedIndex) {
- this.log(chalk.blue('> ' + option)); // Highlight the selected option with chalk
+ if (!option) {
+ this.log('No options'); // sometimes user searches and there are no options...
+ } else if (i === selectedIndex) {
+ this.log(chalk.blue('> ' + option.name)); // Highlight the selected option with chalk
} else {
- this.log(' ' + option);
+ this.log(' ' + option.name);
}
}
};
@@ -379,20 +416,39 @@ export class Inquirerer {
display();
});
- return new Promise(resolve => {
+ return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
- resolve(filteredOptions[selectedIndex] || input);
+ resolve(filteredOptions[selectedIndex]?.value || input );
});
});
}
- filterOptions(options: string[], input: string): string[] {
+ filterOptions(options: OptionValue[], input: string): OptionValue[] {
return options
- .filter(option => option.toLowerCase().startsWith(input.toLowerCase()))
- .sort();
+ .filter(option => option.name.toLowerCase().startsWith(input.toLowerCase()))
+ .sort((a, b) => {
+ if (a.name < b.name) {
+ return -1; // b first
+ }
+ if (a.name > b.name) {
+ return 1; // a is first
+ }
+ return 0; // equal
+ });
}
+ getMaxLines(question: { maxDisplayLines?: number }, defaultLength: number): number {
+ if (question.maxDisplayLines) {
+ return question.maxDisplayLines;
+ }
+
+ // if (!this.noTty && (this.output as any).isTTY) {
+ // const rows = Math.round(((this.output as any).rows ?? 0) / 7);
+ // return Math.max(rows, defaultLength);
+ // }
+ return Math.min(this.globalMaxLines, defaultLength);
+ }
// Method to cleanly close the readline interface
public close() {
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index d7270d3..143be49 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -2,6 +2,10 @@ export interface Value {
name: string;
value: boolean;
}
+export interface OptionValue {
+ name: string;
+ value: any;
+}
export interface BaseQuestion {
name: string;
@@ -19,7 +23,7 @@ export interface BaseQuestion {
export interface AutocompleteQuestion extends BaseQuestion {
type: 'autocomplete';
- options: string[];
+ options: (string|OptionValue)[];
maxDisplayLines?: number;
returnFullResults?: boolean;
allowCustomOptions?: boolean;
@@ -27,7 +31,7 @@ export interface BaseQuestion {
export interface CheckboxQuestion extends BaseQuestion {
type: 'checkbox';
- options: string[];
+ options: (string|OptionValue)[];
maxDisplayLines?: number;
returnFullResults?: boolean;
default?: Value[];
From 6c687ab6a986a77725b0ada36bc21c18fed28842 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:21:27 -0700
Subject: [PATCH 044/124] chore(release): publish
- inquirerer@0.9.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 33140bd..266c019 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.9.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.8.1...inquirerer@0.9.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [0.8.1](https://github.com/pyramation/inquirerer/compare/inquirerer@0.8.0...inquirerer@0.8.1) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 2c620fc..0c0a2c4 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.8.1",
+ "version": "0.9.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 0a464663d1425ba2fe28ab7adc7bc51c7104a29f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:25:18 -0700
Subject: [PATCH 045/124] prompt
---
packages/inquirerer/src/prompt.ts | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index c106e77..c6fc12f 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -12,8 +12,13 @@ interface PromptContext {
function generatePromptMessage(question: Question, ctx: PromptContext): string {
- let promptMessage = question.message ? question.message : question.name;
- promptMessage = `${chalk.white('[')}${chalk.green('--'+promptMessage)}${chalk.white(']:')}\n`;
+ let promptMessage: string = '';
+ if (question.message) {
+ promptMessage = chalk.whiteBright(question.message) + '\n';
+ promptMessage += `${chalk.white('[')}${chalk.green('--'+question.name)}${chalk.white(']:')}\n`;
+ } else {
+ promptMessage = `${chalk.white('[')}${chalk.green('--'+question.name)}${chalk.white(']:')}\n`;
+ }
if (ctx.numTries > 0 && question.required) {
promptMessage = requiredMessage(question) + promptMessage;
From b95bf2e5c0dbabf5def8da9d1486faa097defd3e Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:25:23 -0700
Subject: [PATCH 046/124] chore(release): publish
- inquirerer@0.10.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 266c019..6042202 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.10.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.9.0...inquirerer@0.10.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.9.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.8.1...inquirerer@0.9.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 0c0a2c4..888c6a5 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.9.0",
+ "version": "0.10.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From b405197808f049c98fc78912d7cb6062aa026722 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:25:43 -0700
Subject: [PATCH 047/124] prompt
---
packages/inquirerer/src/prompt.ts | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index c6fc12f..74bc224 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -15,10 +15,8 @@ function generatePromptMessage(question: Question, ctx: PromptContext): string {
let promptMessage: string = '';
if (question.message) {
promptMessage = chalk.whiteBright(question.message) + '\n';
- promptMessage += `${chalk.white('[')}${chalk.green('--'+question.name)}${chalk.white(']:')}\n`;
- } else {
- promptMessage = `${chalk.white('[')}${chalk.green('--'+question.name)}${chalk.white(']:')}\n`;
}
+ promptMessage += `${chalk.white('[')}${chalk.green('--'+question.name)}${chalk.white(']:')}\n`;
if (ctx.numTries > 0 && question.required) {
promptMessage = requiredMessage(question) + promptMessage;
From 64d3b21c1b42c34b9adb33c379763ff69ab56ed4 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:51:43 -0700
Subject: [PATCH 048/124] reorder
---
packages/inquirerer/dev/index.ts | 6 +++---
packages/inquirerer/src/prompt.ts | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 6b37ff1..7afa958 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -2,7 +2,7 @@
import minimist from 'minimist';
import { Inquirerer } from "../src";
-import { Question } from '../src/question';
+import { AutocompleteQuestion, ConfirmQuestion, Question } from '../src/question';
import { displayVersion } from '../src/utils';
const argv = minimist(process.argv.slice(2), {
@@ -104,7 +104,8 @@ const main = async () => {
// console.log(args2);
// console.log(args3);
- const massive = await prompter.prompt({}, [
+
+ const massive = await prompter.prompt({}, [
// question,
// {
// type: 'text',
@@ -219,7 +220,6 @@ const main = async () => {
}
])
-
console.log(JSON.stringify(massive, null, 2))
prompter.close();
};
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 74bc224..3b99953 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,7 +3,7 @@ import readline from 'readline';
import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
-import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue,Question, TextQuestion, Value } from './question';
+import { AutocompleteQuestion, BaseQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue,Question, TextQuestion, Value } from './question';
const requiredMessage = (question: Question) => chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
interface PromptContext {
From 7acf30e0fe08c5844af7a0399ee4934145abfc20 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 03:51:55 -0700
Subject: [PATCH 049/124] chore(release): publish
- inquirerer@0.10.1
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 6042202..7a89a0d 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.10.1](https://github.com/pyramation/inquirerer/compare/inquirerer@0.10.0...inquirerer@0.10.1) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.10.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.9.0...inquirerer@0.10.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 888c6a5..d206fd1 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.10.0",
+ "version": "0.10.1",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From b1e14eb00f28a2ec94065a34ae8c0dc1a8c6ec4f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 04:28:24 -0700
Subject: [PATCH 050/124] fuzzy
---
packages/inquirerer/dev/index.ts | 6 +++---
packages/inquirerer/src/prompt.ts | 32 +++++++++++++++++++++++++------
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 7afa958..4fedf80 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -69,7 +69,7 @@ const main = async () => {
const question: Question = {
name: 'fruitSearch',
type: 'autocomplete',
- maxDisplayLines: 5,
+ maxDisplayLines: 15,
options: [
'Apple', 'Apricot', 'Avocado',
'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
@@ -98,11 +98,11 @@ const main = async () => {
]
};
- // const args3 = await prompter.autocomplete(question);
+ const args3 = await prompter.prompt({}, [question]);
// console.log(args);
// console.log(args2);
- // console.log(args3);
+ console.log(args3);
const massive = await prompter.prompt({}, [
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 3b99953..a661c59 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -237,7 +237,7 @@ export class Inquirerer {
const selections: boolean[] = new Array(options.length).fill(false);
const updateFilteredOptions = (): void => {
- filteredOptions = options.filter(option => option.name.toLowerCase().includes(input.toLowerCase()));
+ filteredOptions = this.filterOptions(options, input);
};
const display = (): void => {
@@ -427,20 +427,40 @@ export class Inquirerer {
});
}
+
filterOptions(options: OptionValue[], input: string): OptionValue[] {
+ input = input.toLowerCase(); // Normalize input for case-insensitive comparison
+
+ // Fuzzy matching: Check if all characters of the input can be found in the option name in order
+ const fuzzyMatch = (option: string, input: string) => {
+ const length = input.length;
+ let position = 0; // Position in the input string
+
+ // Iterate over each character in the option name
+ for (let i = 0; i < option.length; i++) {
+ if (option[i] === input[position]) {
+ position++; // Move to the next character in the input
+ if (position === length) { // Check if we've matched all characters
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
return options
- .filter(option => option.name.toLowerCase().startsWith(input.toLowerCase()))
+ .filter(option => fuzzyMatch(option.name.toLowerCase(), input))
.sort((a, b) => {
if (a.name < b.name) {
- return -1; // b first
+ return -1;
}
if (a.name > b.name) {
- return 1; // a is first
+ return 1;
}
- return 0; // equal
+ return 0;
});
}
-
+
getMaxLines(question: { maxDisplayLines?: number }, defaultLength: number): number {
if (question.maxDisplayLines) {
return question.maxDisplayLines;
From b99717ce3268eb9a2b14484976041c986629c36b Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 04:28:32 -0700
Subject: [PATCH 051/124] chore(release): publish
- inquirerer@0.11.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 7a89a0d..9b6ab3d 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.11.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.10.1...inquirerer@0.11.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [0.10.1](https://github.com/pyramation/inquirerer/compare/inquirerer@0.10.0...inquirerer@0.10.1) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index d206fd1..e214e33 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.10.1",
+ "version": "0.11.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 908300d1cd3443ff37ec44f1681edeed03ea35de Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 04:40:05 -0700
Subject: [PATCH 052/124] sanitize options
---
packages/inquirerer/src/prompt.ts | 38 ++++++++++++++++++-------------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index a661c59..1732704 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,7 +3,7 @@ import readline from 'readline';
import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
-import { AutocompleteQuestion, BaseQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue,Question, TextQuestion, Value } from './question';
+import { AutocompleteQuestion, BaseQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue, Question, TextQuestion, Value } from './question';
const requiredMessage = (question: Question) => chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
interface PromptContext {
@@ -16,7 +16,7 @@ function generatePromptMessage(question: Question, ctx: PromptContext): string {
if (question.message) {
promptMessage = chalk.whiteBright(question.message) + '\n';
}
- promptMessage += `${chalk.white('[')}${chalk.green('--'+question.name)}${chalk.white(']:')}\n`;
+ promptMessage += `${chalk.white('[')}${chalk.green('--' + question.name)}${chalk.white(']:')}\n`;
if (ctx.numTries > 0 && question.required) {
promptMessage = requiredMessage(question) + promptMessage;
@@ -82,7 +82,7 @@ export class Inquirerer {
this.rl = readline.createInterface({
input,
// dissallow readline from prompting user, since we'll handle it!
- output
+ output
// : new Writable({
// write(chunk, encoding, callback) {
// callback(); // Do nothing with the data
@@ -228,7 +228,7 @@ export class Inquirerer {
if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
this.keypress.resume();
- const options = (question.options ?? []).map(option=>this.getOptionValue(option))
+ const options = this.sanitizeOptions(question);
let input = ''; // Search input
let filteredOptions = options;
let selectedIndex = 0;
@@ -248,7 +248,7 @@ export class Inquirerer {
const option = filteredOptions[i];
const isSelected = selectedIndex === i;
const marker = isSelected ? '>' : ' ';
- const index = options.map(o=>o.name).indexOf(option.name);
+ const index = options.map(o => o.name).indexOf(option.name);
if (index >= 0) {
const isChecked = selections[index] ? '◉' : '○'; // Use the original index in options
const line = `${marker} ${isChecked} ${option.name}`;
@@ -331,19 +331,11 @@ export class Inquirerer {
});
}
- private getOptionValue(option: string | OptionValue): OptionValue {
- if (typeof option === 'string') {
- return { name: option, value: option };
- } else {
- return { name: option.name, value: option.value };
- }
- }
-
async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
this.keypress.resume();
- const options = (question.options ?? []).map(option => this.getOptionValue(option));
+ const options = this.sanitizeOptions(question);
let input = '';
let filteredOptions = options;
@@ -422,11 +414,25 @@ export class Inquirerer {
return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
- resolve(filteredOptions[selectedIndex]?.value || input );
+ resolve(filteredOptions[selectedIndex]?.value || input);
});
});
}
+ private getOptionValue(option: string | OptionValue): OptionValue {
+ if (typeof option === 'string') {
+ return { name: option, value: option };
+ } else if (typeof option === 'object' && 'name' in option) {
+ return { name: option.name, value: option.value };
+ } else {
+ return undefined;
+ }
+ }
+
+ private sanitizeOptions(question: AutocompleteQuestion | CheckboxQuestion): OptionValue[] {
+ const options = (question.options ?? []).map(option => this.getOptionValue(option));
+ return options.filter(Boolean);
+ }
filterOptions(options: OptionValue[], input: string): OptionValue[] {
input = input.toLowerCase(); // Normalize input for case-insensitive comparison
@@ -460,7 +466,7 @@ export class Inquirerer {
return 0;
});
}
-
+
getMaxLines(question: { maxDisplayLines?: number }, defaultLength: number): number {
if (question.maxDisplayLines) {
return question.maxDisplayLines;
From 181e8fae97cb71bee0678a110d0b81d06f618f02 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 04:40:24 -0700
Subject: [PATCH 053/124] chore(release): publish
- inquirerer@0.12.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 9b6ab3d..f7eb361 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.12.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.11.0...inquirerer@0.12.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.11.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.10.1...inquirerer@0.11.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index e214e33..7e4f440 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.11.0",
+ "version": "0.12.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 51784024b79a3055fe1fd2d0e19326f7b213e488 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 04:42:43 -0700
Subject: [PATCH 054/124] prompt
---
packages/inquirerer/src/prompt.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 1732704..a7bf814 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -422,7 +422,7 @@ export class Inquirerer {
private getOptionValue(option: string | OptionValue): OptionValue {
if (typeof option === 'string') {
return { name: option, value: option };
- } else if (typeof option === 'object' && 'name' in option) {
+ } else if (typeof option === 'object' && option && 'name' in option) {
return { name: option.name, value: option.value };
} else {
return undefined;
From 1f5c988736e090a582e5256001a83ee4a1f947d2 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 06:53:10 -0700
Subject: [PATCH 055/124] validations
---
packages/inquirerer/dev/index.ts | 55 ++++--
packages/inquirerer/src/prompt.ts | 205 ++++++++++++++++------
packages/inquirerer/src/question/types.ts | 9 +
3 files changed, 203 insertions(+), 66 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 4fedf80..157069e 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -66,6 +66,26 @@ const main = async () => {
// ]
// });
+ const regex: Question[] = [
+ {
+ name: 'email',
+ type: 'text',
+ message: 'Enter your email:',
+ pattern: '^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$',
+ required: true
+ },
+ {
+ name: 'website',
+ type: 'text',
+ message: 'Enter your website URL:',
+ pattern: '^(http|https)://[a-zA-Z0-9-\\.]+\\.[a-zA-Z]{2,5}(/[a-zA-Z0-9-._~:/?#[\\]@!$&\'()*+,;=]*)?$',
+ required: false
+ }
+ ];
+
+ const p = await prompter.prompt({}, regex);
+ console.log(p);
+
const question: Question = {
name: 'fruitSearch',
type: 'autocomplete',
@@ -106,18 +126,18 @@ const main = async () => {
const massive = await prompter.prompt({}, [
- // question,
- // {
- // type: 'text',
- // name: 'first',
- // message: 'Enter your first name'
- // },
- // {
- // type: 'text',
- // name: 'last',
- // required: true,
- // message: 'Enter your last name'
- // },
+ question,
+ {
+ type: 'text',
+ name: 'first',
+ message: 'Enter your first name'
+ },
+ {
+ type: 'text',
+ name: 'last',
+ required: true,
+ message: 'Enter your last name'
+ },
// {
// ...question,
// name: 'autocomp',
@@ -188,12 +208,13 @@ const main = async () => {
{
name: 'checkbox',
type: 'checkbox',
+ required: true,
options: [
- { name: 'Apple', value: 'Fruit01' },
- { name: 'Banana', value: 'Fruit02' },
- { name: 'Cherry', value: 'Fruit03' },
- { name: 'Grape', value: 'Fruit04' },
- { name: 'Mango', value: 'Fruit05' }
+ { name: 'RApple', value: 'Fruit01' },
+ { name: 'RBanana', value: 'Fruit02' },
+ { name: 'RCherry', value: 'Fruit03' },
+ { name: 'RGrape', value: 'Fruit04' },
+ { name: 'RMango', value: 'Fruit05' }
]
},
{
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index a7bf814..5cbedc7 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,11 +3,63 @@ import readline from 'readline';
import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
-import { AutocompleteQuestion, BaseQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue, Question, TextQuestion, Value } from './question';
+import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
-const requiredMessage = (question: Question) => chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
-interface PromptContext {
- numTries: number;
+const validationMessage = (question: Question, ctx: PromptContext): string => {
+ if (ctx.numTries === 0 || ctx.validation.success) {
+ return ''; // No message if first attempt or validation was successful
+ }
+
+ if (ctx.validation.reason) {
+ return chalk.red(`The field "${question.name}" is invalid: ${ctx.validation.reason}\n`);
+ }
+
+ switch (ctx.validation.type) {
+ case 'required':
+ return chalk.red(`The field "${question.name}" is required. Please provide a value.\n`);
+ case 'pattern':
+ return chalk.red(`The field "${question.name}" does not match the pattern: ${question.pattern}.\n`);
+ default:
+ return chalk.red(`The field "${question.name}" is invalid. Please try again.\n`);
+ }
+
+ return ''; // Return empty string if no specific conditions are met
+};
+class PromptContext {
+ numTries: number = 0;
+ needsInput: boolean = true;
+ validation: Validation = { success: false };
+
+ constructor() {}
+
+ tryAgain(validation: Partial): void {
+ this.numTries++;
+ this.needsInput = true;
+ this.validation = { ...this.validation, ...validation, success: false };
+ }
+
+ nextQuestion(): void {
+ this.numTries = 0;
+ this.needsInput = false;
+ this.validation = { success: true };
+ }
+
+ process(validation: Validation | boolean): Validation {
+ if (typeof validation === 'boolean') {
+ if (validation) {
+ this.nextQuestion();
+ } else {
+ this.tryAgain({ type: 'validation' });
+ }
+ } else {
+ if (validation.success) {
+ this.nextQuestion();
+ } else {
+ this.tryAgain(validation);
+ }
+ }
+ return this.validation;
+ }
}
@@ -18,9 +70,7 @@ function generatePromptMessage(question: Question, ctx: PromptContext): string {
}
promptMessage += `${chalk.white('[')}${chalk.green('--' + question.name)}${chalk.white(']:')}\n`;
- if (ctx.numTries > 0 && question.required) {
- promptMessage = requiredMessage(question) + promptMessage;
- }
+ promptMessage = validationMessage(question, ctx) + promptMessage;
switch (question.type) {
case 'confirm':
@@ -121,72 +171,129 @@ export class Inquirerer {
this.log(prompt);
}
+ private isValidatableAnswer(answer: any): boolean {
+ return answer !== undefined;
+ }
+
+ private validateAnswer(question: Question, answer: any, obj: any, ctx: PromptContext): Validation {
+ const validation = this.validateAnswerPattern(question, answer);
+ if (!validation.success) {
+ return ctx.process(validation);
+ }
+
+ if (question.validate) {
+ const customValidation = question.validate(answer, obj);
+ return ctx.process(customValidation);
+ }
+
+ return ctx.process({
+ success: true
+ });
+ }
+
+ private validateAnswerPattern(question: Question, answer: any): Validation {
+ if (question.pattern && typeof answer === 'string') {
+ const regex = new RegExp(question.pattern);
+ const success = regex.test(answer);
+ if (success) {
+ return {
+ success
+ }
+ } else {
+ return {
+ type: 'pattern',
+ success: false,
+ reason: question.pattern
+ }
+ }
+ }
+ return {
+ success: true
+ }
+ }
+
+ private isEmptyAnswer(answer: any): boolean {
+ switch (true) {
+ case answer === undefined:
+ case answer === null:
+ case answer === '':
+ case Array.isArray(answer) && answer.length === 0:
+ return true;
+ }
+ return false;
+ }
+
+ private sanitizeAnswer(question: Question, answer: any, obj: any): any {
+ if (question.sanitize) {
+ return question.sanitize(answer, obj);
+ }
+ return answer;
+ }
+
public async prompt(params: T, questions: Question[], usageText?: string): Promise {
const obj: any = { ...params };
- // when interactive and missing a bunch of stuff, we should display to the user
if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
this.log(usageText);
}
- const needsContinue = (question: Question) => {
- const value = obj[question.name];
- return (
- value === undefined ||
- value === null ||
- (typeof value === 'string' && value.trim().length === 0) // Check for empty string, safely trimming it
- );
- };
-
let index = 0;
- let numTries = 0;
while (index < questions.length) {
const question = questions[index];
+ const ctx: PromptContext = new PromptContext();
+ // Apply default value if applicable
if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
index++; // Move to the next question
- continue;
+ continue; // Skip the rest of the loop since the default is applied
}
- const ctx: PromptContext = {
- numTries
- }
- if (needsContinue(question)) {
- switch (question.type) {
- case 'confirm':
- obj[question.name] = await this.confirm(question as ConfirmQuestion, ctx);
- break;
- case 'checkbox':
- obj[question.name] = await this.checkbox(question as CheckboxQuestion, ctx);
- break;
- case 'autocomplete':
- obj[question.name] = await this.autocomplete(question as AutocompleteQuestion, ctx);
- break;
- case 'text':
- default:
- obj[question.name] = await this.text(question as TextQuestion, ctx); // Use promptText instead of text
- break;
- }
- // Check if the question is required and the response is not adequate
- if (question.required && needsContinue(question)) {
- // Reset the property to undefined to re-trigger the prompt
- numTries++;
- obj[question.name] = undefined;
- continue; // Stay on the same question
- } else {
- if ('default' in question) {
- obj[question.name] = question.default;
+ while (ctx.needsInput) {
+ obj[question.name] = await this.handleQuestionType(question, ctx);
+
+ if (this.isValidatableAnswer(obj[question.name])) {
+ obj[question.name] = this.sanitizeAnswer(question, obj[question.name], obj);
+ const validationResult = this.validateAnswer(question, obj[question.name], obj, ctx);
+ if (!validationResult.success) {
+ obj[question.name] = undefined; // Force re-validation
+ continue; // Explicitly continue the loop on same question if validation fails
}
}
+
+ if (question.required && this.isEmptyAnswer(obj[question.name])) {
+ obj[question.name] = undefined; // Reset to undefined to force re-entry
+ ctx.tryAgain({
+ type: 'required'
+ });
+ continue; // Continue looping on same question if the required input is not provided
+ } else if ('default' in question) {
+ obj[question.name] = question.default;
+ ctx.nextQuestion();
+ index++;
+ continue;
+ }
+ ctx.nextQuestion();
}
- index++; // Move to the next question
- numTries = 0;
+ index++; // Move to the next question
}
return obj as T;
}
+ private async handleQuestionType(question: Question, ctx: PromptContext): Promise {
+ switch (question.type) {
+ case 'confirm':
+ return this.confirm(question as ConfirmQuestion, ctx);
+ case 'checkbox':
+ return this.checkbox(question as CheckboxQuestion, ctx);
+ case 'autocomplete':
+ return this.autocomplete(question as AutocompleteQuestion, ctx);
+ case 'text':
+ default:
+ return this.text(question as TextQuestion, ctx);
+ }
+ }
async confirm(question: ConfirmQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index 143be49..65885b4 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -7,6 +7,12 @@ export interface OptionValue {
value: any;
}
+export interface Validation {
+ type?: string;
+ success: boolean;
+ reason?: string;
+}
+
export interface BaseQuestion {
name: string;
type: string;
@@ -14,6 +20,9 @@ export interface BaseQuestion {
useDefault?: boolean;
required?: boolean;
message?: string;
+ validate?: (input: any, obj: any) => Validation | boolean;
+ sanitize?: (input: any, obj: any) => any;
+ pattern?: string;
}
export interface ConfirmQuestion extends BaseQuestion {
From 98228975007058d4f4f48c86adef11c6677bc1c2 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 07:47:02 -0700
Subject: [PATCH 056/124] usage
---
packages/inquirerer/dev/index.ts | 5 +-
packages/inquirerer/src/commander.ts | 2 +-
packages/inquirerer/src/prompt.ts | 145 +++++++++++++++++-----
packages/inquirerer/src/question/types.ts | 1 +
4 files changed, 122 insertions(+), 31 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 157069e..542ed67 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -15,13 +15,16 @@ if (!('tty' in argv)) {
argv.tty = true;
}
+console.log(argv);
if (argv.version) {
displayVersion();
process.exit(0);
}
-const prompter = new Inquirerer();
+const prompter = new Inquirerer({
+ noTty: !argv.tty
+});
const main = async () => {
// const args = await prompter.prompt(argv, [
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index e0c51cc..f36dc73 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -48,7 +48,7 @@ export class CLI {
this.argv = argv ? argv : minimist(process.argv.slice(2), this.options.minimistOpts);
this.prompter = new Inquirerer({
- noTty: this.options.noTty,
+ noTty: !this.argv.tty ? true : this.options.noTty,
input: this.options.input,
output: this.options.output
});
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 5cbedc7..7ed81bb 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -5,6 +5,13 @@ import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
+interface ManPageInfo {
+ commandName: string;
+ questions: Question[];
+ author?: string;
+ description?: string;
+}
+
const validationMessage = (question: Question, ctx: PromptContext): string => {
if (ctx.numTries === 0 || ctx.validation.success) {
return ''; // No message if first attempt or validation was successful
@@ -30,7 +37,7 @@ class PromptContext {
needsInput: boolean = true;
validation: Validation = { success: false };
- constructor() {}
+ constructor() { }
tryAgain(validation: Partial): void {
this.numTries++;
@@ -171,6 +178,56 @@ export class Inquirerer {
this.log(prompt);
}
+ generateManPage(opts: ManPageInfo): string {
+
+ let manPage = `NAME\n\t${opts.commandName} ${opts.description ?? ''}\n\n`;
+
+ // Constructing the SYNOPSIS section with required and optional arguments
+ let requiredArgs = '';
+ let optionalArgs = '';
+
+ opts.questions.forEach(question => {
+ if (question.required) {
+ requiredArgs += ` --${question.name} <${question.name}>`;
+ } else {
+ optionalArgs += ` [--${question.name}${question.default ? `=${question.default}` : ''}]`;
+ }
+ });
+
+ manPage += `SYNOPSIS\n\t${opts.commandName}${requiredArgs}${optionalArgs}\n\n`;
+ manPage += `DESCRIPTION\n\tUse this command to interact with the application. It supports the following options:\n\n`;
+
+ opts.questions.forEach(question => {
+ manPage += `${question.name.toUpperCase()}\n`;
+ manPage += `\tType: ${question.type}\n`;
+ if (question.message) {
+ manPage += `\tSummary: ${question.message}\n`;
+ }
+ if (question.description) {
+ manPage += `\tDescription: ${question.description}\n`;
+ }
+ if ('options' in question) {
+ const optionsList = Array.isArray(question.options)
+ ? question.options.map(opt => typeof opt === 'string' ? opt : `${opt.name} (${opt.value})`).join(', ')
+ : '';
+ manPage += `\tOptions: ${optionsList}\n`;
+ }
+ if (question.default !== undefined) {
+ manPage += `\tDefault: ${JSON.stringify(question.default)}\n`;
+ }
+ if (question.required) {
+ manPage += `\tRequired: Yes\n`;
+ } else {
+ manPage += `\tRequired: No\n`;
+ }
+ manPage += '\n';
+ });
+
+ manPage += `EXAMPLES\n\tExample usage of \`${opts.commandName}\`.\n\t$ ${opts.commandName}${requiredArgs}${optionalArgs}\n\n`;
+ manPage += opts.author ? `AUTHOR\n\t${opts.author}\n` : '';
+ return manPage;
+ }
+
private isValidatableAnswer(answer: any): boolean {
return answer !== undefined;
}
@@ -191,6 +248,23 @@ export class Inquirerer {
});
}
+ private isValid(question: Question, obj: any, ctx: PromptContext): boolean {
+ if (this.isValidatableAnswer(obj[question.name])) {
+ obj[question.name] = this.sanitizeAnswer(question, obj[question.name], obj);
+ const validationResult = this.validateAnswer(question, obj[question.name], obj, ctx);
+ if (!validationResult.success) {
+ return false;
+ }
+ }
+
+ if (question.required && this.isEmptyAnswer(obj[question.name])) {
+ ctx.tryAgain({ type: 'required' });
+ return false;
+ }
+
+ return true;
+ }
+
private validateAnswerPattern(question: Question, answer: any): Validation {
if (question.pattern && typeof answer === 'string') {
const regex = new RegExp(question.pattern);
@@ -230,52 +304,65 @@ export class Inquirerer {
return answer;
}
- public async prompt(params: T, questions: Question[], usageText?: string): Promise {
- const obj: any = { ...params };
- if (usageText && Object.values(params).some(value => value === undefined) && !this.noTty) {
- this.log(usageText);
+ public async prompt(
+ argv: T,
+ questions: Question[],
+ docs?: {
+ usageText?: string,
+ manPageInfo?: ManPageInfo
+ }
+ ): Promise {
+ const obj: any = { ...argv };
+
+ // Assuming questions is an array of Question objects and argv is the parsed command line arguments object.
+ // @ts-ignore
+ if (this.noTty && questions.some(question => question.required && this.isEmptyAnswer(argv[question.name]))) {
+
+ for (let index = 0; index < questions.length; index++) {
+ const question = questions[index];
+ // Apply default value if applicable
+ if ('default' in question) {
+ obj[question.name] = question.default;
+ }
+ }
+
+ // @ts-ignore
+ if (!questions.some(question => question.required && this.isEmptyAnswer(argv[question.name]))) {
+ return obj as T;
+ }
+
+ // If running in a non-interactive mode and any required argument is missing, handle the error.
+ if (docs?.usageText) {
+ this.log(docs.usageText);
+ } else if (docs?.manPageInfo) {
+ this.log(this.generateManPage(docs.manPageInfo))
+ } else {
+ this.log('Missing required arguments. Please provide all required parameters.');
+ }
+ process.exit(1);
+
}
- let index = 0;
- while (index < questions.length) {
+ for (let index = 0; index < questions.length; index++) {
const question = questions[index];
const ctx: PromptContext = new PromptContext();
// Apply default value if applicable
if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
- index++; // Move to the next question
- continue; // Skip the rest of the loop since the default is applied
+ continue; // Skip to the next question since the default is applied
}
while (ctx.needsInput) {
obj[question.name] = await this.handleQuestionType(question, ctx);
- if (this.isValidatableAnswer(obj[question.name])) {
- obj[question.name] = this.sanitizeAnswer(question, obj[question.name], obj);
- const validationResult = this.validateAnswer(question, obj[question.name], obj, ctx);
- if (!validationResult.success) {
- obj[question.name] = undefined; // Force re-validation
- continue; // Explicitly continue the loop on same question if validation fails
- }
- }
-
- if (question.required && this.isEmptyAnswer(obj[question.name])) {
- obj[question.name] = undefined; // Reset to undefined to force re-entry
- ctx.tryAgain({
- type: 'required'
- });
- continue; // Continue looping on same question if the required input is not provided
- } else if ('default' in question) {
- obj[question.name] = question.default;
- ctx.nextQuestion();
- index++;
+ if (!this.isValid(question, obj, ctx)) {
continue;
}
+ // If input passes validation and is not empty, or not required, move to the next question
ctx.nextQuestion();
}
- index++; // Move to the next question
}
return obj as T;
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index 65885b4..9a18cbd 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -20,6 +20,7 @@ export interface BaseQuestion {
useDefault?: boolean;
required?: boolean;
message?: string;
+ description?: string;
validate?: (input: any, obj: any) => Validation | boolean;
sanitize?: (input: any, obj: any) => any;
pattern?: string;
From 9393d091a1aae84b7d10f6b88419fb4ad17fbd89 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 07:47:29 -0700
Subject: [PATCH 057/124] chore(release): publish
- inquirerer@1.0.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index f7eb361..5dfad42 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.0.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.12.0...inquirerer@1.0.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [0.12.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.11.0...inquirerer@0.12.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 7e4f440..a4d9f58 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "0.12.0",
+ "version": "1.0.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From cb1129b5deac57ff54a25034b5c1a9db34f92ed0 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 08:04:11 -0700
Subject: [PATCH 058/124] defaults
---
packages/inquirerer/src/prompt.ts | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 7ed81bb..d8c6223 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -401,7 +401,12 @@ export class Inquirerer {
}
async text(question: TextQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) return question.default ?? null; // Return default if non-interactive
+ if (this.noTty || !this.rl) {
+ if ('default' in question) {
+ return question.default;
+ }
+ return;
+ }
let input = '';
@@ -526,7 +531,12 @@ export class Inquirerer {
}
async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
+ if (this.noTty || !this.rl) {
+ if ('default' in question) {
+ return question.default;
+ }
+ return;
+ }
this.keypress.resume();
const options = this.sanitizeOptions(question);
From df754ef4059b18c9a98378134f365fd0b8063d4c Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 08:04:18 -0700
Subject: [PATCH 059/124] chore(release): publish
- inquirerer@1.1.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 5dfad42..886eef4 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.1.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.0.0...inquirerer@1.1.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.0.0](https://github.com/pyramation/inquirerer/compare/inquirerer@0.12.0...inquirerer@1.0.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index a4d9f58..9829178 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.0.0",
+ "version": "1.1.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 2e1881cca3ecd0325038661584b91029d389f496 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 08:17:06 -0700
Subject: [PATCH 060/124] revert
---
packages/inquirerer/src/prompt.ts | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index d8c6223..7ed81bb 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -401,12 +401,7 @@ export class Inquirerer {
}
async text(question: TextQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) {
- if ('default' in question) {
- return question.default;
- }
- return;
- }
+ if (this.noTty || !this.rl) return question.default ?? null; // Return default if non-interactive
let input = '';
@@ -531,12 +526,7 @@ export class Inquirerer {
}
async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) {
- if ('default' in question) {
- return question.default;
- }
- return;
- }
+ if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
this.keypress.resume();
const options = this.sanitizeOptions(question);
From fd80e2379caacef95200bef7b7f4778b8263355c Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 08:17:17 -0700
Subject: [PATCH 061/124] chore(release): publish
- inquirerer@1.2.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 886eef4..a1d190c 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.2.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.1.0...inquirerer@1.2.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.1.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.0.0...inquirerer@1.1.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 9829178..0a3f9ee 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.1.0",
+ "version": "1.2.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From e724a9a2ba8c2ffffc4c92bd11d3dc2093334491 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 10:12:28 -0700
Subject: [PATCH 062/124] cli
---
packages/inquirerer/src/commander.ts | 5 +++--
packages/inquirerer/src/prompt.ts | 14 ++++++++++++--
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index f36dc73..3f161df 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -18,7 +18,7 @@ export interface CLIOptions {
export const defaultCLIOptions: CLIOptions = {
version: `inquirerer@${getVersion()}`,
- noTty: false,
+ noTty: !process.stdout.isTTY,
input: process.stdin,
output: process.stdout,
minimistOpts: {
@@ -47,8 +47,9 @@ export class CLI {
this.options = mergedOptions as CLIOptions;
this.argv = argv ? argv : minimist(process.argv.slice(2), this.options.minimistOpts);
+
this.prompter = new Inquirerer({
- noTty: !this.argv.tty ? true : this.options.noTty,
+ noTty: this.options.noTty,
input: this.options.input,
output: this.options.output
});
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 7ed81bb..d8c6223 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -401,7 +401,12 @@ export class Inquirerer {
}
async text(question: TextQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) return question.default ?? null; // Return default if non-interactive
+ if (this.noTty || !this.rl) {
+ if ('default' in question) {
+ return question.default;
+ }
+ return;
+ }
let input = '';
@@ -526,7 +531,12 @@ export class Inquirerer {
}
async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
+ if (this.noTty || !this.rl) {
+ if ('default' in question) {
+ return question.default;
+ }
+ return;
+ }
this.keypress.resume();
const options = this.sanitizeOptions(question);
From 1c3d99966ab7179ed56377dfab40a4a7209dd641 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 10:12:49 -0700
Subject: [PATCH 063/124] chore(release): publish
- inquirerer@1.3.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index a1d190c..faa05e2 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.3.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.2.0...inquirerer@1.3.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.2.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.1.0...inquirerer@1.2.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 0a3f9ee..f04bca6 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.2.0",
+ "version": "1.3.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 03f9d5f47c0cfd527525b3308a39a48a0372d12d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 10:35:34 -0700
Subject: [PATCH 064/124] noTty false
---
packages/inquirerer/src/commander.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index 3f161df..b879512 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -18,7 +18,7 @@ export interface CLIOptions {
export const defaultCLIOptions: CLIOptions = {
version: `inquirerer@${getVersion()}`,
- noTty: !process.stdout.isTTY,
+ noTty: false,
input: process.stdin,
output: process.stdout,
minimistOpts: {
From b782a9a8f201cdc779f7425774f680bc758a2506 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 10:35:50 -0700
Subject: [PATCH 065/124] chore(release): publish
- inquirerer@1.4.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index faa05e2..4143625 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.4.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.3.0...inquirerer@1.4.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.3.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.2.0...inquirerer@1.3.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index f04bca6..6d7d2cf 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.3.0",
+ "version": "1.4.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From c9f278d896e50f3b7b40764fa531f0a3388ce6e9 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 10:56:45 -0700
Subject: [PATCH 066/124] fixed fuzzy
---
packages/inquirerer/src/prompt.ts | 1 +
yarn.lock | 10 ----------
2 files changed, 1 insertion(+), 10 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index d8c6223..62c84b1 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -643,6 +643,7 @@ export class Inquirerer {
// Fuzzy matching: Check if all characters of the input can be found in the option name in order
const fuzzyMatch = (option: string, input: string) => {
+ if (!input || !input.trim().length) return true;
const length = input.length;
let position = 0; // Position in the input string
diff --git a/yarn.lock b/yarn.lock
index ca31d28..57ac480 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1296,11 +1296,6 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
-"@types/keypress@^2.0.30":
- version "2.0.30"
- resolved "https://registry.yarnpkg.com/@types/keypress/-/keypress-2.0.30.tgz#b55c4f63b58970b30c7b8cb63f25af14a3dbda8d"
- integrity sha512-PCS6Mrv4gbQ9167E25nuVmqerT4xM/zWuVFTLfHdQgBwmsfMj2kXR1DI3qZ5N3p21gbrPweRghci2CjMHRCWkA==
-
"@types/minimatch@^3.0.3":
version "3.0.5"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
@@ -4164,11 +4159,6 @@ just-diff@^6.0.0:
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
-keypress@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77"
- integrity sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==
-
keyv@^4.5.3:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
From 624206356e03bb9c096b0a33f4dff5c28f50b3e4 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 10:57:02 -0700
Subject: [PATCH 067/124] chore(release): publish
- inquirerer@1.5.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 4143625..8b07321 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.5.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.4.0...inquirerer@1.5.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.4.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.3.0...inquirerer@1.4.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 6d7d2cf..3b4ad45 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.4.0",
+ "version": "1.5.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 56fa6a1cfdd7f7cea41d450b1f9b465d67f0b1b6 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 15:34:00 -0700
Subject: [PATCH 068/124] =?UTF-8?q?mutateArgs=20=F0=9F=99=8F=F0=9F=8F=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/inquirerer/__tests__/prompt.test.ts | 14 +--
packages/inquirerer/src/commander.ts | 4 +-
packages/inquirerer/src/prompt.ts | 101 ++++++++++---------
3 files changed, 63 insertions(+), 56 deletions(-)
diff --git a/packages/inquirerer/__tests__/prompt.test.ts b/packages/inquirerer/__tests__/prompt.test.ts
index 0c2580f..0c1b379 100644
--- a/packages/inquirerer/__tests__/prompt.test.ts
+++ b/packages/inquirerer/__tests__/prompt.test.ts
@@ -1,7 +1,7 @@
import readline from 'readline';
-import { Readable, Writable, Transform } from 'stream';
-
+import { Readable, Transform, Writable } from 'stream';
import stripAnsi from 'strip-ansi';
+
import { Inquirerer } from '../src';
import { Question } from '../src/question';
@@ -17,8 +17,6 @@ describe('Inquirerer', () => {
let mockWrite: jest.Mock;
let mockInput: Readable;
let mockOutput: Writable;
- let questionHandlers: Array<(input: string) => void> = [];
- let currentQuestionIndex: number = 0;
let transformStream: Transform;
let writeResults: string[];
@@ -42,8 +40,8 @@ describe('Inquirerer', () => {
function enqueueInputResponse(input: { type: 'key' | 'read', value: string }) {
if (input.type === 'key') {
- // Push key events directly to mockInput
- // @ts-ignore
+ // Push key events directly to mockInput
+ // @ts-ignore
setTimeout(() => mockInput.push(input.value), 350);
} else {
// Queue readline responses to be handled by the readline mock
@@ -60,8 +58,6 @@ describe('Inquirerer', () => {
beforeEach(() => {
mockWrite = jest.fn();
- currentQuestionIndex = 0;
- questionHandlers = [];
writeResults = [];
transformResults = [];
@@ -213,7 +209,7 @@ describe('Inquirerer', () => {
noTty: false
});
const questions: Question[] = [
- {
+ {
name: 'checkbox',
type: 'checkbox',
options: [
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index b879512..b2d9263 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -1,6 +1,6 @@
import deepmerge from 'deepmerge';
import minimist, { Opts, ParsedArgs } from 'minimist';
-import { Readable,Writable } from 'stream';
+import { Readable, Writable } from 'stream';
import { Inquirerer } from './prompt';
import { getVersion } from './utils';
@@ -68,7 +68,7 @@ export class CLI {
}
const args = await this.commandHandler(this.argv, this.prompter, this.options);
- this.prompter.close();
+ this.prompter.exit();
return args;
}
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 62c84b1..870f410 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -5,12 +5,17 @@ import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
-interface ManPageInfo {
+export interface ManPageInfo {
commandName: string;
questions: Question[];
author?: string;
description?: string;
}
+export interface PromptOptions {
+ usageText?: string;
+ manPageInfo?: ManPageInfo;
+ mutateArgs?: boolean;
+}
const validationMessage = (question: Question, ctx: PromptContext): string => {
if (ctx.numTries === 0 || ctx.validation.success) {
@@ -29,8 +34,6 @@ const validationMessage = (question: Question, ctx: PromptContext): string => {
default:
return chalk.red(`The field "${question.name}" is invalid. Please try again.\n`);
}
-
- return ''; // Return empty string if no specific conditions are met
};
class PromptContext {
numTries: number = 0;
@@ -108,6 +111,8 @@ export interface InquirererOptions {
output?: Writable;
useDefaults?: boolean;
globalMaxLines?: number;
+ mutateArgs?: boolean;
+
}
export class Inquirerer {
private rl: readline.Interface | null;
@@ -117,6 +122,7 @@ export class Inquirerer {
private input: Readable;
private useDefaults: boolean;
private globalMaxLines: number;
+ private mutateArgs: boolean;
constructor(
options?: InquirererOptions
@@ -126,12 +132,14 @@ export class Inquirerer {
input = process.stdin,
output = process.stdout,
useDefaults = false,
- globalMaxLines = 10
+ globalMaxLines = 10,
+ mutateArgs = true
} = options ?? {}
this.useDefaults = useDefaults;
this.noTty = noTty;
this.output = output;
+ this.mutateArgs = mutateArgs;
this.input = input;
this.globalMaxLines = globalMaxLines;
@@ -152,35 +160,34 @@ export class Inquirerer {
}
}
- clearScreen() {
+ private clearScreen() {
// same as console.clear()
this.output.write('\x1Bc'); // This is the escape sequence to clear the terminal screen.
}
- write(message: string) {
+ private write(message: string) {
this.output.write(message);
}
- log(message: string) {
+ private log(message: string) {
this.output.write(message + '\n');
}
- getInput(input: string) {
+ private getInput(input: string) {
return `${chalk.white.bold('$')} ${input}`;
}
- getPrompt(question: Question, ctx: PromptContext, input: string) {
+ private getPrompt(question: Question, ctx: PromptContext, input: string) {
const promptMessage = generatePromptMessage(question, ctx);
return promptMessage + this.getInput(input);
}
- displayPrompt(question: Question, ctx: PromptContext, input: string) {
+ private displayPrompt(question: Question, ctx: PromptContext, input: string) {
const prompt = this.getPrompt(question, ctx, input);
this.log(prompt);
}
- generateManPage(opts: ManPageInfo): string {
-
- let manPage = `NAME\n\t${opts.commandName} ${opts.description ?? ''}\n\n`;
+ public generateManPage(opts: ManPageInfo): string {
+ let manPage = `${chalk.white('NAME')}\n\t${chalk.white(opts.commandName)} ${opts.description ?? ''}\n\n`;
// Constructing the SYNOPSIS section with required and optional arguments
let requiredArgs = '';
@@ -188,43 +195,43 @@ export class Inquirerer {
opts.questions.forEach(question => {
if (question.required) {
- requiredArgs += ` --${question.name} <${question.name}>`;
+ requiredArgs += ` ${chalk.white('--' + question.name)} <${chalk.gray(question.name)}>`;
} else {
- optionalArgs += ` [--${question.name}${question.default ? `=${question.default}` : ''}]`;
+ optionalArgs += ` [${chalk.white('--' + question.name)}${question.default ? `=${chalk.gray(String(question.default))}` : ''}]`;
}
});
- manPage += `SYNOPSIS\n\t${opts.commandName}${requiredArgs}${optionalArgs}\n\n`;
- manPage += `DESCRIPTION\n\tUse this command to interact with the application. It supports the following options:\n\n`;
+ manPage += `${chalk.white('SYNOPSIS')}\n\t${chalk.white(opts.commandName)}${chalk.gray(requiredArgs)}${chalk.gray(optionalArgs)}\n\n`;
+ manPage += `${chalk.white('DESCRIPTION')}\n\tUse this command to interact with the application. It supports the following options:\n\n`;
opts.questions.forEach(question => {
- manPage += `${question.name.toUpperCase()}\n`;
- manPage += `\tType: ${question.type}\n`;
+ manPage += `${chalk.white(question.name.toUpperCase())}\n`;
+ manPage += `\t${chalk.white('Type:')} ${chalk.gray(question.type)}\n`;
if (question.message) {
- manPage += `\tSummary: ${question.message}\n`;
+ manPage += `\t${chalk.white('Summary:')} ${chalk.gray(question.message)}\n`;
}
if (question.description) {
- manPage += `\tDescription: ${question.description}\n`;
+ manPage += `\t${chalk.white('Description:')} ${chalk.gray(question.description)}\n`;
}
if ('options' in question) {
const optionsList = Array.isArray(question.options)
- ? question.options.map(opt => typeof opt === 'string' ? opt : `${opt.name} (${opt.value})`).join(', ')
+ ? question.options.map(opt => typeof opt === 'string' ? chalk.gray(opt) : `${chalk.gray(opt.name)} (${chalk.gray(opt.value)})`).join(', ')
: '';
- manPage += `\tOptions: ${optionsList}\n`;
+ manPage += `\t${chalk.white('Options:')} ${chalk.gray(optionsList)}\n`;
}
if (question.default !== undefined) {
- manPage += `\tDefault: ${JSON.stringify(question.default)}\n`;
+ manPage += `\t${chalk.white('Default:')} ${chalk.gray(JSON.stringify(question.default))}\n`;
}
if (question.required) {
- manPage += `\tRequired: Yes\n`;
+ manPage += `\t${chalk.white('Required:')} ${chalk.gray('Yes')}\n`;
} else {
- manPage += `\tRequired: No\n`;
+ manPage += `\t${chalk.white('Required:')} ${chalk.gray('No')}\n`;
}
manPage += '\n';
});
- manPage += `EXAMPLES\n\tExample usage of \`${opts.commandName}\`.\n\t$ ${opts.commandName}${requiredArgs}${optionalArgs}\n\n`;
- manPage += opts.author ? `AUTHOR\n\t${opts.author}\n` : '';
+ manPage += `${chalk.white('EXAMPLES')}\n\tExample usage of \`${chalk.white(opts.commandName)}\`.\n\t$ ${chalk.white(opts.commandName)}${chalk.gray(requiredArgs)}${chalk.gray(optionalArgs)}\n\n`;
+ manPage += opts.author ? `${chalk.white('AUTHOR')}\n\t${chalk.white(opts.author)}\n` : '';
return manPage;
}
@@ -304,16 +311,18 @@ export class Inquirerer {
return answer;
}
+ public exit () {
+ this.clearScreen();
+ this.close();
+ }
public async prompt(
argv: T,
questions: Question[],
- docs?: {
- usageText?: string,
- manPageInfo?: ManPageInfo
- }
+ options?: PromptOptions
): Promise {
- const obj: any = { ...argv };
+
+ let obj: any = (this.mutateArgs || options.mutateArgs) ? argv : { ...argv };
// Assuming questions is an array of Question objects and argv is the parsed command line arguments object.
// @ts-ignore
@@ -333,14 +342,14 @@ export class Inquirerer {
}
// If running in a non-interactive mode and any required argument is missing, handle the error.
- if (docs?.usageText) {
- this.log(docs.usageText);
- } else if (docs?.manPageInfo) {
- this.log(this.generateManPage(docs.manPageInfo))
+ if (options?.usageText) {
+ this.log(options.usageText);
+ } else if (options?.manPageInfo) {
+ this.log(this.generateManPage(options.manPageInfo))
} else {
this.log('Missing required arguments. Please provide all required parameters.');
}
- process.exit(1);
+ this.exit();
}
@@ -381,7 +390,8 @@ export class Inquirerer {
return this.text(question as TextQuestion, ctx);
}
}
- async confirm(question: ConfirmQuestion, ctx: PromptContext): Promise {
+
+ public async confirm(question: ConfirmQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
return new Promise((resolve) => {
@@ -400,7 +410,7 @@ export class Inquirerer {
});
}
- async text(question: TextQuestion, ctx: PromptContext): Promise {
+ public async text(question: TextQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) {
if ('default' in question) {
return question.default;
@@ -423,7 +433,7 @@ export class Inquirerer {
});
}
- async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
+ public async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
this.keypress.resume();
@@ -530,7 +540,7 @@ export class Inquirerer {
});
}
- async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
+ public async autocomplete(question: AutocompleteQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) {
if ('default' in question) {
return question.default;
@@ -638,7 +648,7 @@ export class Inquirerer {
return options.filter(Boolean);
}
- filterOptions(options: OptionValue[], input: string): OptionValue[] {
+ private filterOptions(options: OptionValue[], input: string): OptionValue[] {
input = input.toLowerCase(); // Normalize input for case-insensitive comparison
// Fuzzy matching: Check if all characters of the input can be found in the option name in order
@@ -672,7 +682,7 @@ export class Inquirerer {
});
}
- getMaxLines(question: { maxDisplayLines?: number }, defaultLength: number): number {
+ private getMaxLines(question: { maxDisplayLines?: number }, defaultLength: number): number {
if (question.maxDisplayLines) {
return question.maxDisplayLines;
}
@@ -685,7 +695,8 @@ export class Inquirerer {
}
// Method to cleanly close the readline interface
- public close() {
+ // NOTE: use exit() to close!
+ private close() {
if (this.rl) {
this.rl.close();
this.keypress.destroy();
From 3944618241d24ffd77dbe078f80380a32f285111 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 15:59:54 -0700
Subject: [PATCH 069/124] errors for nonsensical errors
---
packages/inquirerer/src/prompt.ts | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 870f410..cd91d5a 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -112,7 +112,7 @@ export interface InquirererOptions {
useDefaults?: boolean;
globalMaxLines?: number;
mutateArgs?: boolean;
-
+
}
export class Inquirerer {
private rl: readline.Interface | null;
@@ -311,7 +311,7 @@ export class Inquirerer {
return answer;
}
- public exit () {
+ public exit() {
this.clearScreen();
this.close();
}
@@ -342,6 +342,7 @@ export class Inquirerer {
}
// If running in a non-interactive mode and any required argument is missing, handle the error.
+ this.clearScreen();
if (options?.usageText) {
this.log(options.usageText);
} else if (options?.manPageInfo) {
@@ -349,7 +350,7 @@ export class Inquirerer {
} else {
this.log('Missing required arguments. Please provide all required parameters.');
}
- this.exit();
+ throw new Error('Missing required arguments. Please provide all required parameters.');
}
@@ -367,6 +368,11 @@ export class Inquirerer {
obj[question.name] = await this.handleQuestionType(question, ctx);
if (!this.isValid(question, obj, ctx)) {
+ if (this.noTty) {
+ // If you're not valid and here with noTty, you're out!
+ this.clearScreen(); // clear before leaving, not calling exit() since it may be a bad pattern to continue, devs should try/catch
+ throw new Error('Missing required arguments. Please provide all required parameters.');
+ }
continue;
}
// If input passes validation and is not empty, or not required, move to the next question
@@ -390,7 +396,7 @@ export class Inquirerer {
return this.text(question as TextQuestion, ctx);
}
}
-
+
public async confirm(question: ConfirmQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? false; // Return default if non-interactive
@@ -436,6 +442,11 @@ export class Inquirerer {
public async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
+ if (!question.options.length) {
+ // no arguments don't make sense
+ throw new Error('checkbox requires options');
+ }
+
this.keypress.resume();
const options = this.sanitizeOptions(question);
let input = ''; // Search input
@@ -548,6 +559,10 @@ export class Inquirerer {
return;
}
+ if (!question.options.length) {
+ throw new Error('autocomplete requires options');
+ }
+
this.keypress.resume();
const options = this.sanitizeOptions(question);
From 7c0bfaacaac54980e2a1a1c918fd069e9260437f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 16:01:25 -0700
Subject: [PATCH 070/124] chore(release): publish
- inquirerer@1.6.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 8b07321..5197106 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.6.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.5.0...inquirerer@1.6.0) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.5.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.4.0...inquirerer@1.5.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 3b4ad45..40ee899 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.5.0",
+ "version": "1.6.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From a0eeecd4e08343e21a2f51443e4e8b458234ec63 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 16:09:37 -0700
Subject: [PATCH 071/124] mutateArgs
---
packages/inquirerer/src/prompt.ts | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index cd91d5a..6c1a0e1 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -322,11 +322,13 @@ export class Inquirerer {
options?: PromptOptions
): Promise {
- let obj: any = (this.mutateArgs || options.mutateArgs) ? argv : { ...argv };
+ // use local mutateArgs if defined, otherwise global mutateArgs
+ const shouldMutate = options?.mutateArgs !== undefined ? options.mutateArgs : this.mutateArgs;
+ let obj: any = shouldMutate ? argv : { ...argv };
+
// Assuming questions is an array of Question objects and argv is the parsed command line arguments object.
- // @ts-ignore
- if (this.noTty && questions.some(question => question.required && this.isEmptyAnswer(argv[question.name]))) {
+ if (this.noTty && questions.some(question => question.required && this.isEmptyAnswer((argv as any)[question.name]))) {
for (let index = 0; index < questions.length; index++) {
const question = questions[index];
@@ -336,8 +338,7 @@ export class Inquirerer {
}
}
- // @ts-ignore
- if (!questions.some(question => question.required && this.isEmptyAnswer(argv[question.name]))) {
+ if (!questions.some(question => question.required && this.isEmptyAnswer((argv as any)[question.name]))) {
return obj as T;
}
From 25c70c84b496b546e74bd4268eadc0a49bc6d9e7 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 22 Apr 2024 16:09:43 -0700
Subject: [PATCH 072/124] chore(release): publish
- inquirerer@1.6.1
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 5197106..41f3f2e 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.6.1](https://github.com/pyramation/inquirerer/compare/inquirerer@1.6.0...inquirerer@1.6.1) (2024-04-22)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.6.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.5.0...inquirerer@1.6.0) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 40ee899..86748e1 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.6.0",
+ "version": "1.6.1",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 451c13a03de83abb9a18f052b01f42c8ddb1307c Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 23 Apr 2024 21:01:33 -0700
Subject: [PATCH 073/124] provided args used, not just defaults
---
.../__snapshots__/autocomplete.test.ts.snap | 43 +++---
.../inquirerer/__tests__/autocomplete.test.ts | 123 ++--------------
packages/inquirerer/src/commander.ts | 1 +
packages/inquirerer/src/prompt.ts | 12 +-
packages/inquirerer/test-utils/setup.ts | 138 ++++++++++++++++++
5 files changed, 184 insertions(+), 133 deletions(-)
create mode 100644 packages/inquirerer/test-utils/setup.ts
diff --git a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
index 27e8f05..9779aab 100644
--- a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
@@ -1,53 +1,56 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`Inquirerer handles autocomplete selection with key events 1`] = `
+exports[`Inquirerer prompts user and correctly processes delayed input 1`] = `
{
- "result": {
- "autocompleteField": "firry third option",
- },
+ "autocompleteField": "firry third option",
}
`;
-exports[`Inquirerer handles autocomplete selection with key events 2`] = `
+exports[`Inquirerer prompts user and correctly processes delayed input 2`] = `
+{
+ "autocompleteField": "firry third option",
+}
+`;
+
+exports[`Inquirerer prompts user and correctly processes delayed input 3`] = `
[
"",
"[--autocompleteField]:
-$
+$
",
- "> first option
+ ">firstoption
",
- " firry second option
+ "firrysecondoption
",
- " firry third option
+ "firrythirdoption
",
"",
"[--autocompleteField]:
-$
+$
",
- " first option
+ "firstoption
",
- "> firry second option
+ ">firrysecondoption
",
- " firry third option
+ "firrythirdoption
",
"",
"[--autocompleteField]:
-$
+$
",
- " first option
+ "firstoption
",
- " firry second option
+ "firrysecondoption
",
- "> firry third option
+ ">firrythirdoption
",
]
`;
-exports[`Inquirerer handles autocomplete selection with key events 3`] = `
+exports[`Inquirerer prompts user and correctly processes delayed input 4`] = `
[
"",
"",
- "
-",
+ "",
]
`;
diff --git a/packages/inquirerer/__tests__/autocomplete.test.ts b/packages/inquirerer/__tests__/autocomplete.test.ts
index 5b68a54..6d81145 100644
--- a/packages/inquirerer/__tests__/autocomplete.test.ts
+++ b/packages/inquirerer/__tests__/autocomplete.test.ts
@@ -1,133 +1,42 @@
-import readline from 'readline';
-import { Readable, Writable, Transform } from 'stream';
+import { Inquirerer, Question } from '../src';
+import { KEY_SEQUENCES, setupTests, TestEnvironment } from '../test-utils/setup';
-import stripAnsi from 'strip-ansi';
-import { Inquirerer } from '../src';
-import { Question } from '../src/question';
-
-jest.mock('readline');
-
-function sleep(ms: number): Promise {
- return new Promise(resolve => setTimeout(resolve, ms));
-}
-
-const snap = (str: any) => expect(str).toMatchSnapshot();
+const beforeEachSetup = setupTests();
describe('Inquirerer', () => {
- let mockWrite: jest.Mock;
- let mockInput: Readable;
- let mockOutput: Writable;
- let questionHandlers: Array<(input: string) => void> = [];
- let currentQuestionIndex: number = 0;
- let transformStream: Transform;
-
- let writeResults: string[];
- let transformResults: string[];
-
- let inputQueue: Array<{ type: 'key' | 'read', value: string }> = [];
- let currentInputIndex: number = 0;
-
- function setupReadlineMock() {
- readline.createInterface = jest.fn().mockReturnValue({
- question: (questionText: string, cb: (input: string) => void) => {
- // Process the queued inputs when question is called
- const nextInput = inputQueue[currentInputIndex++];
- if (nextInput && nextInput.type === 'read') {
- setTimeout(() => cb(nextInput.value), 350); // Simulate readline delay
- }
- },
- close: jest.fn(),
- });
- }
-
- function enqueueInputResponse(input: { type: 'key' | 'read', value: string }) {
- if (input.type === 'key') {
- // Push key events directly to mockInput
- // @ts-ignore
- setTimeout(() => mockInput.push(input.value), 350);
- } else {
- // Queue readline responses to be handled by the readline mock
- inputQueue.push(input);
- }
- }
-
- const KEY_SEQUENCES = {
- ENTER: '\u000d', // Carriage return
- UP_ARROW: '\u001b[A', // ANSI escape sequence for the up arrow
- DOWN_ARROW: '\u001b[B',
- SPACE: ' '
- };
+ let environment: TestEnvironment;
beforeEach(() => {
- mockWrite = jest.fn();
- currentQuestionIndex = 0;
- questionHandlers = [];
- writeResults = [];
- transformResults = [];
-
-
- mockInput = new Readable({
- read(size) { }
- });
- // @ts-ignore
- mockInput.setRawMode = jest.fn(); // Mock TTY-specific method if needed
-
- mockOutput = new Writable({
- write: (chunk, encoding, callback) => {
- const str = chunk.toString();
- writeResults.push(stripAnsi(str));
- mockWrite(str);
- callback();
- }
- });
-
- // Create the transform stream to log and pass through data
- transformStream = new Transform({
- transform(chunk, encoding, callback) {
- const data = chunk.toString();
- transformResults.push(stripAnsi(data));
- this.push(chunk); // Pass the data through
- callback();
- }
- });
-
- setupReadlineMock();
- // Pipe the transform stream to the mock output to intercept writes
- // transformStream.pipe(mockOutput);
-
- // mockOutput.pipe(transformStream);
- mockInput.pipe(transformStream);
-
- // mockInput.pipe(transformStream).pipe(mockOutput);
-
+ environment = beforeEachSetup();
});
- it('handles autocomplete selection with key events', async () => {
+ it('prompts user and correctly processes delayed input', async () => {
+ const { mockInput, mockOutput, writeResults, transformResults, enqueueInputResponse } = environment;
+
const prompter = new Inquirerer({
input: mockInput,
output: mockOutput,
noTty: false
});
+
const questions: Question[] = [{
name: 'autocompleteField',
type: 'autocomplete',
options: ['first option', 'firry second option', 'firry third option']
}];
- const initialParams = {};
+
+ const argv = {};
enqueueInputResponse({ type: 'read', value: 'fir' });
enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.DOWN_ARROW });
enqueueInputResponse({ type: 'key', value: KEY_SEQUENCES.ENTER });
- const result = await prompter.prompt(initialParams, questions);
+ const result = await prompter.prompt(argv, questions);
- // Expected to select the second option
- // expect(result).toEqual({ autocompleteField: 'second option' });
- snap({result});
- snap(writeResults);
- snap(transformResults);
+ expect(argv).toMatchSnapshot();
+ expect(result).toMatchSnapshot();
+ expect(writeResults).toMatchSnapshot();
+ expect(transformResults).toMatchSnapshot();
});
-
-
});
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index b2d9263..6553e79 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -67,6 +67,7 @@ export class CLI {
process.exit(0);
}
+
const args = await this.commandHandler(this.argv, this.prompter, this.options);
this.prompter.exit();
return args;
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 6c1a0e1..c232fa2 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -146,13 +146,7 @@ export class Inquirerer {
if (!noTty) {
this.rl = readline.createInterface({
input,
- // dissallow readline from prompting user, since we'll handle it!
output
- // : new Writable({
- // write(chunk, encoding, callback) {
- // callback(); // Do nothing with the data
- // }
- // })
});
this.keypress = new TerminalKeypress(noTty, input);
} else {
@@ -359,6 +353,12 @@ export class Inquirerer {
const question = questions[index];
const ctx: PromptContext = new PromptContext();
+ // obj is already either argv itself, or a clone, but let's check if it has the property
+ if (question.name in obj) {
+ ctx.nextQuestion();
+ continue;
+ }
+
// Apply default value if applicable
if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
diff --git a/packages/inquirerer/test-utils/setup.ts b/packages/inquirerer/test-utils/setup.ts
new file mode 100644
index 0000000..8164767
--- /dev/null
+++ b/packages/inquirerer/test-utils/setup.ts
@@ -0,0 +1,138 @@
+import readline from 'readline';
+import { Readable, Transform, Writable } from 'stream';
+import stripAnsi from 'strip-ansi';
+
+import { CLIOptions } from '../src';
+
+export const KEY_SEQUENCES = {
+ ENTER: '\u000d',
+ UP_ARROW: '\u001b[A',
+ DOWN_ARROW: '\u001b[B',
+ SPACE: ' '
+};
+
+function humanizeKeySequences(data: string): string {
+ const keyMap: { [key: string]: string } = {
+ '\u000d': '',
+ '\u001b[A': '',
+ '\u001b[B': '',
+ ' ': ''
+ };
+
+ return data.replace(/[\u000d\u001b[A\u001b[B ]/g, (match) => keyMap[match] ?? match);
+}
+interface InputResponse {
+ type: 'key' | 'read';
+ value: string;
+}
+
+interface MockReadline {
+ question: (questionText: string, cb: (input: string) => void) => void;
+ close: () => void;
+}
+
+export interface TestEnvironment {
+ options: Partial;
+ mockInput: Readable;
+ mockOutput: Writable;
+ writeResults: string[];
+ transformResults: string[];
+ enqueueInputResponse: (input: InputResponse) => void;
+}
+
+function setupReadlineMock(inputQueue: InputResponse[], currentInputIndex: number): void {
+ readline.createInterface = jest.fn().mockReturnValue({
+ question: (questionText: string, cb: (input: string) => void) => {
+ const nextInput = inputQueue[currentInputIndex++];
+ if (nextInput && nextInput.type === 'read') {
+ setTimeout(() => cb(nextInput.value), 1);
+ }
+ },
+ close: jest.fn(),
+ } as MockReadline);
+}
+
+export function setupTests(): () => TestEnvironment {
+ let options: Partial;
+ let mockWrite: jest.Mock;
+ let mockInput: Readable;
+ let mockOutput: Writable;
+ let transformStream: Transform;
+
+ let writeResults: string[] = [];
+ let transformResults: string[] = [];
+
+ let inputQueue: InputResponse[] = [];
+ let currentInputIndex = 0;
+ let lastScheduledTime = 0;
+
+
+ const beforeEachSetup = (): TestEnvironment => {
+ jest.clearAllMocks();
+ mockWrite = jest.fn();
+ writeResults = [];
+ transformResults = [];
+
+ mockInput = new Readable({ read(size) { } });
+ (mockInput as any).setRawMode = jest.fn();
+
+ mockOutput = new Writable({
+ write: (chunk, encoding, callback) => {
+ const str = chunk.toString();
+ const humanizedStr = humanizeKeySequences(str);
+ const cleanStr = stripAnsi(humanizedStr);
+ writeResults.push(cleanStr);
+ mockWrite(str);
+ callback();
+ }
+ });
+
+ // mock I/O streams so we can keep TTY for testing and CI/CD 🎨
+ options = {
+ noTty: false,
+ input: mockInput,
+ output: mockOutput,
+ minimistOpts: {
+ alias: {
+ v: 'version'
+ }
+ }
+ };
+
+ transformStream = new Transform({
+ transform(chunk, encoding, callback) {
+ const data = chunk.toString();
+ const humanizedData = humanizeKeySequences(data);
+ const cleanData = stripAnsi(humanizedData);
+ transformResults.push(cleanData);
+ this.push(chunk);
+ callback();
+ }
+ });
+
+ setupReadlineMock(inputQueue, currentInputIndex);
+ mockInput.pipe(transformStream);
+
+ const enqueueInputResponse = (input: InputResponse) => {
+ lastScheduledTime += 1;
+
+ if (input.type === 'key') {
+ setTimeout(() => mockInput.push(input.value), lastScheduledTime);
+ } else {
+ inputQueue.push(input); // We assume that handling read inputs remains the same unless you need to delay these as well
+ }
+ };
+
+
+ return {
+ options,
+ mockInput,
+ mockOutput,
+ writeResults,
+ transformResults,
+ enqueueInputResponse
+ };
+ };
+
+ return beforeEachSetup;
+}
From 273e730c2481312b2d332d3711b1728210799e83 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 23 Apr 2024 21:01:53 -0700
Subject: [PATCH 074/124] chore(release): publish
- inquirerer@1.7.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 41f3f2e..7fec5f2 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.7.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.6.1...inquirerer@1.7.0) (2024-04-24)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [1.6.1](https://github.com/pyramation/inquirerer/compare/inquirerer@1.6.0...inquirerer@1.6.1) (2024-04-22)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 86748e1..01dffa5 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.6.1",
+ "version": "1.7.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 8b841ea7b878d794209ec51a0d37cc21305d7f76 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 24 Apr 2024 00:00:47 -0700
Subject: [PATCH 075/124] handle overrides
---
packages/inquirerer/src/commander.ts | 3 +-
packages/inquirerer/src/prompt.ts | 97 +++++++++++++++++++++-------
2 files changed, 76 insertions(+), 24 deletions(-)
diff --git a/packages/inquirerer/src/commander.ts b/packages/inquirerer/src/commander.ts
index 6553e79..bd1296c 100644
--- a/packages/inquirerer/src/commander.ts
+++ b/packages/inquirerer/src/commander.ts
@@ -69,7 +69,8 @@ export class CLI {
const args = await this.commandHandler(this.argv, this.prompter, this.options);
- this.prompter.exit();
+ // this.prompter.exit();
+ this.prompter.close();
return args;
}
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index c232fa2..3bc0339 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -320,33 +320,24 @@ export class Inquirerer {
const shouldMutate = options?.mutateArgs !== undefined ? options.mutateArgs : this.mutateArgs;
let obj: any = shouldMutate ? argv : { ...argv };
+ // first loop through the question, and set any overrides in case other questions use objs for validation
+ this.applyOverrides(argv, obj, questions);
- // Assuming questions is an array of Question objects and argv is the parsed command line arguments object.
- if (this.noTty && questions.some(question => question.required && this.isEmptyAnswer((argv as any)[question.name]))) {
+ // Check for required arguments when no terminal is available (non-interactive mode)
+ if (this.noTty && this.hasMissingRequiredArgs(questions, argv)) {
- for (let index = 0; index < questions.length; index++) {
- const question = questions[index];
- // Apply default value if applicable
- if ('default' in question) {
- obj[question.name] = question.default;
- }
- }
+ // Apply default values for all questions
+ this.applyDefaultValues(questions, obj);
- if (!questions.some(question => question.required && this.isEmptyAnswer((argv as any)[question.name]))) {
- return obj as T;
+ // Recheck for missing required arguments after applying defaults
+ // NOT so sure this would ever happen, but possible if developer did something wrong
+ if (!this.hasMissingRequiredArgs(questions, argv)) {
+ return obj as T; // Return the updated object if no required arguments are missing
}
- // If running in a non-interactive mode and any required argument is missing, handle the error.
- this.clearScreen();
- if (options?.usageText) {
- this.log(options.usageText);
- } else if (options?.manPageInfo) {
- this.log(this.generateManPage(options.manPageInfo))
- } else {
- this.log('Missing required arguments. Please provide all required parameters.');
- }
+ // Handle error for missing required arguments
+ this.handleMissingArgsError(options);
throw new Error('Missing required arguments. Please provide all required parameters.');
-
}
for (let index = 0; index < questions.length; index++) {
@@ -355,11 +346,13 @@ export class Inquirerer {
// obj is already either argv itself, or a clone, but let's check if it has the property
if (question.name in obj) {
+ this.handleOverrides(argv, obj, question);
ctx.nextQuestion();
continue;
}
-
+
// Apply default value if applicable
+ // this is if useDefault is set, rare! not typical defaults which happen AFTER
if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
continue; // Skip to the next question since the default is applied
@@ -384,6 +377,64 @@ export class Inquirerer {
return obj as T;
}
+ private handleMissingArgsError(options?: { usageText?: string; manPageInfo?: any }): void {
+ this.clearScreen();
+ if (options?.usageText) {
+ this.log(options.usageText);
+ } else if (options?.manPageInfo) {
+ this.log(this.generateManPage(options.manPageInfo));
+ } else {
+ this.log('Missing required arguments. Please provide all required parameters.');
+ }
+ }
+
+ private hasMissingRequiredArgs(questions: Question[], argv: any): boolean {
+ return questions.some(question => question.required && this.isEmptyAnswer(argv[question.name]));
+ }
+
+ private applyDefaultValues(questions: Question[], obj: any): void {
+ questions.forEach(question => {
+ if ('default' in question) {
+ obj[question.name] = question.default; // Set default value if specified
+ }
+ });
+ }
+
+ private applyOverrides(argv: any, obj: any, questions: Question[]): void {
+ questions.forEach(question => {
+ if (question.name in argv) {
+ this.handleOverrides(argv, obj, question);
+ }
+ });
+ }
+
+ private handleOverrides(argv: any, obj: any, question: Question): void {
+ switch (question.type) {
+ case 'text':
+ case 'confirm':
+ // do nothing, already set!
+ break;
+ case 'checkbox':
+ case 'autocomplete':
+ // get the value from options :)
+ this.handleOverridesWithOptions(argv, obj, question);
+ break;
+ default:
+ return;
+ }
+ }
+
+ private handleOverridesWithOptions(argv: any, obj: any, question: CheckboxQuestion | AutocompleteQuestion): void {
+ // obj is already either argv itself, or a clone, but let's check if it has the property
+ if (Object.prototype.hasOwnProperty.call(argv, question.name) && typeof argv[question.name] === 'string') {
+ const options = this.sanitizeOptions(question);
+ const found = options.find(option => option.name === argv[question.name]);
+ if (typeof found !== 'undefined') {
+ obj[question.name] = found.value;
+ }
+ }
+ }
+
private async handleQuestionType(question: Question, ctx: PromptContext): Promise {
switch (question.type) {
case 'confirm':
@@ -712,7 +763,7 @@ export class Inquirerer {
// Method to cleanly close the readline interface
// NOTE: use exit() to close!
- private close() {
+ public close() {
if (this.rl) {
this.rl.close();
this.keypress.destroy();
From b664b9a084200b70201447ebc3d37a15991e89c9 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 24 Apr 2024 00:03:18 -0700
Subject: [PATCH 076/124] chore(release): publish
- inquirerer@1.8.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 7fec5f2..027e88b 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.8.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.7.0...inquirerer@1.8.0) (2024-04-24)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.7.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.6.1...inquirerer@1.7.0) (2024-04-24)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 01dffa5..1ec308f 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.7.0",
+ "version": "1.8.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 8db8334b914f67b866c29b10c127323c9533ee8f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 30 Apr 2024 00:07:22 -0700
Subject: [PATCH 077/124] tty
---
packages/inquirerer/src/keypress.ts | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/packages/inquirerer/src/keypress.ts b/packages/inquirerer/src/keypress.ts
index 81be5c6..94440e1 100644
--- a/packages/inquirerer/src/keypress.ts
+++ b/packages/inquirerer/src/keypress.ts
@@ -37,9 +37,11 @@ export class TerminalKeypress {
this.noTty = noTty;
this.input = input;
this.proc = proc;
-
+
if (this.isTTY()) {
- (this.input as any).setRawMode(true);
+ if (typeof (this.input as any).setRawMode === 'function') {
+ (this.input as any).setRawMode(true);
+ }
this.input.resume();
this.input.setEncoding('utf8');
}
@@ -86,7 +88,9 @@ export class TerminalKeypress {
}
destroy(): void {
- (this.input as any).setRawMode(false);
+ if (typeof (this.input as any).setRawMode === 'function') {
+ (this.input as any).setRawMode(false);
+ }
this.input.pause();
this.input.removeAllListeners('data');
}
From 9cda01fdb660defddb159c9a6afee578e833e9c1 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 30 Apr 2024 00:07:29 -0700
Subject: [PATCH 078/124] chore(release): publish
- inquirerer@1.9.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 027e88b..0b94842 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [1.9.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.8.0...inquirerer@1.9.0) (2024-04-30)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.8.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.7.0...inquirerer@1.8.0) (2024-04-24)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 1ec308f..124a7ca 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.8.0",
+ "version": "1.9.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 4ebf0454ca6f1e21ca059fa7ec8977d606399560 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Thu, 8 May 2025 17:32:48 -0700
Subject: [PATCH 079/124] add number
---
packages/inquirerer/dev/dev.ts | 260 ++++++++++++++++++++++
packages/inquirerer/dev/index.ts | 217 +-----------------
packages/inquirerer/src/prompt.ts | 32 ++-
packages/inquirerer/src/question/types.ts | 7 +-
4 files changed, 304 insertions(+), 212 deletions(-)
create mode 100644 packages/inquirerer/dev/dev.ts
diff --git a/packages/inquirerer/dev/dev.ts b/packages/inquirerer/dev/dev.ts
new file mode 100644
index 0000000..7997e60
--- /dev/null
+++ b/packages/inquirerer/dev/dev.ts
@@ -0,0 +1,260 @@
+#!/usr/bin/env node
+import minimist from 'minimist';
+
+import { Inquirerer } from "../src";
+import { AutocompleteQuestion, ConfirmQuestion, Question } from '../src/question';
+import { displayVersion } from '../src/utils';
+
+const argv = minimist(process.argv.slice(2), {
+ alias: {
+ v: 'version'
+ }
+});
+
+if (!('tty' in argv)) {
+ argv.tty = true;
+}
+
+console.log(argv);
+
+if (argv.version) {
+ displayVersion();
+ process.exit(0);
+}
+
+const prompter = new Inquirerer({
+ noTty: !argv.tty
+});
+
+const main = async () => {
+ // const args = await prompter.prompt(argv, [
+ // {
+ // name: 'name'
+ // },
+ // {
+ // name: 'flower'
+ // }
+ // ]);
+
+ // const args2 = await prompter.checkbox({
+ // name: 'name',
+ // maxDisplayLines: 8,
+ // returnFullResults: false,
+ // required: true,
+ // options: [
+ // 'Apple', 'Apricot', 'Avocado',
+ // 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ // 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ // 'Date', 'Durian',
+ // 'Elderberry',
+ // 'Fig',
+ // 'Grape', 'Grapefruit', 'Guava',
+ // 'Honeydew',
+ // 'Kiwi', 'Kumquat',
+ // 'Lemon', 'Lime', 'Lychee',
+ // 'Mango', 'Melon', 'Mulberry',
+ // 'Nectarine',
+ // 'Orange',
+ // 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ // 'Quince',
+ // 'Raspberry', 'Redcurrant',
+ // 'Strawberry', 'Starfruit',
+ // 'Tangerine',
+ // 'Ugli Fruit',
+ // 'Vanilla',
+ // 'Watermelon',
+ // 'Xigua (Chinese Watermelon)',
+ // 'Yellow Plum',
+ // 'Zucchini'
+ // ]
+ // });
+
+ const regex: Question[] = [
+ {
+ name: 'email',
+ type: 'text',
+ message: 'Enter your email:',
+ pattern: '^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$',
+ required: true
+ },
+ {
+ name: 'website',
+ type: 'text',
+ message: 'Enter your website URL:',
+ pattern: '^(http|https)://[a-zA-Z0-9-\\.]+\\.[a-zA-Z]{2,5}(/[a-zA-Z0-9-._~:/?#[\\]@!$&\'()*+,;=]*)?$',
+ required: false
+ }
+ ];
+
+ const p = await prompter.prompt({}, regex);
+ console.log(p);
+
+ const question: Question = {
+ name: 'fruitSearch',
+ type: 'autocomplete',
+ maxDisplayLines: 15,
+ options: [
+ 'Apple', 'Apricot', 'Avocado',
+ 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ 'Date', 'Durian',
+ 'Elderberry',
+ 'Fig',
+ 'Grape', 'Grapefruit', 'Guava',
+ 'Honeydew',
+ 'Kiwi', 'Kumquat',
+ 'Lemon', 'Lime', 'Lychee',
+ 'Mango', 'Melon', 'Mulberry',
+ 'Nectarine',
+ 'Orange',
+ 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ 'Quince',
+ 'Raspberry', 'Redcurrant',
+ 'Strawberry', 'Starfruit',
+ 'Tangerine',
+ 'Ugli Fruit',
+ 'Vanilla',
+ 'Watermelon',
+ 'Xigua (Chinese Watermelon)',
+ 'Yellow Plum',
+ 'Zucchini'
+ ]
+
+ };
+ const args3 = await prompter.prompt({}, [question]);
+
+ // console.log(args);
+ // console.log(args2);
+ console.log(args3);
+
+
+ const massive = await prompter.prompt({}, [
+ question,
+ {
+ type: 'text',
+ name: 'first',
+ message: 'Enter your first name'
+ },
+ {
+ type: 'text',
+ name: 'last',
+ required: true,
+ message: 'Enter your last name'
+ },
+ // {
+ // ...question,
+ // name: 'autocomp',
+ // type: 'autocomplete',
+ // message: 'Enter your completion',
+ // },
+ // {
+ // ...question,
+ // name: 'this_is_NOT_required',
+ // type: 'checkbox',
+ // required: true
+ // },
+ // {
+ // ...question,
+ // name: 'this_is_required',
+ // type: 'checkbox',
+ // required: true
+ // },
+ // {
+ // name: 'searcher',
+ // type: 'autocomplete',
+ // options: [
+ // 'Apple', 'Apricot', 'Avocado',
+ // 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
+ // 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
+ // 'Date', 'Durian',
+ // 'Elderberry',
+ // 'Fig',
+ // 'Grape', 'Grapefruit', 'Guava',
+ // 'Honeydew',
+ // 'Kiwi', 'Kumquat',
+ // 'Lemon', 'Lime', 'Lychee',
+ // 'Mango', 'Melon', 'Mulberry',
+ // 'Nectarine',
+ // 'Orange',
+ // 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
+ // 'Quince',
+ // 'Raspberry', 'Redcurrant',
+ // 'Strawberry', 'Starfruit',
+ // 'Tangerine',
+ // 'Ugli Fruit',
+ // 'Vanilla',
+ // 'Watermelon',
+ // 'Xigua (Chinese Watermelon)',
+ // 'Yellow Plum',
+ // 'Zucchini'
+ // ]
+ // },
+ {
+ name: 'text',
+ type: 'text'
+ },
+ {
+ name: 'num',
+ type: 'number'
+ },
+ {
+ name: 'num2',
+ type: 'number',
+ default: 2
+ },
+ {
+ name: 'confirm',
+ type: 'confirm'
+ },
+ {
+ name: 'autocomplete',
+ type: 'autocomplete',
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
+ },
+ {
+ name: 'checkbox',
+ type: 'checkbox',
+ required: true,
+ options: [
+ { name: 'RApple', value: 'Fruit01' },
+ { name: 'RBanana', value: 'Fruit02' },
+ { name: 'RCherry', value: 'Fruit03' },
+ { name: 'RGrape', value: 'Fruit04' },
+ { name: 'RMango', value: 'Fruit05' }
+ ]
+ },
+ {
+ name: 'autocomplete2',
+ type: 'autocomplete',
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
+ },
+ {
+ name: 'checkbox2',
+ type: 'checkbox',
+ options: [
+ { name: 'Apple', value: 'Fruit01' },
+ { name: 'Banana', value: 'Fruit02' },
+ { name: 'Cherry', value: 'Fruit03' },
+ { name: 'Grape', value: 'Fruit04' },
+ { name: 'Mango', value: 'Fruit05' }
+ ]
+ }
+
+ ])
+ console.log(JSON.stringify(massive, null, 2))
+ prompter.close();
+};
+
+main();
\ No newline at end of file
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 542ed67..87843af 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -27,222 +27,19 @@ const prompter = new Inquirerer({
});
const main = async () => {
- // const args = await prompter.prompt(argv, [
- // {
- // name: 'name'
- // },
- // {
- // name: 'flower'
- // }
- // ]);
-
- // const args2 = await prompter.checkbox({
- // name: 'name',
- // maxDisplayLines: 8,
- // returnFullResults: false,
- // required: true,
- // options: [
- // 'Apple', 'Apricot', 'Avocado',
- // 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
- // 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
- // 'Date', 'Durian',
- // 'Elderberry',
- // 'Fig',
- // 'Grape', 'Grapefruit', 'Guava',
- // 'Honeydew',
- // 'Kiwi', 'Kumquat',
- // 'Lemon', 'Lime', 'Lychee',
- // 'Mango', 'Melon', 'Mulberry',
- // 'Nectarine',
- // 'Orange',
- // 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
- // 'Quince',
- // 'Raspberry', 'Redcurrant',
- // 'Strawberry', 'Starfruit',
- // 'Tangerine',
- // 'Ugli Fruit',
- // 'Vanilla',
- // 'Watermelon',
- // 'Xigua (Chinese Watermelon)',
- // 'Yellow Plum',
- // 'Zucchini'
- // ]
- // });
- const regex: Question[] = [
+ const massive = await prompter.prompt({
+ }, [
{
- name: 'email',
- type: 'text',
- message: 'Enter your email:',
- pattern: '^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$',
+ name: 'num',
+ type: 'number',
required: true
},
{
- name: 'website',
- type: 'text',
- message: 'Enter your website URL:',
- pattern: '^(http|https)://[a-zA-Z0-9-\\.]+\\.[a-zA-Z]{2,5}(/[a-zA-Z0-9-._~:/?#[\\]@!$&\'()*+,;=]*)?$',
- required: false
+ name: 'num2',
+ type: 'number',
+ default: 2
}
- ];
-
- const p = await prompter.prompt({}, regex);
- console.log(p);
-
- const question: Question = {
- name: 'fruitSearch',
- type: 'autocomplete',
- maxDisplayLines: 15,
- options: [
- 'Apple', 'Apricot', 'Avocado',
- 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
- 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
- 'Date', 'Durian',
- 'Elderberry',
- 'Fig',
- 'Grape', 'Grapefruit', 'Guava',
- 'Honeydew',
- 'Kiwi', 'Kumquat',
- 'Lemon', 'Lime', 'Lychee',
- 'Mango', 'Melon', 'Mulberry',
- 'Nectarine',
- 'Orange',
- 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
- 'Quince',
- 'Raspberry', 'Redcurrant',
- 'Strawberry', 'Starfruit',
- 'Tangerine',
- 'Ugli Fruit',
- 'Vanilla',
- 'Watermelon',
- 'Xigua (Chinese Watermelon)',
- 'Yellow Plum',
- 'Zucchini'
- ]
-
- };
- const args3 = await prompter.prompt({}, [question]);
-
- // console.log(args);
- // console.log(args2);
- console.log(args3);
-
-
- const massive = await prompter.prompt({}, [
- question,
- {
- type: 'text',
- name: 'first',
- message: 'Enter your first name'
- },
- {
- type: 'text',
- name: 'last',
- required: true,
- message: 'Enter your last name'
- },
- // {
- // ...question,
- // name: 'autocomp',
- // type: 'autocomplete',
- // message: 'Enter your completion',
- // },
- // {
- // ...question,
- // name: 'this_is_NOT_required',
- // type: 'checkbox',
- // required: true
- // },
- // {
- // ...question,
- // name: 'this_is_required',
- // type: 'checkbox',
- // required: true
- // },
- // {
- // name: 'searcher',
- // type: 'autocomplete',
- // options: [
- // 'Apple', 'Apricot', 'Avocado',
- // 'Banana', 'Blackberry', 'Blueberry', 'Boysenberry',
- // 'Cherry', 'Clementine', 'Coconut', 'Cranberry',
- // 'Date', 'Durian',
- // 'Elderberry',
- // 'Fig',
- // 'Grape', 'Grapefruit', 'Guava',
- // 'Honeydew',
- // 'Kiwi', 'Kumquat',
- // 'Lemon', 'Lime', 'Lychee',
- // 'Mango', 'Melon', 'Mulberry',
- // 'Nectarine',
- // 'Orange',
- // 'Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Plum', 'Pomegranate', 'Pomelo',
- // 'Quince',
- // 'Raspberry', 'Redcurrant',
- // 'Strawberry', 'Starfruit',
- // 'Tangerine',
- // 'Ugli Fruit',
- // 'Vanilla',
- // 'Watermelon',
- // 'Xigua (Chinese Watermelon)',
- // 'Yellow Plum',
- // 'Zucchini'
- // ]
- // },
- {
- name: 'text',
- type: 'text'
- },
- {
- name: 'confirm',
- type: 'confirm'
- },
- {
- name: 'autocomplete',
- type: 'autocomplete',
- options: [
- { name: 'Apple', value: 'Fruit01' },
- { name: 'Banana', value: 'Fruit02' },
- { name: 'Cherry', value: 'Fruit03' },
- { name: 'Grape', value: 'Fruit04' },
- { name: 'Mango', value: 'Fruit05' }
- ]
- },
- {
- name: 'checkbox',
- type: 'checkbox',
- required: true,
- options: [
- { name: 'RApple', value: 'Fruit01' },
- { name: 'RBanana', value: 'Fruit02' },
- { name: 'RCherry', value: 'Fruit03' },
- { name: 'RGrape', value: 'Fruit04' },
- { name: 'RMango', value: 'Fruit05' }
- ]
- },
- {
- name: 'autocomplete2',
- type: 'autocomplete',
- options: [
- { name: 'Apple', value: 'Fruit01' },
- { name: 'Banana', value: 'Fruit02' },
- { name: 'Cherry', value: 'Fruit03' },
- { name: 'Grape', value: 'Fruit04' },
- { name: 'Mango', value: 'Fruit05' }
- ]
- },
- {
- name: 'checkbox2',
- type: 'checkbox',
- options: [
- { name: 'Apple', value: 'Fruit01' },
- { name: 'Banana', value: 'Fruit02' },
- { name: 'Cherry', value: 'Fruit03' },
- { name: 'Grape', value: 'Fruit04' },
- { name: 'Mango', value: 'Fruit05' }
- ]
- }
-
])
console.log(JSON.stringify(massive, null, 2))
prompter.close();
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 3bc0339..b844164 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,7 +3,7 @@ import readline from 'readline';
import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
-import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
+import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, NumberQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
export interface ManPageInfo {
commandName: string;
@@ -443,6 +443,8 @@ export class Inquirerer {
return this.checkbox(question as CheckboxQuestion, ctx);
case 'autocomplete':
return this.autocomplete(question as AutocompleteQuestion, ctx);
+ case 'number':
+ return this.number(question as NumberQuestion, ctx);
case 'text':
default:
return this.text(question as TextQuestion, ctx);
@@ -491,6 +493,34 @@ export class Inquirerer {
});
}
+ public async number(question: NumberQuestion, ctx: PromptContext): Promise {
+ if (this.noTty || !this.rl) {
+ if ('default' in question) {
+ return question.default;
+ }
+ return;
+ }
+
+ let input = '';
+
+ return new Promise((resolve) => {
+ this.clearScreen();
+ this.rl.question(this.getPrompt(question, ctx, input), (answer) => {
+ input = answer.trim();
+ if (input !== '') {
+ const num = Number(input);
+ if (!isNaN(num)) {
+ resolve(num);
+ } else {
+ resolve(null);
+ }
+ } else {
+ resolve(null);
+ }
+ });
+ });
+ }
+
public async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index 9a18cbd..d1207ad 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -51,5 +51,10 @@ export interface BaseQuestion {
type: 'text';
default?: string;
}
+
+ export interface NumberQuestion extends BaseQuestion {
+ type: 'number';
+ default?: number;
+ }
- export type Question = ConfirmQuestion | AutocompleteQuestion | CheckboxQuestion | TextQuestion;
\ No newline at end of file
+ export type Question = ConfirmQuestion | AutocompleteQuestion | CheckboxQuestion | TextQuestion | NumberQuestion;
\ No newline at end of file
From fb3f16910cce8211b4c666b106a911785a739294 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Thu, 8 May 2025 17:36:30 -0700
Subject: [PATCH 080/124] lerna
---
package.json | 2 +-
yarn.lock | 2586 ++++++++++++++++++++------------------------------
2 files changed, 1048 insertions(+), 1540 deletions(-)
diff --git a/package.json b/package.json
index d07b3f7..d254049 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-unused-imports": "^3.0.0",
"jest": "^29.6.2",
- "lerna": "^6",
+ "lerna": "^8.2.2",
"prettier": "^3.0.2",
"strip-ansi": "^6",
"symlink-workspace": "^1.1.0",
diff --git a/yarn.lock b/yarn.lock
index 57ac480..b32c108 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -310,6 +310,28 @@
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
+"@emnapi/core@^1.1.0":
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.4.3.tgz#9ac52d2d5aea958f67e52c40a065f51de59b77d6"
+ integrity sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==
+ dependencies:
+ "@emnapi/wasi-threads" "1.0.2"
+ tslib "^2.4.0"
+
+"@emnapi/runtime@^1.1.0":
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d"
+ integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==
+ dependencies:
+ tslib "^2.4.0"
+
+"@emnapi/wasi-threads@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz#977f44f844eac7d6c138a415a123818c655f874c"
+ integrity sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==
+ dependencies:
+ tslib "^2.4.0"
+
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
@@ -342,11 +364,6 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
-"@gar/promisify@^1.1.3":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
- integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
-
"@humanwhocodes/config-array@^0.11.14":
version "0.11.14"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
@@ -527,7 +544,7 @@
strip-ansi "^6.0.0"
v8-to-istanbul "^9.0.1"
-"@jest/schemas@^29.4.3", "@jest/schemas@^29.6.3":
+"@jest/schemas@^29.6.3":
version "29.6.3"
resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
@@ -636,101 +653,90 @@
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
-"@lerna/child-process@6.6.2":
- version "6.6.2"
- resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-6.6.2.tgz#5d803c8dee81a4e013dc428292e77b365cba876c"
- integrity sha512-QyKIWEnKQFnYu2ey+SAAm1A5xjzJLJJj3bhIZd3QKyXKKjaJ0hlxam/OsWSltxTNbcyH1jRJjC6Cxv31usv0Ag==
+"@lerna/create@8.2.2":
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/@lerna/create/-/create-8.2.2.tgz#4c62f57eb74d335f908132dcc01828e53e6515bd"
+ integrity sha512-1yn1MvWn2Yz0SFgTTQnef2m1YedF7KwqLLVIOrGkgQrkVHzsveAIk1A1RcRa2yyUh+siKI1YcJ7lUZIEt+qQ3Q==
dependencies:
- chalk "^4.1.0"
- execa "^5.0.0"
- strong-log-transformer "^2.1.0"
-
-"@lerna/create@6.6.2":
- version "6.6.2"
- resolved "https://registry.yarnpkg.com/@lerna/create/-/create-6.6.2.tgz#39a36d80cddb355340c297ed785aa76f4498177f"
- integrity sha512-xQ+1Y7D+9etvUlE+unhG/TwmM6XBzGIdFBaNoW8D8kyOa9M2Jf3vdEtAxVa7mhRz66CENfhL/+I/QkVaa7pwbQ==
- dependencies:
- "@lerna/child-process" "6.6.2"
- dedent "^0.7.0"
- fs-extra "^9.1.0"
- init-package-json "^3.0.2"
- npm-package-arg "8.1.1"
- p-reduce "^2.1.0"
- pacote "15.1.1"
- pify "^5.0.0"
- semver "^7.3.4"
- slash "^3.0.0"
- validate-npm-package-license "^3.0.4"
- validate-npm-package-name "^4.0.0"
- yargs-parser "20.2.4"
-
-"@lerna/legacy-package-management@6.6.2":
- version "6.6.2"
- resolved "https://registry.yarnpkg.com/@lerna/legacy-package-management/-/legacy-package-management-6.6.2.tgz#411c395e72e563ab98f255df77e4068627a85bb0"
- integrity sha512-0hZxUPKnHwehUO2xC4ldtdX9bW0W1UosxebDIQlZL2STnZnA2IFmIk2lJVUyFW+cmTPQzV93jfS0i69T9Z+teg==
- dependencies:
- "@npmcli/arborist" "6.2.3"
- "@npmcli/run-script" "4.1.7"
- "@nrwl/devkit" ">=15.5.2 < 16"
- "@octokit/rest" "19.0.3"
- byte-size "7.0.0"
+ "@npmcli/arborist" "7.5.4"
+ "@npmcli/package-json" "5.2.0"
+ "@npmcli/run-script" "8.1.0"
+ "@nx/devkit" ">=17.1.2 < 21"
+ "@octokit/plugin-enterprise-rest" "6.0.1"
+ "@octokit/rest" "20.1.2"
+ aproba "2.0.0"
+ byte-size "8.1.1"
chalk "4.1.0"
clone-deep "4.0.1"
- cmd-shim "5.0.0"
+ cmd-shim "6.0.3"
+ color-support "1.1.3"
columnify "1.6.0"
- config-chain "1.1.12"
- conventional-changelog-core "4.2.4"
- conventional-recommended-bump "6.1.0"
- cosmiconfig "7.0.0"
- dedent "0.7.0"
- dot-prop "6.0.1"
+ console-control-strings "^1.1.0"
+ conventional-changelog-core "5.0.1"
+ conventional-recommended-bump "7.0.1"
+ cosmiconfig "9.0.0"
+ dedent "1.5.3"
execa "5.0.0"
- file-url "3.0.0"
- find-up "5.0.0"
- fs-extra "9.1.0"
- get-port "5.1.1"
+ fs-extra "^11.2.0"
get-stream "6.0.0"
- git-url-parse "13.1.0"
- glob-parent "5.1.2"
+ git-url-parse "14.0.0"
+ glob-parent "6.0.2"
globby "11.1.0"
- graceful-fs "4.2.10"
+ graceful-fs "4.2.11"
has-unicode "2.0.1"
- inquirer "8.2.4"
- is-ci "2.0.0"
+ ini "^1.3.8"
+ init-package-json "6.0.3"
+ inquirer "^8.2.4"
+ is-ci "3.0.1"
is-stream "2.0.0"
- libnpmpublish "7.1.4"
+ js-yaml "4.1.0"
+ libnpmpublish "9.0.9"
load-json-file "6.2.0"
- make-dir "3.1.0"
+ lodash "^4.17.21"
+ make-dir "4.0.0"
minimatch "3.0.5"
multimatch "5.0.0"
node-fetch "2.6.7"
- npm-package-arg "8.1.1"
- npm-packlist "5.1.1"
- npm-registry-fetch "14.0.3"
- npmlog "6.0.2"
+ npm-package-arg "11.0.2"
+ npm-packlist "8.0.2"
+ npm-registry-fetch "^17.1.0"
+ nx ">=17.1.2 < 21"
p-map "4.0.0"
p-map-series "2.1.0"
p-queue "6.6.2"
- p-waterfall "2.1.1"
- pacote "15.1.1"
+ p-reduce "^2.1.0"
+ pacote "^18.0.6"
pify "5.0.0"
- pretty-format "29.4.3"
- read-cmd-shim "3.0.0"
- read-package-json "5.0.1"
+ read-cmd-shim "4.0.0"
resolve-from "5.0.0"
- semver "7.3.8"
+ rimraf "^4.4.1"
+ semver "^7.3.4"
+ set-blocking "^2.0.0"
signal-exit "3.0.7"
- slash "3.0.0"
- ssri "9.0.1"
+ slash "^3.0.0"
+ ssri "^10.0.6"
+ string-width "^4.2.3"
strong-log-transformer "2.1.0"
- tar "6.1.11"
+ tar "6.2.1"
temp-dir "1.0.0"
- tempy "1.0.0"
upath "2.0.1"
- uuid "8.3.2"
- write-file-atomic "4.0.1"
+ uuid "^10.0.0"
+ validate-npm-package-license "^3.0.4"
+ validate-npm-package-name "5.0.1"
+ wide-align "1.1.5"
+ write-file-atomic "5.0.1"
write-pkg "4.0.0"
- yargs "16.2.0"
+ yargs "17.7.2"
+ yargs-parser "21.1.1"
+
+"@napi-rs/wasm-runtime@0.2.4":
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz#d27788176f250d86e498081e3c5ff48a17606918"
+ integrity sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==
+ dependencies:
+ "@emnapi/core" "^1.1.0"
+ "@emnapi/runtime" "^1.1.0"
+ "@tybys/wasm-util" "^0.9.0"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -753,52 +759,57 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@npmcli/arborist@6.2.3":
- version "6.2.3"
- resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-6.2.3.tgz#31f8aed2588341864d3811151d929c01308f8e71"
- integrity sha512-lpGOC2ilSJXcc2zfW9QtukcCTcMbl3fVI0z4wvFB2AFIl0C+Q6Wv7ccrpdrQa8rvJ1ZVuc6qkX7HVTyKlzGqKA==
+"@npmcli/agent@^2.0.0":
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5"
+ integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==
+ dependencies:
+ agent-base "^7.1.0"
+ http-proxy-agent "^7.0.0"
+ https-proxy-agent "^7.0.1"
+ lru-cache "^10.0.1"
+ socks-proxy-agent "^8.0.3"
+
+"@npmcli/arborist@7.5.4":
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.5.4.tgz#3dd9e531d6464ef6715e964c188e0880c471ac9b"
+ integrity sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==
dependencies:
"@isaacs/string-locale-compare" "^1.1.0"
- "@npmcli/fs" "^3.1.0"
- "@npmcli/installed-package-contents" "^2.0.0"
+ "@npmcli/fs" "^3.1.1"
+ "@npmcli/installed-package-contents" "^2.1.0"
"@npmcli/map-workspaces" "^3.0.2"
- "@npmcli/metavuln-calculator" "^5.0.0"
+ "@npmcli/metavuln-calculator" "^7.1.1"
"@npmcli/name-from-folder" "^2.0.0"
"@npmcli/node-gyp" "^3.0.0"
- "@npmcli/package-json" "^3.0.0"
- "@npmcli/query" "^3.0.0"
- "@npmcli/run-script" "^6.0.0"
- bin-links "^4.0.1"
- cacache "^17.0.4"
+ "@npmcli/package-json" "^5.1.0"
+ "@npmcli/query" "^3.1.0"
+ "@npmcli/redact" "^2.0.0"
+ "@npmcli/run-script" "^8.1.0"
+ bin-links "^4.0.4"
+ cacache "^18.0.3"
common-ancestor-path "^1.0.1"
- hosted-git-info "^6.1.1"
- json-parse-even-better-errors "^3.0.0"
+ hosted-git-info "^7.0.2"
+ json-parse-even-better-errors "^3.0.2"
json-stringify-nice "^1.1.4"
- minimatch "^6.1.6"
- nopt "^7.0.0"
- npm-install-checks "^6.0.0"
- npm-package-arg "^10.1.0"
- npm-pick-manifest "^8.0.1"
- npm-registry-fetch "^14.0.3"
- npmlog "^7.0.1"
- pacote "^15.0.8"
+ lru-cache "^10.2.2"
+ minimatch "^9.0.4"
+ nopt "^7.2.1"
+ npm-install-checks "^6.2.0"
+ npm-package-arg "^11.0.2"
+ npm-pick-manifest "^9.0.1"
+ npm-registry-fetch "^17.0.1"
+ pacote "^18.0.6"
parse-conflict-json "^3.0.0"
- proc-log "^3.0.0"
+ proc-log "^4.2.0"
+ proggy "^2.0.0"
promise-all-reject-late "^1.0.0"
- promise-call-limit "^1.0.1"
+ promise-call-limit "^3.0.1"
read-package-json-fast "^3.0.2"
semver "^7.3.7"
- ssri "^10.0.1"
+ ssri "^10.0.6"
treeverse "^3.0.0"
- walk-up-path "^1.0.0"
-
-"@npmcli/fs@^2.1.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865"
- integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==
- dependencies:
- "@gar/promisify" "^1.1.3"
- semver "^7.3.5"
+ walk-up-path "^3.0.1"
"@npmcli/fs@^3.1.0":
version "3.1.0"
@@ -807,21 +818,29 @@
dependencies:
semver "^7.3.5"
-"@npmcli/git@^4.0.0", "@npmcli/git@^4.1.0":
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6"
- integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==
+"@npmcli/fs@^3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726"
+ integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==
dependencies:
- "@npmcli/promise-spawn" "^6.0.0"
- lru-cache "^7.4.4"
- npm-pick-manifest "^8.0.0"
- proc-log "^3.0.0"
+ semver "^7.3.5"
+
+"@npmcli/git@^5.0.0":
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1"
+ integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==
+ dependencies:
+ "@npmcli/promise-spawn" "^7.0.0"
+ ini "^4.1.3"
+ lru-cache "^10.0.1"
+ npm-pick-manifest "^9.0.0"
+ proc-log "^4.0.0"
promise-inflight "^1.0.1"
promise-retry "^2.0.1"
semver "^7.3.5"
- which "^3.0.0"
+ which "^4.0.0"
-"@npmcli/installed-package-contents@^2.0.0", "@npmcli/installed-package-contents@^2.0.1":
+"@npmcli/installed-package-contents@^2.0.1":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33"
integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==
@@ -829,6 +848,14 @@
npm-bundled "^3.0.0"
npm-normalize-package-bin "^3.0.0"
+"@npmcli/installed-package-contents@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz#63048e5f6e40947a3a88dcbcb4fd9b76fdd37c17"
+ integrity sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==
+ dependencies:
+ npm-bundled "^3.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
"@npmcli/map-workspaces@^3.0.2":
version "3.0.6"
resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6"
@@ -839,333 +866,298 @@
minimatch "^9.0.0"
read-package-json-fast "^3.0.0"
-"@npmcli/metavuln-calculator@^5.0.0":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-5.0.1.tgz#426b3e524c2008bcc82dbc2ef390aefedd643d76"
- integrity sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q==
+"@npmcli/metavuln-calculator@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz#4d3b6c3192f72bc8ad59476de0da939c33877fcf"
+ integrity sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==
dependencies:
- cacache "^17.0.0"
+ cacache "^18.0.0"
json-parse-even-better-errors "^3.0.0"
- pacote "^15.0.0"
+ pacote "^18.0.0"
+ proc-log "^4.1.0"
semver "^7.3.5"
-"@npmcli/move-file@^2.0.0":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4"
- integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==
- dependencies:
- mkdirp "^1.0.4"
- rimraf "^3.0.2"
-
"@npmcli/name-from-folder@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815"
integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==
-"@npmcli/node-gyp@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35"
- integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==
-
"@npmcli/node-gyp@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a"
integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==
-"@npmcli/package-json@^3.0.0":
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-3.1.1.tgz#5628332aac90fa1b4d6f98e03988c5958b35e0c5"
- integrity sha512-+UW0UWOYFKCkvszLoTwrYGrjNrT8tI5Ckeb/h+Z1y1fsNJEctl7HmerA5j2FgmoqFaLI2gsA1X9KgMFqx/bRmA==
+"@npmcli/package-json@5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.0.tgz#a1429d3111c10044c7efbfb0fce9f2c501f4cfad"
+ integrity sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==
dependencies:
- "@npmcli/git" "^4.1.0"
+ "@npmcli/git" "^5.0.0"
glob "^10.2.2"
+ hosted-git-info "^7.0.0"
json-parse-even-better-errors "^3.0.0"
- normalize-package-data "^5.0.0"
- npm-normalize-package-bin "^3.0.1"
- proc-log "^3.0.0"
+ normalize-package-data "^6.0.0"
+ proc-log "^4.0.0"
+ semver "^7.5.3"
-"@npmcli/promise-spawn@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573"
- integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==
+"@npmcli/package-json@^5.0.0", "@npmcli/package-json@^5.1.0":
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.1.tgz#df69477b1023b81ff8503f2b9db4db4faea567ed"
+ integrity sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==
dependencies:
- infer-owner "^1.0.4"
+ "@npmcli/git" "^5.0.0"
+ glob "^10.2.2"
+ hosted-git-info "^7.0.0"
+ json-parse-even-better-errors "^3.0.0"
+ normalize-package-data "^6.0.0"
+ proc-log "^4.0.0"
+ semver "^7.5.3"
-"@npmcli/promise-spawn@^6.0.0", "@npmcli/promise-spawn@^6.0.1":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2"
- integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==
+"@npmcli/promise-spawn@^7.0.0":
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532"
+ integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==
dependencies:
- which "^3.0.0"
+ which "^4.0.0"
-"@npmcli/query@^3.0.0":
+"@npmcli/query@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.1.0.tgz#bc202c59e122a06cf8acab91c795edda2cdad42c"
integrity sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==
dependencies:
postcss-selector-parser "^6.0.10"
-"@npmcli/run-script@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.1.7.tgz#b1a2f57568eb738e45e9ea3123fb054b400a86f7"
- integrity sha512-WXr/MyM4tpKA4BotB81NccGAv8B48lNH0gRoILucbcAhTQXLCoi6HflMV3KdXubIqvP9SuLsFn68Z7r4jl+ppw==
- dependencies:
- "@npmcli/node-gyp" "^2.0.0"
- "@npmcli/promise-spawn" "^3.0.0"
- node-gyp "^9.0.0"
- read-package-json-fast "^2.0.3"
- which "^2.0.2"
+"@npmcli/redact@^2.0.0":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-2.0.1.tgz#95432fd566e63b35c04494621767a4312c316762"
+ integrity sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==
-"@npmcli/run-script@^6.0.0":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885"
- integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==
+"@npmcli/run-script@8.1.0", "@npmcli/run-script@^8.0.0", "@npmcli/run-script@^8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-8.1.0.tgz#a563e5e29b1ca4e648a6b1bbbfe7220b4bfe39fc"
+ integrity sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==
dependencies:
"@npmcli/node-gyp" "^3.0.0"
- "@npmcli/promise-spawn" "^6.0.0"
- node-gyp "^9.0.0"
- read-package-json-fast "^3.0.0"
- which "^3.0.0"
-
-"@nrwl/cli@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.9.7.tgz#1db113f5cb1cfe63213097be1ece041eef33da1f"
- integrity sha512-1jtHBDuJzA57My5nLzYiM372mJW0NY6rFKxlWt5a0RLsAZdPTHsd8lE3Gs9XinGC1jhXbruWmhhnKyYtZvX/zA==
- dependencies:
- nx "15.9.7"
+ "@npmcli/package-json" "^5.0.0"
+ "@npmcli/promise-spawn" "^7.0.0"
+ node-gyp "^10.0.0"
+ proc-log "^4.0.0"
+ which "^4.0.0"
-"@nrwl/devkit@>=15.5.2 < 16":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.9.7.tgz#14d19ec82ff4209c12147a97f1cdea05d8f6c087"
- integrity sha512-Sb7Am2TMT8AVq8e+vxOlk3AtOA2M0qCmhBzoM1OJbdHaPKc0g0UgSnWRml1kPGg5qfPk72tWclLoZJ5/ut0vTg==
+"@nx/devkit@>=17.1.2 < 21":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-20.8.1.tgz#774f13d5af78f27306bb74391056f0fe6dda3eae"
+ integrity sha512-N3nwIg/7RIZeB76iuVo29q+l9WyTtvuBSgDFM2msiIK6Q928ilzoeNPZ/p7w/TE3Gqs5XVhq9ExMvDAOTxdmXA==
dependencies:
ejs "^3.1.7"
+ enquirer "~2.3.6"
ignore "^5.0.4"
- semver "7.5.4"
+ minimatch "9.0.3"
+ semver "^7.5.3"
tmp "~0.2.1"
tslib "^2.3.0"
+ yargs-parser "21.1.1"
-"@nrwl/nx-darwin-arm64@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.7.tgz#a2cb7390c782b8acf3bb8806a3002620226a933d"
- integrity sha512-aBUgnhlkrgC0vu0fK6eb9Vob7eFnkuknrK+YzTjmLrrZwj7FGNAeyGXSlyo1dVokIzjVKjJg2saZZ0WQbfuCJw==
-
-"@nrwl/nx-darwin-x64@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.7.tgz#af0437e726aeb97eb660646bfd9a7da5ba7a0a6f"
- integrity sha512-L+elVa34jhGf1cmn38Z0sotQatmLovxoASCIw5r1CBZZeJ5Tg7Y9nOwjRiDixZxNN56hPKXm6xl9EKlVHVeKlg==
-
-"@nrwl/nx-linux-arm-gnueabihf@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.7.tgz#e29f4d31afa903bfb4d0fd7421e19be1086eae87"
- integrity sha512-pqmfqqEUGFu6PmmHKyXyUw1Al0Ki8PSaR0+ndgCAb1qrekVDGDfznJfaqxN0JSLeolPD6+PFtLyXNr9ZyPFlFg==
-
-"@nrwl/nx-linux-arm64-gnu@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.7.tgz#eb2880a24d3268dd93583d21a6a0b9ff96bb23b4"
- integrity sha512-NYOa/eRrqmM+In5g3M0rrPVIS9Z+q6fvwXJYf/KrjOHqqan/KL+2TOfroA30UhcBrwghZvib7O++7gZ2hzwOnA==
-
-"@nrwl/nx-linux-arm64-musl@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.7.tgz#5d04913c4672a96cefa78491824620d8a8bcfd7f"
- integrity sha512-zyStqjEcmbvLbejdTOrLUSEdhnxNtdQXlmOuymznCzYUEGRv+4f7OAepD3yRoR0a/57SSORZmmGQB7XHZoYZJA==
-
-"@nrwl/nx-linux-x64-gnu@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.7.tgz#cf7f61fd87f35a793e6824952a6eb12242fe43fd"
- integrity sha512-saNK5i2A8pKO3Il+Ejk/KStTApUpWgCxjeUz9G+T8A+QHeDloZYH2c7pU/P3jA9QoNeKwjVO9wYQllPL9loeVg==
-
-"@nrwl/nx-linux-x64-musl@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.7.tgz#2bec23c3696780540eb47fa1358dda780c84697f"
- integrity sha512-extIUThYN94m4Vj4iZggt6hhMZWQSukBCo8pp91JHnDcryBg7SnYmnikwtY1ZAFyyRiNFBLCKNIDFGkKkSrZ9Q==
-
-"@nrwl/nx-win32-arm64-msvc@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.7.tgz#21b56ef3ab4190370effea71bd83fdc3e47ec69c"
- integrity sha512-GSQ54hJ5AAnKZb4KP4cmBnJ1oC4ILxnrG1mekxeM65c1RtWg9NpBwZ8E0gU3xNrTv8ZNsBeKi/9UhXBxhsIh8A==
-
-"@nrwl/nx-win32-x64-msvc@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.7.tgz#1677ab1dcce921706b5677dc2844e3e0027f8bd5"
- integrity sha512-x6URof79RPd8AlapVbPefUD3ynJZpmah3tYaYZ9xZRMXojVtEHV8Qh5vysKXQ1rNYJiiB8Ah6evSKWLbAH60tw==
-
-"@nrwl/tao@15.9.7":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.9.7.tgz#c0e78c99caa6742762f7558f20d8524bc9015e97"
- integrity sha512-OBnHNvQf3vBH0qh9YnvBQQWyyFZ+PWguF6dJ8+1vyQYlrLVk/XZ8nJ4ukWFb+QfPv/O8VBmqaofaOI9aFC4yTw==
- dependencies:
- nx "15.9.7"
-
-"@octokit/auth-token@^3.0.0":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db"
- integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==
-
-"@octokit/core@^4.0.0":
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907"
- integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==
- dependencies:
- "@octokit/auth-token" "^3.0.0"
- "@octokit/graphql" "^5.0.0"
- "@octokit/request" "^6.0.0"
- "@octokit/request-error" "^3.0.0"
- "@octokit/types" "^9.0.0"
+"@nx/nx-darwin-arm64@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.8.1.tgz#ba095d216cef43f2e0e8fb2bced46cd020393a50"
+ integrity sha512-Gat4Io66cV70Oa1CjrMJPsEx5ICpAGayv9hejOtBUEDb6XjR12L2e4wV+4EHliF0UbEcuZAr8/lTROEPk0RGWQ==
+
+"@nx/nx-darwin-x64@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-20.8.1.tgz#45da64b919e2468190a9a0a06e12c1d38e247603"
+ integrity sha512-TB9mZk7neGFKgBr2wSBgY6c4kFF9vvChNSp3TrEeXR3FppFcYG5eK4AaKfzWCpYb0wMtseAm7NMX1Lu74utClQ==
+
+"@nx/nx-freebsd-x64@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.8.1.tgz#c503b5eb3c775b870442c4a32e6ab776b588897a"
+ integrity sha512-7UQu0/Afna5Af2GagEQ6rbKfUh75NfUn+g66wsoQoUGBvDW0U7B8P3Ph5Bk4Urub0BSfMVcNg2X7CgfypLFN/g==
+
+"@nx/nx-linux-arm-gnueabihf@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.8.1.tgz#42ba75149d235a75444a4e8554040874c10fcc5d"
+ integrity sha512-Tjh8JkTP+x1jSrzx+ofx1pKpkhIbXd7bi0bPdpYt6NI1lZz2HB/dv8vtdzP80jXEDztHf0AeGnEJVgJKsgI6yg==
+
+"@nx/nx-linux-arm64-gnu@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.8.1.tgz#c03a998a298dcf99d8a89cfd7b8b1c1c03bcc517"
+ integrity sha512-2+qPIwav2vrytH6pe7fukBe8+yN5JGbEDCnDO8wKQsHeeZMLAQJiZ7EJH/+vynRkI7oWf87mihIKNQME19+w6A==
+
+"@nx/nx-linux-arm64-musl@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.8.1.tgz#5df32db201a09ce9b8f9abc2827cb2708452d66d"
+ integrity sha512-DsKc+DiMsuHqpBWchUUUg6zv4OaexRqpFXys6auZlrpFpn80kSqLQ3S4zZ5AUu+26wxZqEVJs+uxHGwFbhEssQ==
+
+"@nx/nx-linux-x64-gnu@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.8.1.tgz#1aaac2d4fe567d2b8d542ded2e1e514fc5ea0f94"
+ integrity sha512-Kzru44beVKAmSG84ShuMIIfyu2Uu5r8gsHdtiQPBIOGkZa0Z/e6YtUxcN3w1UZ7yvvzoQ4pQLvqU6UZRSWZtEg==
+
+"@nx/nx-linux-x64-musl@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.8.1.tgz#5b68cc655048f8c7fa365d6eef7c0b3add96db1d"
+ integrity sha512-cSVVb7DVMhrxCaj/n55okBZS6lZoP5a5vynOBGIV4z3/OJLev+xI9A+3imn/aXnBl8iS69HogYyrW0YTXv4Xaw==
+
+"@nx/nx-win32-arm64-msvc@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.8.1.tgz#4644f1f1cbce83c0c23efa1c1d624d70f0fc1474"
+ integrity sha512-gte5HcvI24CN6b9I6IYTXh/A0CtRfnlAFaJomPpfT8Wcq637aOZzS0arAEZVoU8QZty1350hj6sfu+wSIjoP7A==
+
+"@nx/nx-win32-x64-msvc@20.8.1":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.8.1.tgz#e96da173984a5b28093b4b1b4c74568223f54e48"
+ integrity sha512-6c2fVEPdPwJdnRbckBatRDF/g6JAp6p3Mfl90DpuaEF2DZC5pmCXKOsXE0aSIZ+gODom2JIchM++2KmDZPJUoA==
+
+"@octokit/auth-token@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7"
+ integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==
+
+"@octokit/core@^5.0.2":
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.1.tgz#58c21a5f689ee81e0b883b5aa77573a7ff1b4ea1"
+ integrity sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==
+ dependencies:
+ "@octokit/auth-token" "^4.0.0"
+ "@octokit/graphql" "^7.1.0"
+ "@octokit/request" "^8.4.1"
+ "@octokit/request-error" "^5.1.1"
+ "@octokit/types" "^13.0.0"
before-after-hook "^2.2.0"
universal-user-agent "^6.0.0"
-"@octokit/endpoint@^7.0.0":
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2"
- integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==
+"@octokit/endpoint@^9.0.6":
+ version "9.0.6"
+ resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.6.tgz#114d912108fe692d8b139cfe7fc0846dfd11b6c0"
+ integrity sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==
dependencies:
- "@octokit/types" "^9.0.0"
- is-plain-object "^5.0.0"
+ "@octokit/types" "^13.1.0"
universal-user-agent "^6.0.0"
-"@octokit/graphql@^5.0.0":
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248"
- integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==
+"@octokit/graphql@^7.1.0":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.1.tgz#79d9f3d0c96a8fd13d64186fe5c33606d48b79cc"
+ integrity sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==
dependencies:
- "@octokit/request" "^6.0.0"
- "@octokit/types" "^9.0.0"
+ "@octokit/request" "^8.4.1"
+ "@octokit/types" "^13.0.0"
universal-user-agent "^6.0.0"
-"@octokit/openapi-types@^12.11.0":
- version "12.11.0"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
- integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
-
-"@octokit/openapi-types@^14.0.0":
- version "14.0.0"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a"
- integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==
-
-"@octokit/openapi-types@^18.0.0":
- version "18.1.1"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009"
- integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==
+"@octokit/openapi-types@^24.2.0":
+ version "24.2.0"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-24.2.0.tgz#3d55c32eac0d38da1a7083a9c3b0cca77924f7d3"
+ integrity sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==
"@octokit/plugin-enterprise-rest@6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437"
integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==
-"@octokit/plugin-paginate-rest@^3.0.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.1.0.tgz#86f8be759ce2d6d7c879a31490fd2f7410b731f0"
- integrity sha512-+cfc40pMzWcLkoDcLb1KXqjX0jTGYXjKuQdFQDc6UAknISJHnZTiBqld6HDwRJvD4DsouDKrWXNbNV0lE/3AXA==
+"@octokit/plugin-paginate-rest@11.4.4-cjs.2":
+ version "11.4.4-cjs.2"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz#979a10d577bce7a393e8e65953887e42b0a05000"
+ integrity sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==
dependencies:
- "@octokit/types" "^6.41.0"
+ "@octokit/types" "^13.7.0"
-"@octokit/plugin-request-log@^1.0.4":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"
- integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==
+"@octokit/plugin-request-log@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz#98a3ca96e0b107380664708111864cb96551f958"
+ integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==
-"@octokit/plugin-rest-endpoint-methods@^6.0.0":
- version "6.8.1"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.8.1.tgz#97391fda88949eb15f68dc291957ccbe1d3e8ad1"
- integrity sha512-QrlaTm8Lyc/TbU7BL/8bO49vp+RZ6W3McxxmmQTgYxf2sWkO8ZKuj4dLhPNJD6VCUW1hetCmeIM0m6FTVpDiEg==
+"@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1":
+ version "13.3.2-cjs.1"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz#d0a142ff41d8f7892b6ccef45979049f51ecaa8d"
+ integrity sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==
dependencies:
- "@octokit/types" "^8.1.1"
- deprecation "^2.3.1"
+ "@octokit/types" "^13.8.0"
-"@octokit/request-error@^3.0.0":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69"
- integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==
+"@octokit/request-error@^5.1.1":
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.1.tgz#b9218f9c1166e68bb4d0c89b638edc62c9334805"
+ integrity sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==
dependencies:
- "@octokit/types" "^9.0.0"
+ "@octokit/types" "^13.1.0"
deprecation "^2.0.0"
once "^1.4.0"
-"@octokit/request@^6.0.0":
- version "6.2.8"
- resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb"
- integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==
+"@octokit/request@^8.4.1":
+ version "8.4.1"
+ resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.1.tgz#715a015ccf993087977ea4365c44791fc4572486"
+ integrity sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==
dependencies:
- "@octokit/endpoint" "^7.0.0"
- "@octokit/request-error" "^3.0.0"
- "@octokit/types" "^9.0.0"
- is-plain-object "^5.0.0"
- node-fetch "^2.6.7"
+ "@octokit/endpoint" "^9.0.6"
+ "@octokit/request-error" "^5.1.1"
+ "@octokit/types" "^13.1.0"
universal-user-agent "^6.0.0"
-"@octokit/rest@19.0.3":
- version "19.0.3"
- resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02"
- integrity sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==
+"@octokit/rest@20.1.2":
+ version "20.1.2"
+ resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.1.2.tgz#1d74d0c72ade0d64f7c5416448d5c885f5e3ccc4"
+ integrity sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==
dependencies:
- "@octokit/core" "^4.0.0"
- "@octokit/plugin-paginate-rest" "^3.0.0"
- "@octokit/plugin-request-log" "^1.0.4"
- "@octokit/plugin-rest-endpoint-methods" "^6.0.0"
+ "@octokit/core" "^5.0.2"
+ "@octokit/plugin-paginate-rest" "11.4.4-cjs.2"
+ "@octokit/plugin-request-log" "^4.0.0"
+ "@octokit/plugin-rest-endpoint-methods" "13.3.2-cjs.1"
-"@octokit/types@^6.41.0":
- version "6.41.0"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
- integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
+"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.7.0", "@octokit/types@^13.8.0":
+ version "13.10.0"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.10.0.tgz#3e7c6b19c0236c270656e4ea666148c2b51fd1a3"
+ integrity sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==
dependencies:
- "@octokit/openapi-types" "^12.11.0"
-
-"@octokit/types@^8.1.1":
- version "8.2.1"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.2.1.tgz#a6de091ae68b5541f8d4fcf9a12e32836d4648aa"
- integrity sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw==
- dependencies:
- "@octokit/openapi-types" "^14.0.0"
-
-"@octokit/types@^9.0.0":
- version "9.3.2"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5"
- integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==
- dependencies:
- "@octokit/openapi-types" "^18.0.0"
-
-"@parcel/watcher@2.0.4":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b"
- integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==
- dependencies:
- node-addon-api "^3.2.1"
- node-gyp-build "^4.3.0"
+ "@octokit/openapi-types" "^24.2.0"
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
-"@sigstore/bundle@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1"
- integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==
+"@sigstore/bundle@^2.3.2":
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.2.tgz#ad4dbb95d665405fd4a7a02c8a073dbd01e4e95e"
+ integrity sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==
dependencies:
- "@sigstore/protobuf-specs" "^0.2.0"
+ "@sigstore/protobuf-specs" "^0.3.2"
-"@sigstore/protobuf-specs@^0.2.0":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b"
- integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==
+"@sigstore/core@^1.0.0", "@sigstore/core@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.1.0.tgz#5583d8f7ffe599fa0a89f2bf289301a5af262380"
+ integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==
+
+"@sigstore/protobuf-specs@^0.3.2":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz#7dd46d68b76c322873a2ef7581ed955af6f4dcde"
+ integrity sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==
+
+"@sigstore/sign@^2.3.2":
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.2.tgz#d3d01e56d03af96fd5c3a9b9897516b1233fc1c4"
+ integrity sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==
+ dependencies:
+ "@sigstore/bundle" "^2.3.2"
+ "@sigstore/core" "^1.0.0"
+ "@sigstore/protobuf-specs" "^0.3.2"
+ make-fetch-happen "^13.0.1"
+ proc-log "^4.2.0"
+ promise-retry "^2.0.1"
-"@sigstore/sign@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4"
- integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==
+"@sigstore/tuf@^2.3.4":
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.4.tgz#da1d2a20144f3b87c0172920cbc8dcc7851ca27c"
+ integrity sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==
dependencies:
- "@sigstore/bundle" "^1.1.0"
- "@sigstore/protobuf-specs" "^0.2.0"
- make-fetch-happen "^11.0.1"
+ "@sigstore/protobuf-specs" "^0.3.2"
+ tuf-js "^2.2.1"
-"@sigstore/tuf@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160"
- integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==
+"@sigstore/verify@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.2.1.tgz#c7e60241b432890dcb8bd8322427f6062ef819e1"
+ integrity sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==
dependencies:
- "@sigstore/protobuf-specs" "^0.2.0"
- tuf-js "^1.1.7"
+ "@sigstore/bundle" "^2.3.2"
+ "@sigstore/core" "^1.1.0"
+ "@sigstore/protobuf-specs" "^0.3.2"
"@sinclair/typebox@^0.27.8":
version "0.27.8"
@@ -1186,11 +1178,6 @@
dependencies:
"@sinonjs/commons" "^3.0.0"
-"@tootallnate/once@2":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
- integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
-
"@tsconfig/node10@^1.0.7":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
@@ -1211,18 +1198,25 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
-"@tufjs/canonical-json@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31"
- integrity sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==
+"@tufjs/canonical-json@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a"
+ integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==
-"@tufjs/models@1.0.4":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.4.tgz#5a689630f6b9dbda338d4b208019336562f176ef"
- integrity sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==
+"@tufjs/models@2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.1.tgz#e429714e753b6c2469af3212e7f320a6973c2812"
+ integrity sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==
dependencies:
- "@tufjs/canonical-json" "1.0.0"
- minimatch "^9.0.0"
+ "@tufjs/canonical-json" "2.0.0"
+ minimatch "^9.0.4"
+
+"@tybys/wasm-util@^0.9.0":
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355"
+ integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==
+ dependencies:
+ tslib "^2.4.0"
"@types/babel__core@^7.1.14":
version "7.20.5"
@@ -1318,11 +1312,6 @@
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
-"@types/parse-json@^4.0.0":
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
- integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
-
"@types/semver@^7.5.0":
version "7.5.8"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
@@ -1441,22 +1430,22 @@
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
-"@yarnpkg/parsers@3.0.0-rc.46":
- version "3.0.0-rc.46"
- resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01"
- integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==
+"@yarnpkg/parsers@3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.2.tgz#48a1517a0f49124827f4c37c284a689c607b2f32"
+ integrity sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==
dependencies:
js-yaml "^3.10.0"
tslib "^2.4.0"
-"@zkochan/js-yaml@0.0.6":
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826"
- integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==
+"@zkochan/js-yaml@0.0.7":
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz#4b0cb785220d7c28ce0ec4d0804deb5d821eae89"
+ integrity sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==
dependencies:
argparse "^2.0.1"
-JSONStream@^1.0.4:
+JSONStream@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
@@ -1464,11 +1453,6 @@ JSONStream@^1.0.4:
jsonparse "^1.2.0"
through ">=2.2.7 <3"
-abbrev@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
abbrev@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
@@ -1494,19 +1478,10 @@ add-stream@^1.0.0:
resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==
-agent-base@6, agent-base@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
- integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
- dependencies:
- debug "4"
-
-agentkeepalive@^4.2.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
- integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
- dependencies:
- humanize-ms "^1.2.1"
+agent-base@^7.1.0, agent-base@^7.1.2:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1"
+ integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==
aggregate-error@^3.0.0:
version "3.1.0"
@@ -1588,24 +1563,11 @@ anymatch@^3.0.3:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0:
+aproba@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
-are-we-there-yet@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd"
- integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==
- dependencies:
- delegates "^1.0.0"
- readable-stream "^3.6.0"
-
-are-we-there-yet@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a"
- integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==
-
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@@ -1658,15 +1620,10 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
-at-least-node@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
- integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
-
-axios@^1.0.0:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
- integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
+axios@^1.8.3:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.9.0.tgz#25534e3b72b54540077d33046f77e3b8d7081901"
+ integrity sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
@@ -1747,10 +1704,10 @@ before-after-hook@^2.2.0:
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
-bin-links@^4.0.1:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5"
- integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA==
+bin-links@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63"
+ integrity sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==
dependencies:
cmd-shim "^6.0.0"
npm-normalize-package-bin "^3.0.0"
@@ -1825,11 +1782,6 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
-builtins@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
- integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==
-
builtins@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8"
@@ -1837,46 +1789,22 @@ builtins@^5.0.0:
dependencies:
semver "^7.0.0"
-byte-size@7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032"
- integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==
-
-cacache@^16.1.0:
- version "16.1.3"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e"
- integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==
- dependencies:
- "@npmcli/fs" "^2.1.0"
- "@npmcli/move-file" "^2.0.0"
- chownr "^2.0.0"
- fs-minipass "^2.1.0"
- glob "^8.0.1"
- infer-owner "^1.0.4"
- lru-cache "^7.7.1"
- minipass "^3.1.6"
- minipass-collect "^1.0.2"
- minipass-flush "^1.0.5"
- minipass-pipeline "^1.2.4"
- mkdirp "^1.0.4"
- p-map "^4.0.0"
- promise-inflight "^1.0.1"
- rimraf "^3.0.2"
- ssri "^9.0.0"
- tar "^6.1.11"
- unique-filename "^2.0.0"
+byte-size@8.1.1:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae"
+ integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==
-cacache@^17.0.0, cacache@^17.0.4:
- version "17.1.4"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35"
- integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==
+cacache@^18.0.0, cacache@^18.0.3:
+ version "18.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5"
+ integrity sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==
dependencies:
"@npmcli/fs" "^3.1.0"
fs-minipass "^3.0.0"
glob "^10.2.2"
- lru-cache "^7.7.1"
+ lru-cache "^10.0.1"
minipass "^7.0.3"
- minipass-collect "^1.0.2"
+ minipass-collect "^2.0.1"
minipass-flush "^1.0.5"
minipass-pipeline "^1.2.4"
p-map "^4.0.0"
@@ -1963,16 +1891,16 @@ chownr@^2.0.0:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
-ci-info@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
- integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
-
-ci-info@^3.2.0, ci-info@^3.6.1:
+ci-info@^3.2.0:
version "3.9.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+ci-info@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7"
+ integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==
+
cjs-module-lexer@^1.0.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
@@ -2044,12 +1972,10 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
-cmd-shim@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724"
- integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==
- dependencies:
- mkdirp-infer-owner "^2.0.0"
+cmd-shim@6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033"
+ integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==
cmd-shim@^6.0.0:
version "6.0.2"
@@ -2090,7 +2016,7 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-support@^1.1.3:
+color-support@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
@@ -2138,100 +2064,83 @@ concat-stream@^2.0.0:
readable-stream "^3.0.2"
typedarray "^0.0.6"
-config-chain@1.1.12:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
- integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
- dependencies:
- ini "^1.3.4"
- proto-list "~1.2.1"
-
console-control-strings@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
-conventional-changelog-angular@5.0.12:
- version "5.0.12"
- resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9"
- integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==
+conventional-changelog-angular@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a"
+ integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==
dependencies:
compare-func "^2.0.0"
- q "^1.5.1"
-conventional-changelog-core@4.2.4:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f"
- integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==
+conventional-changelog-core@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz#3c331b155d5b9850f47b4760aeddfc983a92ad49"
+ integrity sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==
dependencies:
add-stream "^1.0.0"
- conventional-changelog-writer "^5.0.0"
- conventional-commits-parser "^3.2.0"
- dateformat "^3.0.0"
- get-pkg-repo "^4.0.0"
- git-raw-commits "^2.0.8"
+ conventional-changelog-writer "^6.0.0"
+ conventional-commits-parser "^4.0.0"
+ dateformat "^3.0.3"
+ get-pkg-repo "^4.2.1"
+ git-raw-commits "^3.0.0"
git-remote-origin-url "^2.0.0"
- git-semver-tags "^4.1.1"
- lodash "^4.17.15"
- normalize-package-data "^3.0.0"
- q "^1.5.1"
+ git-semver-tags "^5.0.0"
+ normalize-package-data "^3.0.3"
read-pkg "^3.0.0"
read-pkg-up "^3.0.0"
- through2 "^4.0.0"
-conventional-changelog-preset-loader@^2.3.4:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c"
- integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==
+conventional-changelog-preset-loader@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz#14975ef759d22515d6eabae6396c2ae721d4c105"
+ integrity sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==
-conventional-changelog-writer@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359"
- integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==
+conventional-changelog-writer@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz#d8d3bb5e1f6230caed969dcc762b1c368a8f7b01"
+ integrity sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==
dependencies:
- conventional-commits-filter "^2.0.7"
- dateformat "^3.0.0"
+ conventional-commits-filter "^3.0.0"
+ dateformat "^3.0.3"
handlebars "^4.7.7"
json-stringify-safe "^5.0.1"
- lodash "^4.17.15"
- meow "^8.0.0"
- semver "^6.0.0"
- split "^1.0.0"
- through2 "^4.0.0"
+ meow "^8.1.2"
+ semver "^7.0.0"
+ split "^1.0.1"
-conventional-commits-filter@^2.0.7:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3"
- integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==
+conventional-commits-filter@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz#bf1113266151dd64c49cd269e3eb7d71d7015ee2"
+ integrity sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==
dependencies:
lodash.ismatch "^4.4.0"
- modify-values "^1.0.0"
+ modify-values "^1.0.1"
-conventional-commits-parser@^3.2.0:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972"
- integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==
+conventional-commits-parser@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505"
+ integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==
dependencies:
- JSONStream "^1.0.4"
+ JSONStream "^1.3.5"
is-text-path "^1.0.1"
- lodash "^4.17.15"
- meow "^8.0.0"
- split2 "^3.0.0"
- through2 "^4.0.0"
+ meow "^8.1.2"
+ split2 "^3.2.2"
-conventional-recommended-bump@6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55"
- integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==
+conventional-recommended-bump@7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz#ec01f6c7f5d0e2491c2d89488b0d757393392424"
+ integrity sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==
dependencies:
concat-stream "^2.0.0"
- conventional-changelog-preset-loader "^2.3.4"
- conventional-commits-filter "^2.0.7"
- conventional-commits-parser "^3.2.0"
- git-raw-commits "^2.0.8"
- git-semver-tags "^4.1.1"
- meow "^8.0.0"
- q "^1.5.1"
+ conventional-changelog-preset-loader "^3.0.0"
+ conventional-commits-filter "^3.0.0"
+ conventional-commits-parser "^4.0.0"
+ git-raw-commits "^3.0.0"
+ git-semver-tags "^5.0.0"
+ meow "^8.1.2"
convert-source-map@^2.0.0:
version "2.0.0"
@@ -2256,16 +2165,15 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-cosmiconfig@7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
- integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
+cosmiconfig@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
+ integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
dependencies:
- "@types/parse-json" "^4.0.0"
- import-fresh "^3.2.1"
- parse-json "^5.0.0"
- path-type "^4.0.0"
- yaml "^1.10.0"
+ env-paths "^2.2.1"
+ import-fresh "^3.3.0"
+ js-yaml "^4.1.0"
+ parse-json "^5.2.0"
create-jest@^29.7.0:
version "29.7.0"
@@ -2294,11 +2202,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
-crypto-random-string@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
- integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -2309,12 +2212,12 @@ dargs@^7.0.0:
resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
-dateformat@^3.0.0:
+dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, 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==
@@ -2339,12 +2242,7 @@ decamelize@^5.0.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9"
integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==
-dedent@0.7.0, dedent@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
- integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
-
-dedent@^1.0.0:
+dedent@1.5.3, dedent@^1.0.0:
version "1.5.3"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a"
integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==
@@ -2379,20 +2277,6 @@ del-cli@^5.1.0:
del "^7.1.0"
meow "^10.1.3"
-del@^6.0.0:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a"
- integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==
- dependencies:
- globby "^11.0.1"
- graceful-fs "^4.2.4"
- is-glob "^4.0.1"
- is-path-cwd "^2.2.0"
- is-path-inside "^3.0.2"
- p-map "^4.0.0"
- rimraf "^3.0.2"
- slash "^3.0.0"
-
del@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/del/-/del-7.1.0.tgz#0de0044d556b649ff05387f1fa7c885e155fd1b6"
@@ -2412,12 +2296,7 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
- integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
-
-deprecation@^2.0.0, deprecation@^2.3.1:
+deprecation@^2.0.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
@@ -2456,13 +2335,6 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-dot-prop@6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
- integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
- dependencies:
- is-obj "^2.0.0"
-
dot-prop@^5.1.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@@ -2470,10 +2342,22 @@ dot-prop@^5.1.0:
dependencies:
is-obj "^2.0.0"
-dotenv@~10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
- integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+dotenv-expand@~11.0.6:
+ version "11.0.7"
+ resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.7.tgz#af695aea007d6fdc84c86cd8d0ad7beb40a0bd08"
+ integrity sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==
+ dependencies:
+ dotenv "^16.4.5"
+
+dotenv@^16.4.5:
+ version "16.5.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.5.0.tgz#092b49f25f808f020050051d1ff258e404c78692"
+ integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==
+
+dotenv@~16.4.5:
+ version "16.4.7"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26"
+ integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
duplexer@^0.1.1:
version "0.1.2"
@@ -2533,15 +2417,15 @@ enquirer@~2.3.6:
dependencies:
ansi-colors "^4.1.1"
-env-paths@^2.2.0:
+env-paths@^2.2.0, env-paths@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
-envinfo@^7.7.4:
- version "7.12.0"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.12.0.tgz#b56723b39c2053d67ea5714f026d05d4f5cc7acd"
- integrity sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==
+envinfo@7.13.0:
+ version "7.13.0"
+ resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31"
+ integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==
err-code@^2.0.2:
version "2.0.3"
@@ -2767,17 +2651,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@3.2.7:
- version "3.2.7"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
- integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.2"
- merge2 "^1.3.0"
- micromatch "^4.0.4"
-
fast-glob@^3.2.9, fast-glob@^3.3.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
@@ -2827,11 +2700,6 @@ file-entry-cache@^6.0.1:
dependencies:
flat-cache "^3.0.4"
-file-url@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/file-url/-/file-url-3.0.0.tgz#247a586a746ce9f7a8ed05560290968afc262a77"
- integrity sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==
-
filelist@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
@@ -2846,14 +2714,6 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-find-up@5.0.0, find-up@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
- dependencies:
- locate-path "^6.0.0"
- path-exists "^4.0.0"
-
find-up@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
@@ -2869,6 +2729,14 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
+find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
flat-cache@^3.0.4:
version "3.2.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
@@ -2910,31 +2778,28 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+front-matter@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5"
+ integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==
+ dependencies:
+ js-yaml "^3.13.1"
+
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
-fs-extra@9.1.0, fs-extra@^9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
- integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
- dependencies:
- at-least-node "^1.0.0"
- graceful-fs "^4.2.0"
- jsonfile "^6.0.1"
- universalify "^2.0.0"
-
-fs-extra@^11.1.0:
- version "11.2.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
- integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+fs-extra@^11.2.0:
+ version "11.3.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d"
+ integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
universalify "^2.0.0"
-fs-minipass@^2.0.0, fs-minipass@^2.1.0:
+fs-minipass@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
@@ -2963,38 +2828,10 @@ function-bind@^1.1.2:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-gauge@^4.0.3:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
- integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
- dependencies:
- aproba "^1.0.3 || ^2.0.0"
- color-support "^1.1.3"
- console-control-strings "^1.1.0"
- has-unicode "^2.0.1"
- signal-exit "^3.0.7"
- string-width "^4.2.3"
- strip-ansi "^6.0.1"
- wide-align "^1.1.5"
-
-gauge@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112"
- integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==
- dependencies:
- aproba "^1.0.3 || ^2.0.0"
- color-support "^1.1.3"
- console-control-strings "^1.1.0"
- has-unicode "^2.0.1"
- signal-exit "^4.0.1"
- string-width "^4.2.3"
- strip-ansi "^6.0.1"
- wide-align "^1.1.5"
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
get-caller-file@^2.0.5:
version "2.0.5"
@@ -3006,7 +2843,7 @@ get-package-type@^0.1.0:
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-get-pkg-repo@^4.0.0:
+get-pkg-repo@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385"
integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==
@@ -3031,16 +2868,14 @@ get-stream@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-git-raw-commits@^2.0.8:
- version "2.0.11"
- resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723"
- integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==
+git-raw-commits@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-3.0.0.tgz#5432f053a9744f67e8db03dbc48add81252cfdeb"
+ integrity sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==
dependencies:
dargs "^7.0.0"
- lodash "^4.17.15"
- meow "^8.0.0"
- split2 "^3.0.0"
- through2 "^4.0.0"
+ meow "^8.1.2"
+ split2 "^3.2.2"
git-remote-origin-url@^2.0.0:
version "2.0.0"
@@ -3050,13 +2885,13 @@ git-remote-origin-url@^2.0.0:
gitconfiglocal "^1.0.0"
pify "^2.3.0"
-git-semver-tags@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780"
- integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==
+git-semver-tags@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-5.0.1.tgz#db748aa0e43d313bf38dcd68624d8443234e1c15"
+ integrity sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==
dependencies:
- meow "^8.0.0"
- semver "^6.0.0"
+ meow "^8.1.2"
+ semver "^7.0.0"
git-up@^7.0.0:
version "7.0.0"
@@ -3066,10 +2901,10 @@ git-up@^7.0.0:
is-ssh "^1.4.0"
parse-url "^8.1.0"
-git-url-parse@13.1.0:
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4"
- integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==
+git-url-parse@14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f"
+ integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==
dependencies:
git-up "^7.0.0"
@@ -3080,33 +2915,21 @@ gitconfiglocal@^1.0.0:
dependencies:
ini "^1.3.2"
-glob-parent@5.1.2, 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-parent@^6.0.2:
+glob-parent@6.0.2, glob-parent@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
dependencies:
is-glob "^4.0.3"
-glob@7.1.4:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
- integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+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:
- 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"
+ is-glob "^4.0.1"
-glob@8.1.0, glob@^8.0.1:
+glob@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
@@ -3128,6 +2951,18 @@ glob@^10.0.0, glob@^10.2.2:
minipass "^7.0.4"
path-scurry "^1.10.2"
+glob@^10.3.10:
+ version "10.4.5"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
+ integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
+ dependencies:
+ foreground-child "^3.1.0"
+ jackspeak "^3.1.2"
+ minimatch "^9.0.4"
+ minipass "^7.1.2"
+ package-json-from-dist "^1.0.0"
+ path-scurry "^1.11.1"
+
glob@^7.0.5, glob@^7.1.3, glob@^7.1.4:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@@ -3162,7 +2997,7 @@ globals@^13.19.0:
dependencies:
type-fest "^0.20.2"
-globby@11.1.0, globby@^11.0.1, globby@^11.1.0:
+globby@11.1.0, globby@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -3185,12 +3020,7 @@ globby@^13.1.2:
merge2 "^1.4.1"
slash "^4.0.0"
-graceful-fs@4.2.10:
- version "4.2.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
- integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
+graceful-fs@4.2.11, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -3227,7 +3057,7 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-has-unicode@2.0.1, has-unicode@^2.0.1:
+has-unicode@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
@@ -3244,13 +3074,6 @@ hosted-git-info@^2.1.4:
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-hosted-git-info@^3.0.6:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d"
- integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==
- dependencies:
- lru-cache "^6.0.0"
-
hosted-git-info@^4.0.0, hosted-git-info@^4.0.1:
version "4.1.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224"
@@ -3258,45 +3081,37 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1:
dependencies:
lru-cache "^6.0.0"
-hosted-git-info@^5.0.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f"
- integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==
- dependencies:
- lru-cache "^7.5.1"
-
-hosted-git-info@^6.0.0, hosted-git-info@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58"
- integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==
+hosted-git-info@^7.0.0, hosted-git-info@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17"
+ integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==
dependencies:
- lru-cache "^7.5.1"
+ lru-cache "^10.0.1"
html-escaper@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1:
+http-cache-semantics@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
-http-proxy-agent@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
- integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+http-proxy-agent@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e"
+ integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==
dependencies:
- "@tootallnate/once" "2"
- agent-base "6"
- debug "4"
+ agent-base "^7.1.0"
+ debug "^4.3.4"
-https-proxy-agent@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
- integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+https-proxy-agent@^7.0.1:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9"
+ integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==
dependencies:
- agent-base "6"
+ agent-base "^7.1.2"
debug "4"
human-signals@^2.1.0:
@@ -3304,13 +3119,6 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-humanize-ms@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
- integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
- dependencies:
- ms "^2.0.0"
-
iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -3330,17 +3138,10 @@ ieee754@^1.1.13:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-ignore-walk@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776"
- integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==
- dependencies:
- minimatch "^5.0.1"
-
-ignore-walk@^6.0.0:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9"
- integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==
+ignore-walk@^6.0.4:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.5.tgz#ef8d61eab7da169078723d1f82833b36e200b0dd"
+ integrity sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==
dependencies:
minimatch "^9.0.0"
@@ -3357,7 +3158,15 @@ import-fresh@^3.2.1:
parent-module "^1.0.0"
resolve-from "^4.0.0"
-import-local@^3.0.2:
+import-fresh@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
+ integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-local@3.1.0, import-local@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
@@ -3380,11 +3189,6 @@ indent-string@^5.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
-infer-owner@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
- integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
-
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -3398,44 +3202,28 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1,
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-ini@^1.3.2, ini@^1.3.4:
+ini@^1.3.2, ini@^1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-init-package-json@3.0.2, init-package-json@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69"
- integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==
+ini@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795"
+ integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==
+
+init-package-json@6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.3.tgz#2552fba75b6eed2495dc97f44183e2e5a5bcf8b0"
+ integrity sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==
dependencies:
- npm-package-arg "^9.0.1"
- promzard "^0.3.0"
- read "^1.0.7"
- read-package-json "^5.0.0"
+ "@npmcli/package-json" "^5.0.0"
+ npm-package-arg "^11.0.0"
+ promzard "^1.0.0"
+ read "^3.0.1"
semver "^7.3.5"
validate-npm-package-license "^3.0.4"
- validate-npm-package-name "^4.0.0"
-
-inquirer@8.2.4:
- version "8.2.4"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4"
- integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==
- 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.4.1"
- run-async "^2.4.0"
- rxjs "^7.5.5"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
- through "^2.3.6"
- wrap-ansi "^7.0.0"
+ validate-npm-package-name "^5.0.0"
inquirer@^8.2.4:
version "8.2.6"
@@ -3471,14 +3259,14 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-is-ci@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
- integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+is-ci@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
+ integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
dependencies:
- ci-info "^2.0.0"
+ ci-info "^3.2.0"
-is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1:
+is-core-module@^2.13.0, is-core-module@^2.5.0:
version "2.13.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
@@ -3532,17 +3320,12 @@ is-obj@^2.0.0:
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-is-path-cwd@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
- integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
-
is-path-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7"
integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==
-is-path-inside@^3.0.2, is-path-inside@^3.0.3:
+is-path-inside@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
@@ -3564,11 +3347,6 @@ is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
-is-plain-object@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
- integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
-
is-ssh@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2"
@@ -3620,6 +3398,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+isexe@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d"
+ integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==
+
isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
@@ -3687,6 +3470,15 @@ jackspeak@^2.3.6:
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
+jackspeak@^3.1.2:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
+ integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
+ dependencies:
+ "@isaacs/cliui" "^8.0.2"
+ optionalDependencies:
+ "@pkgjs/parseargs" "^0.11.0"
+
jake@^10.8.5:
version "10.8.7"
resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f"
@@ -3777,7 +3569,7 @@ jest-config@^29.7.0:
slash "^3.0.0"
strip-json-comments "^3.1.1"
-jest-diff@^29.7.0:
+"jest-diff@>=29.4.3 < 30", jest-diff@^29.4.1, jest-diff@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
@@ -4095,7 +3887,7 @@ json-parse-better-errors@^1.0.1:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
+json-parse-even-better-errors@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
@@ -4105,6 +3897,11 @@ json-parse-even-better-errors@^3.0.0:
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0"
integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==
+json-parse-even-better-errors@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da"
+ integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -4176,87 +3973,91 @@ kleur@^3.0.3:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-lerna@^6:
- version "6.6.2"
- resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.6.2.tgz#ad921f913aca4e7307123a598768b6f15ca5804f"
- integrity sha512-W4qrGhcdutkRdHEaDf9eqp7u4JvI+1TwFy5woX6OI8WPe4PYBdxuILAsvhp614fUG41rKSGDKlOh+AWzdSidTg==
- dependencies:
- "@lerna/child-process" "6.6.2"
- "@lerna/create" "6.6.2"
- "@lerna/legacy-package-management" "6.6.2"
- "@npmcli/arborist" "6.2.3"
- "@npmcli/run-script" "4.1.7"
- "@nrwl/devkit" ">=15.5.2 < 16"
+lerna@^8.2.2:
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/lerna/-/lerna-8.2.2.tgz#ba38e8ffe31cf69222832838f282c7607b09c2a3"
+ integrity sha512-GkqBELTG4k7rfzAwRok2pKBvhNo046Hfwcj7TuhDah3q58/BBBAqvIFLfqEI5fglnNOs6maMSn6/MWjccQE55A==
+ dependencies:
+ "@lerna/create" "8.2.2"
+ "@npmcli/arborist" "7.5.4"
+ "@npmcli/package-json" "5.2.0"
+ "@npmcli/run-script" "8.1.0"
+ "@nx/devkit" ">=17.1.2 < 21"
"@octokit/plugin-enterprise-rest" "6.0.1"
- "@octokit/rest" "19.0.3"
- byte-size "7.0.0"
+ "@octokit/rest" "20.1.2"
+ aproba "2.0.0"
+ byte-size "8.1.1"
chalk "4.1.0"
clone-deep "4.0.1"
- cmd-shim "5.0.0"
+ cmd-shim "6.0.3"
+ color-support "1.1.3"
columnify "1.6.0"
- config-chain "1.1.12"
- conventional-changelog-angular "5.0.12"
- conventional-changelog-core "4.2.4"
- conventional-recommended-bump "6.1.0"
- cosmiconfig "7.0.0"
- dedent "0.7.0"
- dot-prop "6.0.1"
- envinfo "^7.7.4"
+ console-control-strings "^1.1.0"
+ conventional-changelog-angular "7.0.0"
+ conventional-changelog-core "5.0.1"
+ conventional-recommended-bump "7.0.1"
+ cosmiconfig "9.0.0"
+ dedent "1.5.3"
+ envinfo "7.13.0"
execa "5.0.0"
- fs-extra "9.1.0"
+ fs-extra "^11.2.0"
get-port "5.1.1"
get-stream "6.0.0"
- git-url-parse "13.1.0"
- glob-parent "5.1.2"
+ git-url-parse "14.0.0"
+ glob-parent "6.0.2"
globby "11.1.0"
- graceful-fs "4.2.10"
+ graceful-fs "4.2.11"
has-unicode "2.0.1"
- import-local "^3.0.2"
- init-package-json "3.0.2"
+ import-local "3.1.0"
+ ini "^1.3.8"
+ init-package-json "6.0.3"
inquirer "^8.2.4"
- is-ci "2.0.0"
+ is-ci "3.0.1"
is-stream "2.0.0"
- js-yaml "^4.1.0"
- libnpmaccess "^6.0.3"
- libnpmpublish "7.1.4"
+ jest-diff ">=29.4.3 < 30"
+ js-yaml "4.1.0"
+ libnpmaccess "8.0.6"
+ libnpmpublish "9.0.9"
load-json-file "6.2.0"
- make-dir "3.1.0"
+ lodash "^4.17.21"
+ make-dir "4.0.0"
minimatch "3.0.5"
multimatch "5.0.0"
node-fetch "2.6.7"
- npm-package-arg "8.1.1"
- npm-packlist "5.1.1"
- npm-registry-fetch "^14.0.3"
- npmlog "^6.0.2"
- nx ">=15.5.2 < 16"
+ npm-package-arg "11.0.2"
+ npm-packlist "8.0.2"
+ npm-registry-fetch "^17.1.0"
+ nx ">=17.1.2 < 21"
p-map "4.0.0"
p-map-series "2.1.0"
p-pipe "3.1.0"
p-queue "6.6.2"
p-reduce "2.1.0"
p-waterfall "2.1.1"
- pacote "15.1.1"
+ pacote "^18.0.6"
pify "5.0.0"
- read-cmd-shim "3.0.0"
- read-package-json "5.0.1"
+ read-cmd-shim "4.0.0"
resolve-from "5.0.0"
rimraf "^4.4.1"
semver "^7.3.8"
+ set-blocking "^2.0.0"
signal-exit "3.0.7"
slash "3.0.0"
- ssri "9.0.1"
+ ssri "^10.0.6"
+ string-width "^4.2.3"
strong-log-transformer "2.1.0"
- tar "6.1.11"
+ tar "6.2.1"
temp-dir "1.0.0"
- typescript "^3 || ^4"
- upath "^2.0.1"
- uuid "8.3.2"
+ typescript ">=3 < 6"
+ upath "2.0.1"
+ uuid "^10.0.0"
validate-npm-package-license "3.0.4"
- validate-npm-package-name "4.0.0"
- write-file-atomic "4.0.1"
+ validate-npm-package-name "5.0.1"
+ wide-align "1.1.5"
+ write-file-atomic "5.0.1"
write-pkg "4.0.0"
- yargs "16.2.0"
- yargs-parser "20.2.4"
+ yargs "17.7.2"
+ yargs-parser "21.1.1"
leven@^3.1.0:
version "3.1.0"
@@ -4271,40 +4072,38 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
-libnpmaccess@^6.0.3:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b"
- integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==
- dependencies:
- aproba "^2.0.0"
- minipass "^3.1.1"
- npm-package-arg "^9.0.1"
- npm-registry-fetch "^13.0.0"
-
-libnpmpublish@7.1.4:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-7.1.4.tgz#a0d138e00e52a0c71ffc82273acf0082fc2dfb36"
- integrity sha512-mMntrhVwut5prP4rJ228eEbEyvIzLWhqFuY90j5QeXBCTT2pWSMno7Yo2S2qplPUr02zPurGH4heGLZ+wORczg==
- dependencies:
- ci-info "^3.6.1"
- normalize-package-data "^5.0.0"
- npm-package-arg "^10.1.0"
- npm-registry-fetch "^14.0.3"
- proc-log "^3.0.0"
+libnpmaccess@8.0.6:
+ version "8.0.6"
+ resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.6.tgz#73be4c236258babc0a0bca6d3b6a93a6adf937cf"
+ integrity sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==
+ dependencies:
+ npm-package-arg "^11.0.2"
+ npm-registry-fetch "^17.0.1"
+
+libnpmpublish@9.0.9:
+ version "9.0.9"
+ resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.9.tgz#e737378c09f09738377d2a276734be35cffb85e2"
+ integrity sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==
+ dependencies:
+ ci-info "^4.0.0"
+ normalize-package-data "^6.0.1"
+ npm-package-arg "^11.0.2"
+ npm-registry-fetch "^17.0.1"
+ proc-log "^4.2.0"
semver "^7.3.7"
- sigstore "^1.4.0"
- ssri "^10.0.1"
+ sigstore "^2.2.0"
+ ssri "^10.0.6"
+
+lines-and-columns@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b"
+ integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-lines-and-columns@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42"
- integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==
-
load-json-file@6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1"
@@ -4362,12 +4161,12 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash@^4.17.15, lodash@^4.17.21:
+lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@^4.1.0:
+log-symbols@^4.0.0, 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==
@@ -4375,6 +4174,11 @@ log-symbols@^4.1.0:
chalk "^4.1.0"
is-unicode-supported "^0.1.0"
+lru-cache@^10.0.1, lru-cache@^10.2.2:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
+ integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+
lru-cache@^10.2.0:
version "10.2.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
@@ -4394,17 +4198,12 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
-lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1:
- version "7.18.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
- integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
-
-make-dir@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
- integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+make-dir@4.0.0, make-dir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
+ integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
dependencies:
- semver "^6.0.0"
+ semver "^7.5.3"
make-dir@^2.1.0:
version "2.1.0"
@@ -4414,59 +4213,27 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
- integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
- dependencies:
- semver "^7.5.3"
-
make-error@1.x, make-error@^1.1.1:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6:
- version "10.2.1"
- resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
- integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==
- dependencies:
- agentkeepalive "^4.2.1"
- cacache "^16.1.0"
- http-cache-semantics "^4.1.0"
- http-proxy-agent "^5.0.0"
- https-proxy-agent "^5.0.0"
- is-lambda "^1.0.1"
- lru-cache "^7.7.1"
- minipass "^3.1.6"
- minipass-collect "^1.0.2"
- minipass-fetch "^2.0.3"
- minipass-flush "^1.0.5"
- minipass-pipeline "^1.2.4"
- negotiator "^0.6.3"
- promise-retry "^2.0.1"
- socks-proxy-agent "^7.0.0"
- ssri "^9.0.0"
-
-make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f"
- integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==
+make-fetch-happen@^13.0.0, make-fetch-happen@^13.0.1:
+ version "13.0.1"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36"
+ integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==
dependencies:
- agentkeepalive "^4.2.1"
- cacache "^17.0.0"
+ "@npmcli/agent" "^2.0.0"
+ cacache "^18.0.0"
http-cache-semantics "^4.1.1"
- http-proxy-agent "^5.0.0"
- https-proxy-agent "^5.0.0"
is-lambda "^1.0.1"
- lru-cache "^7.7.1"
- minipass "^5.0.0"
+ minipass "^7.0.2"
minipass-fetch "^3.0.0"
minipass-flush "^1.0.5"
minipass-pipeline "^1.2.4"
negotiator "^0.6.3"
+ proc-log "^4.2.0"
promise-retry "^2.0.1"
- socks-proxy-agent "^7.0.0"
ssri "^10.0.0"
makeerror@1.0.12:
@@ -4504,7 +4271,7 @@ meow@^10.1.3:
type-fest "^1.2.2"
yargs-parser "^20.2.9"
-meow@^8.0.0:
+meow@^8.1.2:
version "8.1.2"
resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897"
integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==
@@ -4589,13 +4356,6 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
-minimatch@^6.1.6:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42"
- integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==
- dependencies:
- brace-expansion "^2.0.1"
-
minimatch@^8.0.2:
version "8.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229"
@@ -4610,6 +4370,13 @@ minimatch@^9.0.0, minimatch@^9.0.1:
dependencies:
brace-expansion "^2.0.1"
+minimatch@^9.0.4:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist-options@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
@@ -4624,23 +4391,12 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-minipass-collect@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
- integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
- dependencies:
- minipass "^3.0.0"
-
-minipass-fetch@^2.0.3:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add"
- integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==
+minipass-collect@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863"
+ integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==
dependencies:
- minipass "^3.1.6"
- minipass-sized "^1.0.3"
- minizlib "^2.1.2"
- optionalDependencies:
- encoding "^0.1.13"
+ minipass "^7.0.3"
minipass-fetch@^3.0.0:
version "3.0.4"
@@ -4660,14 +4416,6 @@ minipass-flush@^1.0.5:
dependencies:
minipass "^3.0.0"
-minipass-json-stream@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7"
- integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==
- dependencies:
- jsonparse "^1.3.1"
- minipass "^3.0.0"
-
minipass-pipeline@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
@@ -4682,14 +4430,14 @@ minipass-sized@^1.0.3:
dependencies:
minipass "^3.0.0"
-minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6:
+minipass@^3.0.0:
version "3.3.6"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
dependencies:
yallist "^4.0.0"
-minipass@^4.0.0, minipass@^4.2.4:
+minipass@^4.2.4:
version "4.2.8"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a"
integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==
@@ -4704,6 +4452,11 @@ minipass@^5.0.0:
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+minipass@^7.0.2, minipass@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+ integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+
minizlib@^2.1.1, minizlib@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
@@ -4712,15 +4465,6 @@ minizlib@^2.1.1, minizlib@^2.1.2:
minipass "^3.0.0"
yallist "^4.0.0"
-mkdirp-infer-owner@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316"
- integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==
- dependencies:
- chownr "^2.0.0"
- infer-owner "^1.0.4"
- mkdirp "^1.0.3"
-
mkdirp@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.0.tgz#758101231418bda24435c0888a91d9bd91f1372d"
@@ -4731,7 +4475,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-modify-values@^1.0.0:
+modify-values@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
@@ -4741,11 +4485,6 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@^2.0.0:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
multimatch@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6"
@@ -4757,11 +4496,16 @@ multimatch@5.0.0:
arrify "^2.0.1"
minimatch "^3.0.4"
-mute-stream@0.0.8, mute-stream@~0.0.4:
+mute-stream@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+mute-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
+ integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -4777,11 +4521,6 @@ neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-node-addon-api@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
- integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
-
node-fetch@2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@@ -4789,40 +4528,32 @@ node-fetch@2.6.7:
dependencies:
whatwg-url "^5.0.0"
-node-fetch@^2.6.7:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
- integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
- dependencies:
- whatwg-url "^5.0.0"
-
-node-gyp-build@^4.3.0:
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
- integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
-
-node-gyp@^9.0.0:
- version "9.4.1"
- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185"
- integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==
+node-gyp@^10.0.0:
+ version "10.3.1"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.3.1.tgz#1dd1a1a1c6c5c59da1a76aea06a062786b2c8a1a"
+ integrity sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==
dependencies:
env-paths "^2.2.0"
exponential-backoff "^3.1.1"
- glob "^7.1.4"
+ glob "^10.3.10"
graceful-fs "^4.2.6"
- make-fetch-happen "^10.0.3"
- nopt "^6.0.0"
- npmlog "^6.0.0"
- rimraf "^3.0.2"
+ make-fetch-happen "^13.0.0"
+ nopt "^7.0.0"
+ proc-log "^4.1.0"
semver "^7.3.5"
- tar "^6.1.2"
- which "^2.0.2"
+ tar "^6.2.1"
+ which "^4.0.0"
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
+node-machine-id@1.1.12:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267"
+ integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==
+
node-releases@^2.0.14:
version "2.0.14"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
@@ -4836,13 +4567,6 @@ noms@0.0.0:
inherits "^2.0.1"
readable-stream "~1.0.31"
-nopt@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
- integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==
- dependencies:
- abbrev "^1.0.0"
-
nopt@^7.0.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7"
@@ -4850,6 +4574,13 @@ nopt@^7.0.0:
dependencies:
abbrev "^2.0.0"
+nopt@^7.2.1:
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7"
+ integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==
+ dependencies:
+ abbrev "^2.0.0"
+
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -4860,7 +4591,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
-normalize-package-data@^3.0.0, normalize-package-data@^3.0.2:
+normalize-package-data@^3.0.0, normalize-package-data@^3.0.2, normalize-package-data@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e"
integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==
@@ -4870,23 +4601,12 @@ normalize-package-data@^3.0.0, normalize-package-data@^3.0.2:
semver "^7.3.4"
validate-npm-package-license "^3.0.1"
-normalize-package-data@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c"
- integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==
- dependencies:
- hosted-git-info "^5.0.0"
- is-core-module "^2.8.1"
- semver "^7.3.5"
- validate-npm-package-license "^3.0.4"
-
-normalize-package-data@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588"
- integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==
+normalize-package-data@^6.0.0, normalize-package-data@^6.0.1:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506"
+ integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==
dependencies:
- hosted-git-info "^6.0.0"
- is-core-module "^2.8.1"
+ hosted-git-info "^7.0.0"
semver "^7.3.5"
validate-npm-package-license "^3.0.4"
@@ -4895,13 +4615,6 @@ normalize-path@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-npm-bundled@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
- integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
- dependencies:
- npm-normalize-package-bin "^1.0.1"
-
npm-bundled@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7"
@@ -4909,122 +4622,68 @@ npm-bundled@^3.0.0:
dependencies:
npm-normalize-package-bin "^3.0.0"
-npm-install-checks@^6.0.0:
+npm-install-checks@^6.0.0, npm-install-checks@^6.2.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe"
integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==
dependencies:
semver "^7.1.1"
-npm-normalize-package-bin@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
- integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-
-npm-normalize-package-bin@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff"
- integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==
-
-npm-normalize-package-bin@^3.0.0, npm-normalize-package-bin@^3.0.1:
+npm-normalize-package-bin@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832"
integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==
-npm-package-arg@8.1.1:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04"
- integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==
+npm-package-arg@11.0.2:
+ version "11.0.2"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.2.tgz#1ef8006c4a9e9204ddde403035f7ff7d718251ca"
+ integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==
dependencies:
- hosted-git-info "^3.0.6"
- semver "^7.0.0"
- validate-npm-package-name "^3.0.0"
-
-npm-package-arg@^10.0.0, npm-package-arg@^10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1"
- integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==
- dependencies:
- hosted-git-info "^6.0.0"
- proc-log "^3.0.0"
+ hosted-git-info "^7.0.0"
+ proc-log "^4.0.0"
semver "^7.3.5"
validate-npm-package-name "^5.0.0"
-npm-package-arg@^9.0.1:
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc"
- integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==
+npm-package-arg@^11.0.0, npm-package-arg@^11.0.2:
+ version "11.0.3"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d"
+ integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==
dependencies:
- hosted-git-info "^5.0.0"
- proc-log "^2.0.1"
+ hosted-git-info "^7.0.0"
+ proc-log "^4.0.0"
semver "^7.3.5"
- validate-npm-package-name "^4.0.0"
-
-npm-packlist@5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0"
- integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==
- dependencies:
- glob "^8.0.1"
- ignore-walk "^5.0.1"
- npm-bundled "^1.1.2"
- npm-normalize-package-bin "^1.0.1"
+ validate-npm-package-name "^5.0.0"
-npm-packlist@^7.0.0:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.4.tgz#033bf74110eb74daf2910dc75144411999c5ff32"
- integrity sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==
+npm-packlist@8.0.2, npm-packlist@^8.0.0:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478"
+ integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==
dependencies:
- ignore-walk "^6.0.0"
+ ignore-walk "^6.0.4"
-npm-pick-manifest@^8.0.0, npm-pick-manifest@^8.0.1:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa"
- integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==
+npm-pick-manifest@^9.0.0, npm-pick-manifest@^9.0.1:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636"
+ integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==
dependencies:
npm-install-checks "^6.0.0"
npm-normalize-package-bin "^3.0.0"
- npm-package-arg "^10.0.0"
+ npm-package-arg "^11.0.0"
semver "^7.3.5"
-npm-registry-fetch@14.0.3:
- version "14.0.3"
- resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz#8545e321c2b36d2c6fe6e009e77e9f0e527f547b"
- integrity sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==
- dependencies:
- make-fetch-happen "^11.0.0"
- minipass "^4.0.0"
- minipass-fetch "^3.0.0"
- minipass-json-stream "^1.0.1"
- minizlib "^2.1.2"
- npm-package-arg "^10.0.0"
- proc-log "^3.0.0"
-
-npm-registry-fetch@^13.0.0:
- version "13.3.1"
- resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e"
- integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==
- dependencies:
- make-fetch-happen "^10.0.6"
- minipass "^3.1.6"
- minipass-fetch "^2.0.3"
- minipass-json-stream "^1.0.1"
- minizlib "^2.1.2"
- npm-package-arg "^9.0.1"
- proc-log "^2.0.0"
-
-npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3:
- version "14.0.5"
- resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d"
- integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==
+npm-registry-fetch@^17.0.0, npm-registry-fetch@^17.0.1, npm-registry-fetch@^17.1.0:
+ version "17.1.0"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz#fb69e8e762d456f08bda2f5f169f7638fb92beb1"
+ integrity sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==
dependencies:
- make-fetch-happen "^11.0.0"
- minipass "^5.0.0"
+ "@npmcli/redact" "^2.0.0"
+ jsonparse "^1.3.1"
+ make-fetch-happen "^13.0.0"
+ minipass "^7.0.2"
minipass-fetch "^3.0.0"
- minipass-json-stream "^1.0.1"
minizlib "^2.1.2"
- npm-package-arg "^10.0.0"
- proc-log "^3.0.0"
+ npm-package-arg "^11.0.0"
+ proc-log "^4.0.0"
npm-run-path@^4.0.1:
version "4.0.1"
@@ -5033,76 +4692,56 @@ npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
-npmlog@6.0.2, npmlog@^6.0.0, npmlog@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
- integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
+"nx@>=17.1.2 < 21":
+ version "20.8.1"
+ resolved "https://registry.yarnpkg.com/nx/-/nx-20.8.1.tgz#f63136b3f7c5a33a3ed1d6145e8507d9bcc77bc0"
+ integrity sha512-73Uw8YXpsjeLqHSl7NMCmGdCs+8ynPzoNJFWAqVanPETEY9zPd5wevVQmeyzYtNNQU35uj6Os4iUzYunmwnFaA==
dependencies:
- are-we-there-yet "^3.0.0"
- console-control-strings "^1.1.0"
- gauge "^4.0.3"
- set-blocking "^2.0.0"
-
-npmlog@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8"
- integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==
- dependencies:
- are-we-there-yet "^4.0.0"
- console-control-strings "^1.1.0"
- gauge "^5.0.0"
- set-blocking "^2.0.0"
-
-nx@15.9.7, "nx@>=15.5.2 < 16":
- version "15.9.7"
- resolved "https://registry.yarnpkg.com/nx/-/nx-15.9.7.tgz#f0e713cedb8637a517d9c4795c99afec4959a1b6"
- integrity sha512-1qlEeDjX9OKZEryC8i4bA+twNg+lB5RKrozlNwWx/lLJHqWPUfvUTvxh+uxlPYL9KzVReQjUuxMLFMsHNqWUrA==
- dependencies:
- "@nrwl/cli" "15.9.7"
- "@nrwl/tao" "15.9.7"
- "@parcel/watcher" "2.0.4"
+ "@napi-rs/wasm-runtime" "0.2.4"
"@yarnpkg/lockfile" "^1.1.0"
- "@yarnpkg/parsers" "3.0.0-rc.46"
- "@zkochan/js-yaml" "0.0.6"
- axios "^1.0.0"
+ "@yarnpkg/parsers" "3.0.2"
+ "@zkochan/js-yaml" "0.0.7"
+ axios "^1.8.3"
chalk "^4.1.0"
cli-cursor "3.1.0"
cli-spinners "2.6.1"
- cliui "^7.0.2"
- dotenv "~10.0.0"
+ cliui "^8.0.1"
+ dotenv "~16.4.5"
+ dotenv-expand "~11.0.6"
enquirer "~2.3.6"
- fast-glob "3.2.7"
figures "3.2.0"
flat "^5.0.2"
- fs-extra "^11.1.0"
- glob "7.1.4"
+ front-matter "^4.0.2"
ignore "^5.0.4"
- js-yaml "4.1.0"
+ jest-diff "^29.4.1"
jsonc-parser "3.2.0"
- lines-and-columns "~2.0.3"
- minimatch "3.0.5"
+ lines-and-columns "2.0.3"
+ minimatch "9.0.3"
+ node-machine-id "1.1.12"
npm-run-path "^4.0.1"
open "^8.4.0"
- semver "7.5.4"
+ ora "5.3.0"
+ resolve.exports "2.0.3"
+ semver "^7.5.3"
string-width "^4.2.3"
- strong-log-transformer "^2.1.0"
tar-stream "~2.2.0"
tmp "~0.2.1"
tsconfig-paths "^4.1.2"
tslib "^2.3.0"
- v8-compile-cache "2.3.0"
+ yaml "^2.6.0"
yargs "^17.6.2"
yargs-parser "21.1.1"
optionalDependencies:
- "@nrwl/nx-darwin-arm64" "15.9.7"
- "@nrwl/nx-darwin-x64" "15.9.7"
- "@nrwl/nx-linux-arm-gnueabihf" "15.9.7"
- "@nrwl/nx-linux-arm64-gnu" "15.9.7"
- "@nrwl/nx-linux-arm64-musl" "15.9.7"
- "@nrwl/nx-linux-x64-gnu" "15.9.7"
- "@nrwl/nx-linux-x64-musl" "15.9.7"
- "@nrwl/nx-win32-arm64-msvc" "15.9.7"
- "@nrwl/nx-win32-x64-msvc" "15.9.7"
+ "@nx/nx-darwin-arm64" "20.8.1"
+ "@nx/nx-darwin-x64" "20.8.1"
+ "@nx/nx-freebsd-x64" "20.8.1"
+ "@nx/nx-linux-arm-gnueabihf" "20.8.1"
+ "@nx/nx-linux-arm64-gnu" "20.8.1"
+ "@nx/nx-linux-arm64-musl" "20.8.1"
+ "@nx/nx-linux-x64-gnu" "20.8.1"
+ "@nx/nx-linux-x64-musl" "20.8.1"
+ "@nx/nx-win32-arm64-msvc" "20.8.1"
+ "@nx/nx-win32-x64-msvc" "20.8.1"
once@^1.3.0, once@^1.4.0:
version "1.4.0"
@@ -5139,6 +4778,20 @@ optionator@^0.9.3:
prelude-ls "^1.2.1"
type-check "^0.4.0"
+ora@5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f"
+ integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==
+ dependencies:
+ bl "^4.0.3"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-spinners "^2.5.0"
+ is-interactive "^1.0.0"
+ log-symbols "^4.0.0"
+ strip-ansi "^6.0.0"
+ wcwidth "^1.0.1"
+
ora@^5.4.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
@@ -5267,51 +4920,31 @@ p-waterfall@2.1.1:
dependencies:
p-reduce "^2.0.0"
-pacote@15.1.1:
- version "15.1.1"
- resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.1.1.tgz#94d8c6e0605e04d427610b3aacb0357073978348"
- integrity sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==
- dependencies:
- "@npmcli/git" "^4.0.0"
- "@npmcli/installed-package-contents" "^2.0.1"
- "@npmcli/promise-spawn" "^6.0.1"
- "@npmcli/run-script" "^6.0.0"
- cacache "^17.0.0"
- fs-minipass "^3.0.0"
- minipass "^4.0.0"
- npm-package-arg "^10.0.0"
- npm-packlist "^7.0.0"
- npm-pick-manifest "^8.0.0"
- npm-registry-fetch "^14.0.0"
- proc-log "^3.0.0"
- promise-retry "^2.0.1"
- read-package-json "^6.0.0"
- read-package-json-fast "^3.0.0"
- sigstore "^1.0.0"
- ssri "^10.0.0"
- tar "^6.1.11"
+package-json-from-dist@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
+ integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
-pacote@^15.0.0, pacote@^15.0.8:
- version "15.2.0"
- resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3"
- integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==
+pacote@^18.0.0, pacote@^18.0.6:
+ version "18.0.6"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.6.tgz#ac28495e24f4cf802ef911d792335e378e86fac7"
+ integrity sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==
dependencies:
- "@npmcli/git" "^4.0.0"
+ "@npmcli/git" "^5.0.0"
"@npmcli/installed-package-contents" "^2.0.1"
- "@npmcli/promise-spawn" "^6.0.1"
- "@npmcli/run-script" "^6.0.0"
- cacache "^17.0.0"
+ "@npmcli/package-json" "^5.1.0"
+ "@npmcli/promise-spawn" "^7.0.0"
+ "@npmcli/run-script" "^8.0.0"
+ cacache "^18.0.0"
fs-minipass "^3.0.0"
- minipass "^5.0.0"
- npm-package-arg "^10.0.0"
- npm-packlist "^7.0.0"
- npm-pick-manifest "^8.0.0"
- npm-registry-fetch "^14.0.0"
- proc-log "^3.0.0"
+ minipass "^7.0.2"
+ npm-package-arg "^11.0.0"
+ npm-packlist "^8.0.0"
+ npm-pick-manifest "^9.0.0"
+ npm-registry-fetch "^17.0.0"
+ proc-log "^4.0.0"
promise-retry "^2.0.1"
- read-package-json "^6.0.0"
- read-package-json-fast "^3.0.0"
- sigstore "^1.3.0"
+ sigstore "^2.2.0"
ssri "^10.0.0"
tar "^6.1.11"
@@ -5396,6 +5029,14 @@ path-scurry@^1.10.2, path-scurry@^1.6.1:
lru-cache "^10.2.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+path-scurry@^1.11.1:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+ integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
+ dependencies:
+ lru-cache "^10.2.0"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -5418,7 +5059,7 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-pify@5.0.0, pify@^5.0.0:
+pify@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f"
integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==
@@ -5468,15 +5109,6 @@ prettier@^3.0.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368"
integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==
-pretty-format@29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c"
- integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==
- dependencies:
- "@jest/schemas" "^29.4.3"
- ansi-styles "^5.0.0"
- react-is "^18.0.0"
-
pretty-format@^29.0.0, pretty-format@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
@@ -5486,30 +5118,30 @@ pretty-format@^29.0.0, pretty-format@^29.7.0:
ansi-styles "^5.0.0"
react-is "^18.0.0"
-proc-log@^2.0.0, proc-log@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685"
- integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==
-
-proc-log@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8"
- integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==
+proc-log@^4.0.0, proc-log@^4.1.0, proc-log@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034"
+ integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+proggy@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/proggy/-/proggy-2.0.0.tgz#154bb0e41d3125b518ef6c79782455c2c47d94e1"
+ integrity sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==
+
promise-all-reject-late@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2"
integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==
-promise-call-limit@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea"
- integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==
+promise-call-limit@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.2.tgz#524b7f4b97729ff70417d93d24f46f0265efa4f9"
+ integrity sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==
promise-inflight@^1.0.1:
version "1.0.1"
@@ -5532,17 +5164,12 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.5"
-promzard@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
- integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==
+promzard@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.2.tgz#2226e7c6508b1da3471008ae17066a7c3251e660"
+ integrity sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==
dependencies:
- read "1"
-
-proto-list@~1.2.1:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
- integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
+ read "^3.0.1"
protocols@^2.0.0, protocols@^2.0.1:
version "2.0.1"
@@ -5564,11 +5191,6 @@ pure-rand@^6.0.0:
resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
-q@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
-
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -5589,24 +5211,11 @@ react-is@^18.0.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
-read-cmd-shim@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155"
- integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==
-
-read-cmd-shim@^4.0.0:
+read-cmd-shim@4.0.0, read-cmd-shim@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb"
integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==
-read-package-json-fast@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83"
- integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==
- dependencies:
- json-parse-even-better-errors "^2.3.0"
- npm-normalize-package-bin "^1.0.1"
-
read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049"
@@ -5615,36 +5224,6 @@ read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2:
json-parse-even-better-errors "^3.0.0"
npm-normalize-package-bin "^3.0.0"
-read-package-json@5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26"
- integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==
- dependencies:
- glob "^8.0.1"
- json-parse-even-better-errors "^2.3.1"
- normalize-package-data "^4.0.0"
- npm-normalize-package-bin "^1.0.1"
-
-read-package-json@^5.0.0:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa"
- integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==
- dependencies:
- glob "^8.0.1"
- json-parse-even-better-errors "^2.3.1"
- normalize-package-data "^4.0.0"
- npm-normalize-package-bin "^2.0.0"
-
-read-package-json@^6.0.0:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836"
- integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==
- dependencies:
- glob "^10.2.2"
- json-parse-even-better-errors "^3.0.0"
- normalize-package-data "^5.0.0"
- npm-normalize-package-bin "^3.0.0"
-
read-pkg-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
@@ -5700,14 +5279,14 @@ read-pkg@^6.0.0:
parse-json "^5.2.0"
type-fest "^1.0.1"
-read@1, read@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
- integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==
+read@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/read/-/read-3.0.1.tgz#926808f0f7c83fa95f1ef33c0e2c09dbb28fd192"
+ integrity sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==
dependencies:
- mute-stream "~0.0.4"
+ mute-stream "^1.0.0"
-readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -5777,6 +5356,11 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+resolve.exports@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f"
+ integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==
+
resolve.exports@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
@@ -5869,21 +5453,7 @@ safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@7.3.8:
- version "7.3.8"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
- integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
- dependencies:
- lru-cache "^6.0.0"
-
-semver@7.5.4:
- version "7.5.4"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
- integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
- dependencies:
- lru-cache "^6.0.0"
-
-semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
+semver@^6.3.0, semver@^6.3.1:
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
@@ -5929,16 +5499,17 @@ signal-exit@^4.0.1:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-sigstore@^1.0.0, sigstore@^1.3.0, sigstore@^1.4.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875"
- integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==
+sigstore@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.3.1.tgz#0755dd2cc4820f2e922506da54d3d628e13bfa39"
+ integrity sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==
dependencies:
- "@sigstore/bundle" "^1.1.0"
- "@sigstore/protobuf-specs" "^0.2.0"
- "@sigstore/sign" "^1.0.0"
- "@sigstore/tuf" "^1.0.3"
- make-fetch-happen "^11.0.1"
+ "@sigstore/bundle" "^2.3.2"
+ "@sigstore/core" "^1.0.0"
+ "@sigstore/protobuf-specs" "^0.3.2"
+ "@sigstore/sign" "^2.3.2"
+ "@sigstore/tuf" "^2.3.4"
+ "@sigstore/verify" "^1.2.1"
sisteransi@^1.0.5:
version "1.0.5"
@@ -5960,19 +5531,19 @@ smart-buffer@^4.2.0:
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
-socks-proxy-agent@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6"
- integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==
+socks-proxy-agent@^8.0.3:
+ version "8.0.5"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee"
+ integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==
dependencies:
- agent-base "^6.0.2"
- debug "^4.3.3"
- socks "^2.6.2"
+ agent-base "^7.1.2"
+ debug "^4.3.4"
+ socks "^2.8.3"
-socks@^2.6.2:
- version "2.8.3"
- resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
- integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
+socks@^2.8.3:
+ version "2.8.4"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.4.tgz#07109755cdd4da03269bda4725baa061ab56d5cc"
+ integrity sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==
dependencies:
ip-address "^9.0.5"
smart-buffer "^4.2.0"
@@ -6023,14 +5594,14 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c"
integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==
-split2@^3.0.0:
+split2@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f"
integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==
dependencies:
readable-stream "^3.0.0"
-split@^1.0.0:
+split@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
@@ -6047,20 +5618,20 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-ssri@9.0.1, ssri@^9.0.0:
- version "9.0.1"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057"
- integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==
- dependencies:
- minipass "^3.1.1"
-
-ssri@^10.0.0, ssri@^10.0.1:
+ssri@^10.0.0:
version "10.0.5"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c"
integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==
dependencies:
minipass "^7.0.3"
+ssri@^10.0.6:
+ version "10.0.6"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5"
+ integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==
+ dependencies:
+ minipass "^7.0.3"
+
stack-utils@^2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
@@ -6076,7 +5647,16 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm: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:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
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==
@@ -6113,7 +5693,14 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm: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 "^5.0.1"
+
+strip-ansi@^6, 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==
@@ -6161,7 +5748,7 @@ strip-json-comments@^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==
-strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0:
+strong-log-transformer@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10"
integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==
@@ -6218,19 +5805,7 @@ tar-stream@~2.2.0:
inherits "^2.0.3"
readable-stream "^3.1.1"
-tar@6.1.11:
- version "6.1.11"
- resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
- integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
- dependencies:
- chownr "^2.0.0"
- fs-minipass "^2.0.0"
- minipass "^3.0.0"
- minizlib "^2.1.1"
- mkdirp "^1.0.3"
- yallist "^4.0.0"
-
-tar@^6.1.11, tar@^6.1.2:
+tar@6.2.1, tar@^6.1.11, tar@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
@@ -6247,22 +5822,6 @@ temp-dir@1.0.0:
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==
-temp-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
- integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
-
-tempy@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.0.tgz#4f192b3ee3328a2684d0e3fc5c491425395aab65"
- integrity sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==
- dependencies:
- del "^6.0.0"
- is-stream "^2.0.0"
- temp-dir "^2.0.0"
- type-fest "^0.16.0"
- unique-string "^2.0.0"
-
test-exclude@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
@@ -6290,13 +5849,6 @@ through2@^2.0.0, through2@^2.0.1:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through2@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
- integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
- dependencies:
- readable-stream "3"
-
through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -6403,14 +5955,14 @@ tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
-tuf-js@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43"
- integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==
+tuf-js@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56"
+ integrity sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==
dependencies:
- "@tufjs/models" "1.0.4"
+ "@tufjs/models" "2.0.1"
debug "^4.3.4"
- make-fetch-happen "^11.1.1"
+ make-fetch-happen "^13.0.1"
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
@@ -6424,11 +5976,6 @@ type-detect@4.0.8:
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-type-fest@^0.16.0:
- version "0.16.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
- integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
-
type-fest@^0.18.0:
version "0.18.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
@@ -6469,10 +6016,10 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
-"typescript@^3 || ^4":
- version "4.9.5"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
- integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+"typescript@>=3 < 6":
+ version "5.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
+ integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
typescript@^5.1.6:
version "5.4.5"
@@ -6489,13 +6036,6 @@ undici-types@~5.26.4:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
-unique-filename@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2"
- integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==
- dependencies:
- unique-slug "^3.0.0"
-
unique-filename@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea"
@@ -6503,13 +6043,6 @@ unique-filename@^3.0.0:
dependencies:
unique-slug "^4.0.0"
-unique-slug@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9"
- integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==
- dependencies:
- imurmurhash "^0.1.4"
-
unique-slug@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3"
@@ -6517,13 +6050,6 @@ unique-slug@^4.0.0:
dependencies:
imurmurhash "^0.1.4"
-unique-string@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
- integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
- dependencies:
- crypto-random-string "^2.0.0"
-
universal-user-agent@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa"
@@ -6539,7 +6065,7 @@ untildify@^4.0.0:
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
-upath@2.0.1, upath@^2.0.1:
+upath@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b"
integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==
@@ -6564,21 +6090,16 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-uuid@8.3.2:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+uuid@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
+ integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
v8-compile-cache-lib@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
-v8-compile-cache@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
- integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-
v8-to-istanbul@^9.0.1:
version "9.2.0"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad"
@@ -6596,19 +6117,10 @@ validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validat
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
-validate-npm-package-name@4.0.0, validate-npm-package-name@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747"
- integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==
- dependencies:
- builtins "^5.0.0"
-
-validate-npm-package-name@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
- integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==
- dependencies:
- builtins "^1.0.3"
+validate-npm-package-name@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8"
+ integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==
validate-npm-package-name@^5.0.0:
version "5.0.0"
@@ -6617,10 +6129,10 @@ validate-npm-package-name@^5.0.0:
dependencies:
builtins "^5.0.0"
-walk-up-path@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e"
- integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==
+walk-up-path@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886"
+ integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==
walker@^1.0.8:
version "1.0.8"
@@ -6649,21 +6161,21 @@ whatwg-url@^5.0.0:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"
-which@^2.0.1, which@^2.0.2:
+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"
-which@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1"
- integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==
+which@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a"
+ integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==
dependencies:
- isexe "^2.0.0"
+ isexe "^3.1.1"
-wide-align@^1.1.5:
+wide-align@1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
@@ -6675,7 +6187,7 @@ wordwrap@^1.0.0:
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+"wrap-ansi-cjs@npm: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==
@@ -6693,6 +6205,15 @@ wrap-ansi@^6.0.1:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+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 "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
@@ -6707,13 +6228,13 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-write-file-atomic@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f"
- integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==
+write-file-atomic@5.0.1, write-file-atomic@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7"
+ integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
dependencies:
imurmurhash "^0.1.4"
- signal-exit "^3.0.7"
+ signal-exit "^4.0.1"
write-file-atomic@^2.4.2:
version "2.4.3"
@@ -6732,14 +6253,6 @@ write-file-atomic@^4.0.2:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
-write-file-atomic@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7"
- integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
- dependencies:
- imurmurhash "^0.1.4"
- signal-exit "^4.0.1"
-
write-json-file@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a"
@@ -6781,15 +6294,10 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-yaml@^1.10.0:
- version "1.10.2"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
- integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-
-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==
+yaml@^2.6.0:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6"
+ integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==
yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1:
version "21.1.1"
@@ -6801,20 +6309,7 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^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@16.2.0, yargs@^16.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"
- string-width "^4.2.0"
- y18n "^5.0.5"
- yargs-parser "^20.2.2"
-
-yargs@^17.3.1, yargs@^17.6.2:
+yargs@17.7.2, yargs@^17.3.1, yargs@^17.6.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
@@ -6827,6 +6322,19 @@ yargs@^17.3.1, yargs@^17.6.2:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yargs@^16.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"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
yn@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
From fd38ea86cd599886a3cdd396d3242a148462c77a Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Thu, 8 May 2025 17:36:55 -0700
Subject: [PATCH 081/124] lerna
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index d254049..d07b3f7 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-unused-imports": "^3.0.0",
"jest": "^29.6.2",
- "lerna": "^8.2.2",
+ "lerna": "^6",
"prettier": "^3.0.2",
"strip-ansi": "^6",
"symlink-workspace": "^1.1.0",
From 8cd37ae36d4a3ae76cc31f47bcbc15fd8a6c8c84 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Thu, 8 May 2025 17:37:59 -0700
Subject: [PATCH 082/124] chore(release): publish
- inquirerer@1.9.1
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 0b94842..84e8b7a 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.9.1](https://github.com/pyramation/inquirerer/compare/inquirerer@1.9.0...inquirerer@1.9.1) (2025-05-09)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [1.9.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.8.0...inquirerer@1.9.0) (2024-04-30)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 124a7ca..4ab5178 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.9.0",
+ "version": "1.9.1",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 21b4c8205f926f3cc4ae72e8b07e0681a94a37a0 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 12 May 2025 16:55:29 -0700
Subject: [PATCH 083/124] defaults for text/number
---
packages/inquirerer/dev/index.ts | 10 +++++-----
packages/inquirerer/src/prompt.ts | 10 ++++++++--
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 87843af..9704114 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -30,15 +30,15 @@ const main = async () => {
const massive = await prompter.prompt({
}, [
- {
- name: 'num',
- type: 'number',
- required: true
- },
{
name: 'num2',
type: 'number',
default: 2
+ },
+ {
+ name: 'text2',
+ type: 'text',
+ default: 'tex'
}
])
console.log(JSON.stringify(massive, null, 2))
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index b844164..fb7722e 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -353,6 +353,7 @@ export class Inquirerer {
// Apply default value if applicable
// this is if useDefault is set, rare! not typical defaults which happen AFTER
+ // this is mostly to avoid a prompt for "hidden" options
if ('default' in question && (this.useDefaults || question.useDefault)) {
obj[question.name] = question.default;
continue; // Skip to the next question since the default is applied
@@ -446,6 +447,7 @@ export class Inquirerer {
case 'number':
return this.number(question as NumberQuestion, ctx);
case 'text':
+ return this.text(question as TextQuestion, ctx);
default:
return this.text(question as TextQuestion, ctx);
}
@@ -486,6 +488,8 @@ export class Inquirerer {
input = answer;
if (input.trim() !== '') {
resolve(input); // Return input if not empty
+ } else if ('default' in question) {
+ resolve(question.default); // Use default if input is empty
} else {
resolve(null); // Return null if empty and not required
}
@@ -512,10 +516,12 @@ export class Inquirerer {
if (!isNaN(num)) {
resolve(num);
} else {
- resolve(null);
+ resolve(null); // Let validation handle bad input
}
+ } else if ('default' in question) {
+ resolve(question.default); // Use default if input is empty
} else {
- resolve(null);
+ resolve(null); // Empty and no default
}
});
});
From f4985e5e4aa92e65b0d4cd2e4963a15b38f4425f Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 12 May 2025 17:14:12 -0700
Subject: [PATCH 084/124] Defaults for checkbox
---
packages/inquirerer/dev/index.ts | 15 ++++++++-
packages/inquirerer/src/prompt.ts | 41 ++++++++++++++++++++---
packages/inquirerer/src/question/types.ts | 2 +-
3 files changed, 52 insertions(+), 6 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 9704114..5be2cba 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -39,7 +39,20 @@ const main = async () => {
name: 'text2',
type: 'text',
default: 'tex'
- }
+ },
+ {
+ name: 'checkbox',
+ type: 'checkbox',
+ required: true,
+ default: ['RApple'],
+ options: [
+ { name: 'RApple', value: 'Fruit01' },
+ { name: 'RBanana', value: 'Fruit02' },
+ { name: 'RCherry', value: 'Fruit03' },
+ { name: 'RGrape', value: 'Fruit04' },
+ { name: 'RMango', value: 'Fruit05' }
+ ]
+ },
])
console.log(JSON.stringify(massive, null, 2))
prompter.close();
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index fb7722e..8cd79f0 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -504,9 +504,9 @@ export class Inquirerer {
}
return;
}
-
+
let input = '';
-
+
return new Promise((resolve) => {
this.clearScreen();
this.rl.question(this.getPrompt(question, ctx, input), (answer) => {
@@ -528,7 +528,30 @@ export class Inquirerer {
}
public async checkbox(question: CheckboxQuestion, ctx: PromptContext): Promise {
- if (this.noTty || !this.rl) return question.default ?? []; // Return default if non-interactive
+ if (this.noTty || !this.rl) {
+ const options = this.sanitizeOptions(question);
+
+ const defaults = Array.isArray(question.default)
+ ? question.default
+ : [question.default];
+
+ // If returnFullResults is true, return all options with boolean selection
+ if (question.returnFullResults) {
+ return options.map(opt => ({
+ name: opt.name,
+ value: defaults.includes(opt.name)
+ }));
+ }
+
+ // Otherwise, return only selected options
+ return options
+ .filter(opt => defaults.includes(opt.name) || defaults.includes(opt.value))
+ .map(opt => ({
+ name: opt.name,
+ value: opt.value
+ }));
+
+ }
if (!question.options.length) {
// no arguments don't make sense
@@ -542,7 +565,17 @@ export class Inquirerer {
let selectedIndex = 0;
let startIndex = 0; // Start index for visible options
const maxLines = this.getMaxLines(question, options.length) // Use provided max or total options
- const selections: boolean[] = new Array(options.length).fill(false);
+ // const selections: boolean[] = new Array(options.length).fill(false);
+
+ const selections: boolean[] = options.map(opt => {
+ if (!question.default) return false;
+
+ const defaults = Array.isArray(question.default)
+ ? question.default
+ : [question.default];
+
+ return defaults.includes(opt.name);
+ });
const updateFilteredOptions = (): void => {
filteredOptions = this.filterOptions(options, input);
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index d1207ad..955285b 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -44,7 +44,7 @@ export interface BaseQuestion {
options: (string|OptionValue)[];
maxDisplayLines?: number;
returnFullResults?: boolean;
- default?: Value[];
+ default?: string[];
}
export interface TextQuestion extends BaseQuestion {
From 016153732bff2e36a959f8da28032d63daca4390 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 12 May 2025 17:27:28 -0700
Subject: [PATCH 085/124] proper option values
---
.../__snapshots__/prompt.test.ts.snap | 15 ++++++---
packages/inquirerer/src/prompt.ts | 31 +++++++++++++------
packages/inquirerer/src/question/types.ts | 11 ++++++-
3 files changed, 42 insertions(+), 15 deletions(-)
diff --git a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
index c632e50..7bd546d 100644
--- a/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/prompt.test.ts.snap
@@ -5,11 +5,13 @@ exports[`Inquirerer checkbox 1`] = `
"checkbox": [
{
"name": "b",
- "value": true,
+ "selected": true,
+ "value": "b",
},
{
"name": "c",
- "value": true,
+ "selected": true,
+ "value": "c",
},
],
}
@@ -20,15 +22,18 @@ exports[`Inquirerer checkbox w/options 1`] = `
"checkbox": [
{
"name": "a",
- "value": false,
+ "selected": false,
+ "value": "a",
},
{
"name": "b",
- "value": true,
+ "selected": true,
+ "value": "b",
},
{
"name": "c",
- "value": true,
+ "selected": true,
+ "value": "c",
},
],
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 8cd79f0..ea40e3b 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -3,7 +3,7 @@ import readline from 'readline';
import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
-import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, NumberQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
+import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, ListQuestion, NumberQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
export interface ManPageInfo {
commandName: string;
@@ -91,7 +91,13 @@ function generatePromptMessage(question: Question, ctx: PromptContext): string {
promptMessage += ` [${question.default}]`;
}
break;
+ case 'number':
+ if (question.default) {
+ promptMessage += ` [${question.default}]`;
+ }
+ break;
case 'autocomplete':
+ case 'list':
case 'checkbox':
// For these types, you might want to show the default selected options if any
if (question.options && question.default) {
@@ -412,11 +418,13 @@ export class Inquirerer {
private handleOverrides(argv: any, obj: any, question: Question): void {
switch (question.type) {
case 'text':
+ case 'number':
case 'confirm':
// do nothing, already set!
break;
case 'checkbox':
case 'autocomplete':
+ case 'list':
// get the value from options :)
this.handleOverridesWithOptions(argv, obj, question);
break;
@@ -425,7 +433,7 @@ export class Inquirerer {
}
}
- private handleOverridesWithOptions(argv: any, obj: any, question: CheckboxQuestion | AutocompleteQuestion): void {
+ private handleOverridesWithOptions(argv: any, obj: any, question: CheckboxQuestion | AutocompleteQuestion | ListQuestion): void {
// obj is already either argv itself, or a clone, but let's check if it has the property
if (Object.prototype.hasOwnProperty.call(argv, question.name) && typeof argv[question.name] === 'string') {
const options = this.sanitizeOptions(question);
@@ -442,6 +450,7 @@ export class Inquirerer {
return this.confirm(question as ConfirmQuestion, ctx);
case 'checkbox':
return this.checkbox(question as CheckboxQuestion, ctx);
+ case 'list':
case 'autocomplete':
return this.autocomplete(question as AutocompleteQuestion, ctx);
case 'number':
@@ -539,7 +548,8 @@ export class Inquirerer {
if (question.returnFullResults) {
return options.map(opt => ({
name: opt.name,
- value: defaults.includes(opt.name)
+ value: opt.value,
+ selected: defaults.includes(opt.name)
}));
}
@@ -548,7 +558,8 @@ export class Inquirerer {
.filter(opt => defaults.includes(opt.name) || defaults.includes(opt.value))
.map(opt => ({
name: opt.name,
- value: opt.value
+ value: opt.value,
+ selected: true
}));
}
@@ -644,16 +655,17 @@ export class Inquirerer {
display();
});
- return new Promise(resolve => {
+ return new Promise(resolve => {
this.keypress.on(KEY_CODES.ENTER, () => {
this.keypress.pause();
- const result: Value[] = [];
+ const result: OptionValue[] = [];
if (question.returnFullResults) {
// Return all options with their selected status
options.forEach((option, index) => {
result.push({
name: option.name,
- value: selections[index]
+ value: option.value,
+ selected: selections[index]
});
});
} else {
@@ -662,7 +674,8 @@ export class Inquirerer {
if (selections[index]) {
result.push({
name: option.name,
- value: selections[index]
+ value: option.value,
+ selected: selections[index]
});
}
});
@@ -779,7 +792,7 @@ export class Inquirerer {
}
}
- private sanitizeOptions(question: AutocompleteQuestion | CheckboxQuestion): OptionValue[] {
+ private sanitizeOptions(question: AutocompleteQuestion | CheckboxQuestion | ListQuestion): OptionValue[] {
const options = (question.options ?? []).map(option => this.getOptionValue(option));
return options.filter(Boolean);
}
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index 955285b..5fae700 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -5,6 +5,7 @@ export interface Value {
export interface OptionValue {
name: string;
value: any;
+ selected?: boolean;
}
export interface Validation {
@@ -38,6 +39,14 @@ export interface BaseQuestion {
returnFullResults?: boolean;
allowCustomOptions?: boolean;
}
+
+ export interface ListQuestion extends BaseQuestion {
+ type: 'list';
+ options: (string|OptionValue)[];
+ maxDisplayLines?: number;
+ returnFullResults?: boolean;
+ allowCustomOptions?: boolean;
+ }
export interface CheckboxQuestion extends BaseQuestion {
type: 'checkbox';
@@ -57,4 +66,4 @@ export interface BaseQuestion {
default?: number;
}
- export type Question = ConfirmQuestion | AutocompleteQuestion | CheckboxQuestion | TextQuestion | NumberQuestion;
\ No newline at end of file
+ export type Question = ConfirmQuestion | ListQuestion | AutocompleteQuestion | CheckboxQuestion | TextQuestion | NumberQuestion;
\ No newline at end of file
From aa6ac282c2a3019fef455f0c45e5cad1bbdeb53d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 12 May 2025 17:28:18 -0700
Subject: [PATCH 086/124] chore(release): publish
- inquirerer@2.0.0
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 84e8b7a..8d8473e 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [2.0.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.9.1...inquirerer@2.0.0) (2025-05-13)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [1.9.1](https://github.com/pyramation/inquirerer/compare/inquirerer@1.9.0...inquirerer@1.9.1) (2025-05-09)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 4ab5178..c88c5d1 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "1.9.1",
+ "version": "2.0.0",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From f6f0f50f9ffc23d629d497908e62626a4b433385 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 12 May 2025 22:39:01 -0400
Subject: [PATCH 087/124] handlers
---
packages/inquirerer/dev/index.ts | 42 +++++++++++---
packages/inquirerer/src/keypress.ts | 4 ++
packages/inquirerer/src/prompt.ts | 90 +++++++++++++++++++++++++++++
3 files changed, 128 insertions(+), 8 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 5be2cba..1b726e3 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -30,19 +30,45 @@ const main = async () => {
const massive = await prompter.prompt({
}, [
+ // {
+ // name: 'num2',
+ // type: 'number',
+ // default: 2
+ // },
+ // {
+ // name: 'text2',
+ // type: 'text',
+ // default: 'tex'
+ // },
{
- name: 'num2',
- type: 'number',
- default: 2
+ name: 'checkbox',
+ type: 'checkbox',
+ required: true,
+ default: ['RApple'],
+ options: [
+ { name: 'RApple', value: 'Fruit01' },
+ { name: 'RBanana', value: 'Fruit02' },
+ { name: 'RCherry', value: 'Fruit03' },
+ { name: 'RGrape', value: 'Fruit04' },
+ { name: 'RMango', value: 'Fruit05' }
+ ]
},
{
- name: 'text2',
- type: 'text',
- default: 'tex'
+ name: 'list',
+ type: 'list',
+ required: true,
+ default: ['RApple'],
+ options: [
+ { name: 'RApple', value: 'Fruit01' },
+ { name: 'RBanana', value: 'Fruit02' },
+ { name: 'RCherry', value: 'Fruit03' },
+ { name: 'RGrape', value: 'Fruit04' },
+ { name: 'RMango', value: 'Fruit05' }
+ ]
},
{
- name: 'checkbox',
- type: 'checkbox',
+ name: 'autocomplete',
+ type: 'autocomplete',
required: true,
default: ['RApple'],
options: [
diff --git a/packages/inquirerer/src/keypress.ts b/packages/inquirerer/src/keypress.ts
index 94440e1..31761b3 100644
--- a/packages/inquirerer/src/keypress.ts
+++ b/packages/inquirerer/src/keypress.ts
@@ -79,6 +79,10 @@ export class TerminalKeypress {
}
}
+ clearHandlers(): void {
+ this.listeners = {};
+ }
+
pause(): void {
this.active = false;
}
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index ea40e3b..2e9f584 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -445,12 +445,14 @@ export class Inquirerer {
}
private async handleQuestionType(question: Question, ctx: PromptContext): Promise {
+ this.keypress.clearHandlers();
switch (question.type) {
case 'confirm':
return this.confirm(question as ConfirmQuestion, ctx);
case 'checkbox':
return this.checkbox(question as CheckboxQuestion, ctx);
case 'list':
+ return this.list(question as ListQuestion, ctx);
case 'autocomplete':
return this.autocomplete(question as AutocompleteQuestion, ctx);
case 'number':
@@ -782,6 +784,94 @@ export class Inquirerer {
});
}
+ public async list(question: ListQuestion, ctx: PromptContext): Promise {
+ if (this.noTty || !this.rl) {
+ if ('default' in question) {
+ return question.default;
+ }
+ return;
+ }
+
+ if (!question.options.length) {
+ throw new Error('list requires options');
+ }
+
+ this.keypress.resume();
+ const options = this.sanitizeOptions(question);
+
+ let input = '';
+ let selectedIndex = 0;
+ let startIndex = 0; // Start index for visible options
+ const maxLines = this.getMaxLines(question, options.length) // Use provided max or total options
+
+ const display = (): void => {
+ this.clearScreen();
+ this.displayPrompt(question, ctx, input);
+ // Determine the range of options to display
+ const endIndex = Math.min(startIndex + maxLines, options.length);
+ for (let i = startIndex; i < endIndex; i++) {
+ const option = options[i];
+ if (!option) {
+ this.log('No options'); // sometimes user searches and there are no options...
+ } else if (i === selectedIndex) {
+ this.log(chalk.blue('> ' + option.name)); // Highlight the selected option with chalk
+ } else {
+ this.log(' ' + option.name);
+ }
+ }
+ };
+
+ display();
+
+
+ // // Handling these because otherwise they're bound by OTHER methods! memory leak.
+ // // e.g. you have checkbox before, then you have a list.... if you don't also do keys and backspace
+ // // it will start to display the closure from the
+ // // @ts-ignore
+ // // this.keypress.input.removeAllListeners('data');
+
+ // // Handling BACKSPACE key
+ // this.keypress.off(KEY_CODES.BACKSPACE);
+
+ // // Register alphanumeric and space keypresses to accumulate input
+ // 'abcdefghijklmnopqrstuvwxyz0123456789 '.split('').forEach(char => {
+ // this.keypress.off(char);
+ // });
+
+ // this.keypress.on(KEY_CODES.SPACE, () => {
+ // display();
+ // });
+
+
+
+ // Navigation
+ this.keypress.on(KEY_CODES.UP_ARROW, () => {
+ selectedIndex = selectedIndex - 1 >= 0 ? selectedIndex - 1 : options.length - 1;
+ if (selectedIndex < startIndex) {
+ startIndex = selectedIndex; // Scroll up
+ } else if (selectedIndex === options.length - 1) {
+ startIndex = Math.max(0, options.length - maxLines); // Jump to the bottom of the list
+ }
+ display();
+ });
+ this.keypress.on(KEY_CODES.DOWN_ARROW, () => {
+ selectedIndex = (selectedIndex + 1) % options.length;
+ if (selectedIndex >= startIndex + maxLines) {
+ startIndex = selectedIndex - maxLines + 1; // Scroll down
+ } else if (selectedIndex === 0) {
+ startIndex = 0; // Jump to the top of the list
+ }
+ display();
+ });
+
+ return new Promise(resolve => {
+ this.keypress.on(KEY_CODES.ENTER, () => {
+ this.keypress.pause();
+ resolve(options[selectedIndex]?.value || input);
+ });
+ });
+ }
+
private getOptionValue(option: string | OptionValue): OptionValue {
if (typeof option === 'string') {
return { name: option, value: option };
From b20090e1514228a9010745404b3d17e7716f054b Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Mon, 12 May 2025 22:39:13 -0400
Subject: [PATCH 088/124] chore(release): publish
- inquirerer@2.0.1
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 8d8473e..b662719 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.0.1](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.0...inquirerer@2.0.1) (2025-05-13)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
# [2.0.0](https://github.com/pyramation/inquirerer/compare/inquirerer@1.9.1...inquirerer@2.0.0) (2025-05-13)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index c88c5d1..39d18b2 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "2.0.0",
+ "version": "2.0.1",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From a1d5b4cc8995d9999511cea6027f2ded5589b466 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 13 May 2025 02:10:20 -0400
Subject: [PATCH 089/124] overrides coersion
---
packages/inquirerer/dev/index.ts | 3 +-
packages/inquirerer/src/prompt.ts | 62 ++++++++++++++++++++++++++++---
2 files changed, 58 insertions(+), 7 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 1b726e3..3ffd7ad 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -28,8 +28,7 @@ const prompter = new Inquirerer({
const main = async () => {
- const massive = await prompter.prompt({
- }, [
+ const massive = await prompter.prompt(argv, [
// {
// name: 'num2',
// type: 'number',
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 2e9f584..423776d 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -4,6 +4,11 @@ import { Readable, Writable } from 'stream';
import { KEY_CODES, TerminalKeypress } from './keypress';
import { AutocompleteQuestion, CheckboxQuestion, ConfirmQuestion, ListQuestion, NumberQuestion, OptionValue, Question, TextQuestion, Validation, Value } from './question';
+// import { writeFileSync } from 'fs';
+
+// const debuglog = (obj: any) => {
+// writeFileSync('tailme', JSON.stringify(obj, null, 2));
+// }
export interface ManPageInfo {
commandName: string;
@@ -416,6 +421,10 @@ export class Inquirerer {
}
private handleOverrides(argv: any, obj: any, question: Question): void {
+ if (!Object.prototype.hasOwnProperty.call(argv, question.name)) {
+ return;
+ }
+
switch (question.type) {
case 'text':
case 'number':
@@ -423,6 +432,8 @@ export class Inquirerer {
// do nothing, already set!
break;
case 'checkbox':
+ this.handleOverridesForCheckboxOptions(argv, obj, question);
+ break;
case 'autocomplete':
case 'list':
// get the value from options :)
@@ -433,11 +444,52 @@ export class Inquirerer {
}
}
- private handleOverridesWithOptions(argv: any, obj: any, question: CheckboxQuestion | AutocompleteQuestion | ListQuestion): void {
- // obj is already either argv itself, or a clone, but let's check if it has the property
- if (Object.prototype.hasOwnProperty.call(argv, question.name) && typeof argv[question.name] === 'string') {
+ private handleOverridesForCheckboxOptions(
+ argv: any,
+ obj: any,
+ question: CheckboxQuestion
+ ): void {
+
+ const options = this.sanitizeOptions(question);
+ const input = argv[question.name];
+
+ if (typeof input === 'string') {
+
+ const found = options.filter(
+ opt => opt.name === input || String(opt.value) === input
+ );
+
+ if (found.length) {
+ obj[question.name] = found
+ }
+ } else if (Array.isArray(input)) {
+
+ const found = options.filter(
+ opt => input.includes(opt.name) || input.includes(String(opt.value))
+ );
+
+ if (found.length) {
+ obj[question.name] = found
+ }
+ }
+ }
+
+
+ private handleOverridesWithOptions(
+ argv: any,
+ obj: any,
+ question: AutocompleteQuestion | ListQuestion | CheckboxQuestion
+ ): void {
+ if (
+ typeof argv[question.name] === 'string'
+ ) {
const options = this.sanitizeOptions(question);
- const found = options.find(option => option.name === argv[question.name]);
+ const input = argv[question.name];
+
+ const found = options.find(
+ opt => opt.name === input || String(opt.value) === input
+ );
+
if (typeof found !== 'undefined') {
obj[question.name] = found.value;
}
@@ -829,7 +881,7 @@ export class Inquirerer {
// // it will start to display the closure from the
// // @ts-ignore
// // this.keypress.input.removeAllListeners('data');
-
+
// // Handling BACKSPACE key
// this.keypress.off(KEY_CODES.BACKSPACE);
From 09049ba4fd2682bf1761155acf3df0095feacbf1 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 13 May 2025 02:29:56 -0400
Subject: [PATCH 090/124] prompts
---
packages/inquirerer/src/prompt.ts | 129 +++++++++++++++++++++++++-----
1 file changed, 111 insertions(+), 18 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 423776d..52373a6 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -78,44 +78,137 @@ class PromptContext {
}
-function generatePromptMessage(question: Question, ctx: PromptContext): string {
- let promptMessage: string = '';
- if (question.message) {
- promptMessage = chalk.whiteBright(question.message) + '\n';
+function generatePromptMessageSuccinct(question: Question, ctx: PromptContext): string {
+ const {
+ message,
+ name,
+ type,
+ default: def,
+ options = []
+ } = question as Question & { options?: OptionValue[] };
+
+ const lines: string[] = [];
+
+ // 1. Main prompt label
+ lines.push(chalk.whiteBright.bold(message || `${name}?`));
+
+ // 2. Validation message if applicable
+ const validation = validationMessage(question, ctx);
+ if (validation) {
+ lines.push(validation); // already styled red
}
- promptMessage += `${chalk.white('[')}${chalk.green('--' + question.name)}${chalk.white(']:')}\n`;
- promptMessage = validationMessage(question, ctx) + promptMessage;
+ // 3. Append default inline (only if present)
+ let inline = '';
- switch (question.type) {
+ switch (type) {
case 'confirm':
- promptMessage += `(y/n)${question.default !== undefined ? ` [${question.default ? 'y' : 'n'}]` : ''}`;
+ inline = '(y/n)';
+ if (def !== undefined) {
+ inline += ` ${chalk.yellow(`[${def ? 'y' : 'n'}]`)}`;
+ }
break;
+
case 'text':
- if (question.default) {
- promptMessage += ` [${question.default}]`;
+ case 'number':
+ if (def !== undefined) {
+ inline += `${chalk.yellow(`[${def}]`)}`;
+ }
+ break;
+
+ case 'autocomplete':
+ case 'list':
+ case 'checkbox':
+ if (def !== undefined) {
+ const defaults = Array.isArray(def) ? def : [def];
+ const rendered = defaults.map(d => chalk.yellow(d)).join(chalk.gray(', '));
+ inline += `${chalk.yellow(`[${rendered}]`)}`;
}
break;
+ }
+
+ if (inline) {
+ lines[lines.length - 1] += ' ' + inline; // append to prompt line
+ }
+
+ // 4. Final input line
+ lines.push('> ');
+
+ return lines.join('\n');
+}
+
+function generatePromptMessage(question: Question, ctx: PromptContext): string {
+ const {
+ message,
+ name,
+ type,
+ default: def,
+ options = [],
+ description
+ } = question as Question & { options?: OptionValue[]; description?: string };
+
+ const lines: string[] = [];
+
+ // 1. Title Message
+ lines.push(chalk.whiteBright.bold(message || `${name}?`));
+
+ // 2. Optional description below title
+ if (description) {
+ lines.push(chalk.dim(description));
+ }
+
+ // 3. Validation warning (if failed before)
+ const validation = validationMessage(question, ctx);
+ if (validation) {
+ lines.push(validation); // already red-colored
+ }
+
+ // 4. Metadata (name/type)
+ lines.push(
+ `${chalk.dim('Argument')} ${chalk.green(`--${name}`)} ${chalk.dim('type')} ${chalk.cyan(`[${type}]`)}`
+ );
+
+ // 5. Default value or guidance
+ let guidance = '';
+
+ switch (type) {
+ case 'confirm':
+ guidance = '(y/n)';
+ if (def !== undefined) {
+ guidance += ` ${chalk.yellow(`[default: ${def ? 'y' : 'n'}]`)}`;
+ }
+ break;
+
+ case 'text':
case 'number':
- if (question.default) {
- promptMessage += ` [${question.default}]`;
+ if (def !== undefined) {
+ guidance = chalk.yellow(`[default: ${def}]`);
}
break;
+
case 'autocomplete':
case 'list':
case 'checkbox':
- // For these types, you might want to show the default selected options if any
- if (question.options && question.default) {
- const defaultOptions = Array.isArray(question.default) ? question.default : [question.default];
- const defaultText = defaultOptions.join(', ');
- promptMessage += ` [${defaultText}]`;
+ if (def !== undefined) {
+ const defaults = Array.isArray(def) ? def : [def];
+ const rendered = defaults.map(d => chalk.yellow(d)).join(chalk.gray(', '));
+ guidance += `${chalk.yellow(`[default: ${rendered}]`)}`;
}
break;
}
- return promptMessage;
+ if (guidance) {
+ lines.push(guidance);
+ }
+
+ // 6. Final input prompt
+ lines.push(chalk.white('> ') + chalk.dim('Your input:'));
+
+ return lines.join('\n') + '\n';
}
+
+
export interface InquirererOptions {
noTty?: boolean;
input?: Readable;
From 6aacc5cdbfbcd7829f3c3404bf90487edb48b21d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 13 May 2025 02:41:57 -0400
Subject: [PATCH 091/124] comments
---
packages/inquirerer/src/prompt.ts | 21 ---------------------
1 file changed, 21 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index 52373a6..a953fe1 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -968,27 +968,6 @@ export class Inquirerer {
display();
-
- // // Handling these because otherwise they're bound by OTHER methods! memory leak.
- // // e.g. you have checkbox before, then you have a list.... if you don't also do keys and backspace
- // // it will start to display the closure from the
- // // @ts-ignore
- // // this.keypress.input.removeAllListeners('data');
-
- // // Handling BACKSPACE key
- // this.keypress.off(KEY_CODES.BACKSPACE);
-
- // // Register alphanumeric and space keypresses to accumulate input
- // 'abcdefghijklmnopqrstuvwxyz0123456789 '.split('').forEach(char => {
- // this.keypress.off(char);
- // });
-
- // this.keypress.on(KEY_CODES.SPACE, () => {
- // display();
- // });
-
-
-
// Navigation
this.keypress.on(KEY_CODES.UP_ARROW, () => {
selectedIndex = selectedIndex - 1 >= 0 ? selectedIndex - 1 : options.length - 1;
From 31272dabfb2ffff30f5cee76fd4eeca0b1d72d1d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 13 May 2025 02:42:58 -0400
Subject: [PATCH 092/124] snap
---
.../__snapshots__/autocomplete.test.ts.snap | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
index 9779aab..79de39c 100644
--- a/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
+++ b/packages/inquirerer/__tests__/__snapshots__/autocomplete.test.ts.snap
@@ -15,7 +15,9 @@ exports[`Inquirerer prompts user and correctly processes delayed input 2`] = `
exports[`Inquirerer prompts user and correctly processes delayed input 3`] = `
[
"",
- "[--autocompleteField]:
+ "autocompleteField?
+Argument--autocompleteFieldtype[autocomplete]
+>Yourinput:
$
",
">firstoption
@@ -25,7 +27,9 @@ $
"firrythirdoption
",
"",
- "[--autocompleteField]:
+ "autocompleteField?
+Argument--autocompleteFieldtype[autocomplete]
+>Yourinput:
$
",
"firstoption
@@ -35,7 +39,9 @@ $
"firrythirdoption
",
"",
- "[--autocompleteField]:
+ "autocompleteField?
+Argument--autocompleteFieldtype[autocomplete]
+>Yourinput:
$
",
"firstoption
From fc307e6e86487ed8419f80182341340e7a85cc53 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 13 May 2025 02:43:25 -0400
Subject: [PATCH 093/124] test case
---
packages/inquirerer/dev/index.ts | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index 3ffd7ad..e087db0 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -29,21 +29,24 @@ const prompter = new Inquirerer({
const main = async () => {
const massive = await prompter.prompt(argv, [
- // {
- // name: 'num2',
- // type: 'number',
- // default: 2
- // },
- // {
- // name: 'text2',
- // type: 'text',
- // default: 'tex'
- // },
+ {
+ name: 'num2',
+ type: 'number',
+ message: 'Db enterprises?',
+ description: 'here is a field for whatever.',
+ default: 2
+ },
+ {
+ name: 'text2',
+ type: 'text',
+ description: 'here is a field for whatever.',
+ default: 'tex'
+ },
{
name: 'checkbox',
type: 'checkbox',
required: true,
- default: ['RApple'],
+ default: ['RBanana', 'RCherry'],
options: [
{ name: 'RApple', value: 'Fruit01' },
{ name: 'RBanana', value: 'Fruit02' },
@@ -56,7 +59,7 @@ const main = async () => {
name: 'list',
type: 'list',
required: true,
- default: ['RApple'],
+ default: ['RCherry'],
options: [
{ name: 'RApple', value: 'Fruit01' },
{ name: 'RBanana', value: 'Fruit02' },
@@ -69,7 +72,7 @@ const main = async () => {
name: 'autocomplete',
type: 'autocomplete',
required: true,
- default: ['RApple'],
+ default: ['RGrape'],
options: [
{ name: 'RApple', value: 'Fruit01' },
{ name: 'RBanana', value: 'Fruit02' },
From f98034d733c0a9f3f1b1c9565698362534d2c720 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Tue, 13 May 2025 02:43:35 -0400
Subject: [PATCH 094/124] chore(release): publish
- inquirerer@2.0.2
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index b662719..6fc3d3b 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.0.2](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.1...inquirerer@2.0.2) (2025-05-13)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [2.0.1](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.0...inquirerer@2.0.1) (2025-05-13)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 39d18b2..18264de 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "2.0.1",
+ "version": "2.0.2",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 1495040db8d6766987c66d2610a156b68d2c10f5 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 09:05:32 -0400
Subject: [PATCH 095/124] keypress can be null
---
packages/inquirerer/src/prompt.ts | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index a953fe1..b67153f 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -220,7 +220,7 @@ export interface InquirererOptions {
}
export class Inquirerer {
private rl: readline.Interface | null;
- private keypress: TerminalKeypress;
+ private keypress: TerminalKeypress | null;
private noTty: boolean;
private output: Writable;
private input: Readable;
@@ -255,6 +255,7 @@ export class Inquirerer {
this.keypress = new TerminalKeypress(noTty, input);
} else {
this.rl = null;
+ this.keypress = null;
}
}
@@ -590,7 +591,7 @@ export class Inquirerer {
}
private async handleQuestionType(question: Question, ctx: PromptContext): Promise {
- this.keypress.clearHandlers();
+ this.keypress?.clearHandlers();
switch (question.type) {
case 'confirm':
return this.confirm(question as ConfirmQuestion, ctx);
From 9f50b55ef2ade53350fb6983785257b68639e032 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 09:05:38 -0400
Subject: [PATCH 096/124] chore(release): publish
- inquirerer@2.0.3
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 6fc3d3b..c4e1c2d 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.0.3](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.2...inquirerer@2.0.3) (2025-05-14)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [2.0.2](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.1...inquirerer@2.0.2) (2025-05-13)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index 18264de..e80c0a0 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "2.0.2",
+ "version": "2.0.3",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 236da46397e958c19506a3bbd6397bf00939b21e Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 09:48:29 -0400
Subject: [PATCH 097/124] test prompt for overrides
---
packages/inquirerer/dev/index.ts | 104 ++++++++++++++++--------------
packages/inquirerer/src/prompt.ts | 15 ++++-
2 files changed, 69 insertions(+), 50 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index e087db0..bb4f88d 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -17,6 +17,9 @@ if (!('tty' in argv)) {
console.log(argv);
+// argv.checkbox = ['RBanana'];
+// argv.checkbox = ['RBanana', 'RCherry'];
+
if (argv.version) {
displayVersion();
process.exit(0);
@@ -29,58 +32,65 @@ const prompter = new Inquirerer({
const main = async () => {
const massive = await prompter.prompt(argv, [
- {
- name: 'num2',
- type: 'number',
- message: 'Db enterprises?',
- description: 'here is a field for whatever.',
- default: 2
- },
- {
- name: 'text2',
- type: 'text',
- description: 'here is a field for whatever.',
- default: 'tex'
- },
+ // {
+ // name: 'num2',
+ // type: 'number',
+ // message: 'Db enterprises?',
+ // description: 'here is a field for whatever.',
+ // default: 2
+ // },
+ // {
+ // name: 'text2',
+ // type: 'text',
+ // description: 'here is a field for whatever.',
+ // default: 'tex'
+ // },
{
name: 'checkbox',
type: 'checkbox',
required: true,
- default: ['RBanana', 'RCherry'],
- options: [
- { name: 'RApple', value: 'Fruit01' },
- { name: 'RBanana', value: 'Fruit02' },
- { name: 'RCherry', value: 'Fruit03' },
- { name: 'RGrape', value: 'Fruit04' },
- { name: 'RMango', value: 'Fruit05' }
- ]
- },
- {
- name: 'list',
- type: 'list',
- required: true,
- default: ['RCherry'],
- options: [
- { name: 'RApple', value: 'Fruit01' },
- { name: 'RBanana', value: 'Fruit02' },
- { name: 'RCherry', value: 'Fruit03' },
- { name: 'RGrape', value: 'Fruit04' },
- { name: 'RMango', value: 'Fruit05' }
- ]
- },
- {
- name: 'autocomplete',
- type: 'autocomplete',
- required: true,
- default: ['RGrape'],
- options: [
- { name: 'RApple', value: 'Fruit01' },
- { name: 'RBanana', value: 'Fruit02' },
- { name: 'RCherry', value: 'Fruit03' },
- { name: 'RGrape', value: 'Fruit04' },
- { name: 'RMango', value: 'Fruit05' }
- ]
+ // default: ['RBanana', 'RCherry'],
+ options: ['RBanana', 'RCherry']
},
+ // {
+ // name: 'checkbox',
+ // type: 'checkbox',
+ // required: true,
+ // default: ['RBanana', 'RCherry'],
+ // options: [
+ // { name: 'RApple', value: 'Fruit01' },
+ // { name: 'RBanana', value: 'Fruit02' },
+ // { name: 'RCherry', value: 'Fruit03' },
+ // { name: 'RGrape', value: 'Fruit04' },
+ // { name: 'RMango', value: 'Fruit05' }
+ // ]
+ // },
+ // {
+ // name: 'list',
+ // type: 'list',
+ // required: true,
+ // default: ['RCherry'],
+ // options: [
+ // { name: 'RApple', value: 'Fruit01' },
+ // { name: 'RBanana', value: 'Fruit02' },
+ // { name: 'RCherry', value: 'Fruit03' },
+ // { name: 'RGrape', value: 'Fruit04' },
+ // { name: 'RMango', value: 'Fruit05' }
+ // ]
+ // },
+ // {
+ // name: 'autocomplete',
+ // type: 'autocomplete',
+ // required: true,
+ // default: ['RGrape'],
+ // options: [
+ // { name: 'RApple', value: 'Fruit01' },
+ // { name: 'RBanana', value: 'Fruit02' },
+ // { name: 'RCherry', value: 'Fruit03' },
+ // { name: 'RGrape', value: 'Fruit04' },
+ // { name: 'RMango', value: 'Fruit05' }
+ // ]
+ // },
])
console.log(JSON.stringify(massive, null, 2))
prompter.close();
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index b67153f..dcdf267 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -554,16 +554,25 @@ export class Inquirerer {
);
if (found.length) {
- obj[question.name] = found
+ obj[question.name] = found.map(f=>{
+ return {
+ ...f,
+ selected: true
+ }
+ });
}
} else if (Array.isArray(input)) {
-
const found = options.filter(
opt => input.includes(opt.name) || input.includes(String(opt.value))
);
if (found.length) {
- obj[question.name] = found
+ obj[question.name] = found.map(f=>{
+ return {
+ ...f,
+ selected: true
+ }
+ });
}
}
}
From fe5ce05ae6ffa6e93c6f91fc28b0d2be6de791fe Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 09:48:36 -0400
Subject: [PATCH 098/124] chore(release): publish
- inquirerer@2.0.4
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index c4e1c2d..813a33b 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.0.4](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.3...inquirerer@2.0.4) (2025-05-14)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [2.0.3](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.2...inquirerer@2.0.3) (2025-05-14)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index e80c0a0..e917021 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "2.0.3",
+ "version": "2.0.4",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 7eb47093be872425e981cf9086d209bc2c3fc892 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 10:28:15 -0400
Subject: [PATCH 099/124] AllowCustomOptions
---
packages/inquirerer/dev/index.ts | 11 +++-
packages/inquirerer/src/prompt.ts | 63 +++++++++++++----------
packages/inquirerer/src/question/types.ts | 5 +-
3 files changed, 45 insertions(+), 34 deletions(-)
diff --git a/packages/inquirerer/dev/index.ts b/packages/inquirerer/dev/index.ts
index bb4f88d..55c8836 100644
--- a/packages/inquirerer/dev/index.ts
+++ b/packages/inquirerer/dev/index.ts
@@ -18,7 +18,8 @@ if (!('tty' in argv)) {
console.log(argv);
// argv.checkbox = ['RBanana'];
-// argv.checkbox = ['RBanana', 'RCherry'];
+// argv.checkbox = ['Banana'];
+argv.checkbox = ['Banana', 'Cherry', 'Blos'];
if (argv.version) {
displayVersion();
@@ -50,7 +51,13 @@ const main = async () => {
type: 'checkbox',
required: true,
// default: ['RBanana', 'RCherry'],
- options: ['RBanana', 'RCherry']
+ allowCustomOptions: true,
+ returnFullResults: true,
+ options: [
+ 'Banana',
+ 'Cherry',
+ 'Grape'
+ ]
},
// {
// name: 'checkbox',
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index dcdf267..a8ff54a 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -228,6 +228,8 @@ export class Inquirerer {
private globalMaxLines: number;
private mutateArgs: boolean;
+ private handledKeys: Set = new Set();
+
constructor(
options?: InquirererOptions
) {
@@ -519,6 +521,11 @@ export class Inquirerer {
return;
}
+ if (this.handledKeys.has(question.name)) {
+ return; // Already handled, skip further processing
+ }
+ this.handledKeys.add(question.name);
+
switch (question.type) {
case 'text':
case 'number':
@@ -543,41 +550,41 @@ export class Inquirerer {
obj: any,
question: CheckboxQuestion
): void {
-
const options = this.sanitizeOptions(question);
const input = argv[question.name];
-
- if (typeof input === 'string') {
-
- const found = options.filter(
- opt => opt.name === input || String(opt.value) === input
- );
-
- if (found.length) {
- obj[question.name] = found.map(f=>{
- return {
- ...f,
- selected: true
- }
- });
- }
- } else if (Array.isArray(input)) {
- const found = options.filter(
- opt => input.includes(opt.name) || input.includes(String(opt.value))
- );
-
- if (found.length) {
- obj[question.name] = found.map(f=>{
- return {
- ...f,
- selected: true
- }
+
+ // Normalize to array
+ const inputs: string[] = Array.isArray(input) ? input.map(String) : [String(input)];
+
+ // Set of matched values
+ const inputSet = new Set(inputs);
+
+ // Base list of processed options
+ const result: OptionValue[] = options.map(opt => ({
+ ...opt,
+ selected: inputSet.has(opt.name) || inputSet.has(String(opt.value))
+ }));
+
+ // Add extras if allowed
+ if (question.allowCustomOptions) {
+ const knownValues = new Set(options.map(opt => String(opt.value)));
+ const unknowns = inputs.filter(val => !knownValues.has(val));
+
+ for (const val of unknowns) {
+ result.push({
+ name: val,
+ value: val,
+ selected: true
});
}
}
+
+ // Assign final result
+ obj[question.name] = question.returnFullResults
+ ? result
+ : result.filter(opt => opt.selected);
}
-
private handleOverridesWithOptions(
argv: any,
obj: any,
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index 5fae700..b0860cb 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -36,16 +36,12 @@ export interface BaseQuestion {
type: 'autocomplete';
options: (string|OptionValue)[];
maxDisplayLines?: number;
- returnFullResults?: boolean;
- allowCustomOptions?: boolean;
}
export interface ListQuestion extends BaseQuestion {
type: 'list';
options: (string|OptionValue)[];
maxDisplayLines?: number;
- returnFullResults?: boolean;
- allowCustomOptions?: boolean;
}
export interface CheckboxQuestion extends BaseQuestion {
@@ -53,6 +49,7 @@ export interface BaseQuestion {
options: (string|OptionValue)[];
maxDisplayLines?: number;
returnFullResults?: boolean;
+ allowCustomOptions?: boolean;
default?: string[];
}
From 5302e9c3747a4b0ad21058538b96e848104cc41d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 10:28:19 -0400
Subject: [PATCH 100/124] chore(release): publish
- inquirerer@2.0.5
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 813a33b..85c5e2d 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.0.5](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.4...inquirerer@2.0.5) (2025-05-14)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [2.0.4](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.3...inquirerer@2.0.4) (2025-05-14)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index e917021..a5c2d16 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "2.0.4",
+ "version": "2.0.5",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From 7169149b50c93c6de94acc956ab3514f6164049d Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 10:32:03 -0400
Subject: [PATCH 101/124] allowCustomOptions on list/autocomplete
---
packages/inquirerer/src/prompt.ts | 29 ++++++++++++-----------
packages/inquirerer/src/question/types.ts | 2 ++
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/packages/inquirerer/src/prompt.ts b/packages/inquirerer/src/prompt.ts
index a8ff54a..9068ac1 100644
--- a/packages/inquirerer/src/prompt.ts
+++ b/packages/inquirerer/src/prompt.ts
@@ -588,23 +588,24 @@ export class Inquirerer {
private handleOverridesWithOptions(
argv: any,
obj: any,
- question: AutocompleteQuestion | ListQuestion | CheckboxQuestion
+ question: AutocompleteQuestion | ListQuestion
): void {
- if (
- typeof argv[question.name] === 'string'
- ) {
- const options = this.sanitizeOptions(question);
- const input = argv[question.name];
-
- const found = options.find(
- opt => opt.name === input || String(opt.value) === input
- );
-
- if (typeof found !== 'undefined') {
- obj[question.name] = found.value;
- }
+ const input = argv[question.name];
+ if (typeof input !== 'string') return;
+
+ const options = this.sanitizeOptions(question);
+
+ const found = options.find(
+ opt => opt.name === input || String(opt.value) === input
+ );
+
+ if (found) {
+ obj[question.name] = found.value;
+ } else if (question.allowCustomOptions) {
+ obj[question.name] = input; // Store as-is
}
}
+
private async handleQuestionType(question: Question, ctx: PromptContext): Promise {
this.keypress?.clearHandlers();
diff --git a/packages/inquirerer/src/question/types.ts b/packages/inquirerer/src/question/types.ts
index b0860cb..8c73bb8 100644
--- a/packages/inquirerer/src/question/types.ts
+++ b/packages/inquirerer/src/question/types.ts
@@ -36,12 +36,14 @@ export interface BaseQuestion {
type: 'autocomplete';
options: (string|OptionValue)[];
maxDisplayLines?: number;
+ allowCustomOptions?: boolean;
}
export interface ListQuestion extends BaseQuestion {
type: 'list';
options: (string|OptionValue)[];
maxDisplayLines?: number;
+ allowCustomOptions?: boolean;
}
export interface CheckboxQuestion extends BaseQuestion {
From e3b1d18ba6929731f2c662d451732307ec28ae75 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Wed, 14 May 2025 10:32:16 -0400
Subject: [PATCH 102/124] chore(release): publish
- inquirerer@2.0.6
---
packages/inquirerer/CHANGELOG.md | 8 ++++++++
packages/inquirerer/package.json | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/inquirerer/CHANGELOG.md b/packages/inquirerer/CHANGELOG.md
index 85c5e2d..21e0629 100644
--- a/packages/inquirerer/CHANGELOG.md
+++ b/packages/inquirerer/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.0.6](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.5...inquirerer@2.0.6) (2025-05-14)
+
+**Note:** Version bump only for package inquirerer
+
+
+
+
+
## [2.0.5](https://github.com/pyramation/inquirerer/compare/inquirerer@2.0.4...inquirerer@2.0.5) (2025-05-14)
**Note:** Version bump only for package inquirerer
diff --git a/packages/inquirerer/package.json b/packages/inquirerer/package.json
index a5c2d16..1f1954f 100644
--- a/packages/inquirerer/package.json
+++ b/packages/inquirerer/package.json
@@ -1,6 +1,6 @@
{
"name": "inquirerer",
- "version": "2.0.5",
+ "version": "2.0.6",
"author": "Dan Lynch ",
"description": "inquirerer",
"main": "index.js",
From f502adc74994d95cecbb46930d3153a4e98601a9 Mon Sep 17 00:00:00 2001
From: Dan Lynch
Date: Thu, 22 May 2025 11:59:08 -0700
Subject: [PATCH 103/124] saved
---
origin/.gitignore | 3 -
origin/build/index.js | 117 -
origin/build/index.js.map | 1 -
origin/build/test/prompt.test.js | 331 ---
origin/build/test/prompt.test.js.map | 1 -
origin/build/types/index.d.ts | 21 -
origin/build/types/test/prompt.test.d.ts | 1 -
origin/index.ts | 86 -
origin/package.json | 44 -
origin/readme.md | 107 -
origin/test/prompt.test.ts | 236 --
origin/tsconfig.json | 18 -
origin/yarn.lock | 3332 ----------------------
13 files changed, 4298 deletions(-)
delete mode 100644 origin/.gitignore
delete mode 100644 origin/build/index.js
delete mode 100644 origin/build/index.js.map
delete mode 100644 origin/build/test/prompt.test.js
delete mode 100644 origin/build/test/prompt.test.js.map
delete mode 100644 origin/build/types/index.d.ts
delete mode 100644 origin/build/types/test/prompt.test.d.ts
delete mode 100644 origin/index.ts
delete mode 100644 origin/package.json
delete mode 100644 origin/readme.md
delete mode 100644 origin/test/prompt.test.ts
delete mode 100644 origin/tsconfig.json
delete mode 100644 origin/yarn.lock
diff --git a/origin/.gitignore b/origin/.gitignore
deleted file mode 100644
index f5d0c3d..0000000
--- a/origin/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-.DS_Store
-*.log
diff --git a/origin/build/index.js b/origin/build/index.js
deleted file mode 100644
index abed5f5..0000000
--- a/origin/build/index.js
+++ /dev/null
@@ -1,117 +0,0 @@
-var __assign = (this && this.__assign) || Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [0, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-(function (factory) {
- if (typeof module === "object" && typeof module.exports === "object") {
- var v = factory(require, exports);
- if (v !== undefined) module.exports = v;
- }
- else if (typeof define === "function" && define.amd) {
- define(["require", "exports", "colors", "inquirer"], factory);
- }
-})(function (require, exports) {
- "use strict";
- var _this = this;
- Object.defineProperty(exports, "__esModule", { value: true });
- require("colors");
- var inquirer = require("inquirer");
- inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));
- exports.required = function (questions) {
- return questions.map(function (q) {
- if (q.required && !q.validate) {
- q.validate = function (value) {
- if (!value) {
- return q.name + " is required";
- }
- return true;
- };
- }
- return q;
- });
- };
- exports.names = function (questions) {
- return questions.map(function (q) {
- q.message = "" + '['.white + q.name.blue + ']'.white + " " + q.message.green;
- return q;
- });
- };
- exports.filter = function (questions, answers) {
- var A = questions.map(function (q) { return q.name; });
- var B = Object.keys(answers);
- var diff = A.filter(function (x) { return !B.includes(x); });
- return A.filter(function (n) { return diff.includes(n); }).map(function (name) {
- return questions.find(function (o) { return o.name === name; });
- });
- };
- // converts argv._ into the answers when question specifies it
- exports._filter = function (questions, answers) {
- var _Qs = questions.filter(function (q) { return q.hasOwnProperty('_'); });
- var A = _Qs.map(function (v, i) { return i + ''; });
- var B = Object.keys(answers._ || []);
- var includes = A.filter(function (x) { return B.includes(x); });
- for (var i = 0; i < includes.length; i++) {
- answers[_Qs[i].name] = answers._.shift();
- }
- // now run the filter command if on any questions
- questions.filter(function (q) { return q.hasOwnProperty('filter') && typeof q.filter === 'function'; }).forEach(function (question) {
- if (answers.hasOwnProperty(question.name)) {
- answers[question.name] = question.filter(answers[question.name]);
- }
- });
- return answers;
- };
- exports.prompt = function (questions, answers) { return __awaiter(_this, void 0, void 0, function () {
- var result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- exports._filter(questions, answers);
- return [4 /*yield*/, inquirer.prompt(exports.names(exports.required(exports.filter(questions, answers))))];
- case 1:
- result = _a.sent();
- return [2 /*return*/, __assign({}, result, answers)];
- }
- });
- }); };
-});
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/origin/build/index.js.map b/origin/build/index.js.map
deleted file mode 100644
index d2eb946..0000000
--- a/origin/build/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBAsFA;;IArFA,kBAAgB;IAChB,mCAAqC;IACrC,QAAQ,CAAC,cAAc,CACrB,cAAc,EACd,OAAO,CAAC,8BAA8B,CAAC,CACxC,CAAC;IAUW,QAAA,QAAQ,GAAG,UAAC,SAAkC;QACzD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,QAAQ,GAAG,UAAC,KAAU;oBACtB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACX,MAAM,CAAI,CAAC,CAAC,IAAI,iBAAc,CAAC;oBACjC,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,KAAK,GAAG,UAAC,SAAkC;QACtD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC;YACpB,CAAC,CAAC,OAAO,GAAG,KAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,SAAI,CAAC,CAAC,OAAO,CAAC,KAAO,CAAC;YACxE,MAAM,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QACrC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI;YAC7C,OAAA,SAAS,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,EAAf,CAAe,CAAC;QAApC,CAAoC,CACrC,CAAC;IACJ,CAAC,CAAC;IAEF,8DAA8D;IACjD,QAAA,OAAO,GAAG,UACrB,SAAkC,EAClC,OAAgC;QAEhC,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;QACzD,IAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,EAAE,EAAN,CAAM,CAAC,CAAC;QACpC,IAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC;QAED,iDAAiD;QACjD,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,EAA5D,CAA4D,CAAE,CAAC,OAAO,CAAC,UAAA,QAAQ;YACnG,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC,CAAC;IAEW,QAAA,MAAM,GAAG,UACpB,SAAkC,EAClC,OAAgC;;;;;oBAEhC,eAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACb,qBAAM,QAAQ,CAAC,MAAM,CAClC,aAAK,CAAC,gBAAQ,CAAC,cAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAC5C,EAAA;;oBAFK,MAAM,GAAG,SAEd;oBAED,mCACK,MAAM,EACN,OAAO,GACV;;;SACH,CAAC"}
\ No newline at end of file
diff --git a/origin/build/test/prompt.test.js b/origin/build/test/prompt.test.js
deleted file mode 100644
index cf7e0f6..0000000
--- a/origin/build/test/prompt.test.js
+++ /dev/null
@@ -1,331 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [0, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-(function (factory) {
- if (typeof module === "object" && typeof module.exports === "object") {
- var v = factory(require, exports);
- if (v !== undefined) module.exports = v;
- }
- else if (typeof define === "function" && define.amd) {
- define(["require", "exports", "../index"], factory);
- }
-})(function (require, exports) {
- "use strict";
- var _this = this;
- Object.defineProperty(exports, "__esModule", { value: true });
- var index_1 = require("../index");
- describe('arguments', function () {
- it('empty when all args supplied', function () {
- var questions = [
- {
- name: 'hello',
- message: 'hello',
- },
- {
- name: 'world',
- message: 'world',
- },
- ];
- var argv = {
- hello: 1,
- world: 2,
- };
- expect(index_1.filter(questions, argv)).toEqual([]);
- expect(argv).toEqual({
- hello: 1,
- world: 2,
- });
- });
- it('empty when all args supplied II', function () {
- var questions = [
- {
- _: true,
- name: 'foo',
- message: 'foo',
- },
- {
- name: 'bar',
- message: 'bar',
- },
- {
- _: true,
- name: 'baz',
- message: 'baz',
- },
- ];
- var argv = {
- _: [1, 3],
- bar: 2,
- };
- var _1 = index_1.filter(questions, argv);
- var _2 = index_1._filter(questions, argv);
- expect(_2).toEqual({ _: [], bar: 2, baz: 3, foo: 1 });
- expect(argv).toEqual({
- _: [],
- foo: 1,
- bar: 2,
- baz: 3,
- });
- });
- it('init example', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, _1, _2;
- return __generator(this, function (_a) {
- questions = [
- {
- _: true,
- name: 'foo',
- message: '',
- },
- ];
- argv = {
- _: [],
- bar: 2,
- };
- _1 = index_1._filter(questions, argv);
- _2 = index_1.filter(questions, argv);
- expect(_2).toEqual([
- {
- _: true,
- name: 'foo',
- message: '',
- },
- ]);
- expect(argv).toEqual({
- _: [],
- bar: 2,
- });
- return [2 /*return*/];
- });
- }); });
- it('basic example', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, _2;
- return __generator(this, function (_a) {
- questions = [
- {
- name: 'name',
- message: 'project name (e.g., flipr)',
- required: true,
- },
- ];
- argv = { _: [], cmd: 'init' };
- index_1._filter(questions, argv);
- _2 = index_1.filter(questions, argv);
- expect(_2).toEqual([
- {
- name: 'name',
- message: 'project name (e.g., flipr)',
- required: true,
- },
- ]);
- expect(argv).toEqual({ _: [], cmd: 'init' });
- return [2 /*return*/];
- });
- }); });
- });
- describe('prompt', function () {
- it('empty when all args supplied', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, value;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- questions = [
- {
- name: 'hello',
- message: '',
- },
- {
- name: 'world',
- message: '',
- },
- ];
- argv = {
- hello: 1,
- world: 2,
- };
- return [4 /*yield*/, index_1.prompt(questions, argv)];
- case 1:
- value = _a.sent();
- expect(value).toEqual({
- hello: 1,
- world: 2,
- });
- return [2 /*return*/];
- }
- });
- }); });
- it('empty when all args supplied', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, value;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- questions = [
- {
- _: true,
- name: 'foo',
- message: '',
- },
- {
- name: 'bar',
- message: '',
- },
- {
- _: true,
- name: 'baz',
- message: '',
- },
- ];
- argv = {
- _: [1, 3],
- bar: 2,
- };
- return [4 /*yield*/, index_1.prompt(questions, argv)];
- case 1:
- value = _a.sent();
- expect(argv).toEqual({
- _: [],
- foo: 1,
- bar: 2,
- baz: 3,
- });
- expect(value).toEqual({
- _: [],
- foo: 1,
- bar: 2,
- baz: 3,
- });
- return [2 /*return*/];
- }
- });
- }); });
- it('basic example', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, value;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- questions = [
- {
- name: 'cmd',
- message: 'project name (e.g., flipr)',
- required: true,
- },
- ];
- argv = { _: [], cmd: 'init' };
- return [4 /*yield*/, index_1.prompt(questions, argv)];
- case 1:
- value = _a.sent();
- expect(value).toEqual(argv);
- return [2 /*return*/];
- }
- });
- }); });
- });
- describe('filter', function () {
- it('runs filter without _', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, value;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- questions = [
- {
- name: 'hello',
- message: '',
- filter: function (val) {
- return val + '!';
- }
- },
- {
- name: 'world',
- message: '',
- filter: function (val) {
- return val + '!';
- }
- },
- ];
- argv = {
- hello: 1,
- world: 2,
- };
- return [4 /*yield*/, index_1.prompt(questions, argv)];
- case 1:
- value = _a.sent();
- expect(value).toEqual({
- hello: '1!',
- world: '2!',
- });
- return [2 /*return*/];
- }
- });
- }); });
- it('runs filter with _', function () { return __awaiter(_this, void 0, void 0, function () {
- var questions, argv, value;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- questions = [
- {
- _: true,
- name: 'hello',
- message: '',
- filter: function (val) {
- return val + '!';
- }
- },
- {
- name: 'world',
- message: '',
- filter: function (val) {
- return val + '!';
- }
- },
- ];
- argv = {
- _: [1],
- world: 2,
- };
- return [4 /*yield*/, index_1.prompt(questions, argv)];
- case 1:
- value = _a.sent();
- expect(value).toEqual({
- _: [],
- hello: '1!',
- world: '2!',
- });
- return [2 /*return*/];
- }
- });
- }); });
- });
-});
-//# sourceMappingURL=prompt.test.js.map
\ No newline at end of file
diff --git a/origin/build/test/prompt.test.js.map b/origin/build/test/prompt.test.js.map
deleted file mode 100644
index 65d8cf4..0000000
--- a/origin/build/test/prompt.test.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../../test/prompt.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,iBA4OA;;IA5OA,kCAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,CAAC,8BAA8B,EAAE;YACjC,IAAM,SAAS,GAAG;gBAChB;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC;YACF,MAAM,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE;YACpC,IAAM,SAAS,GAAG;gBAChB;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,CAAC,EAAE,IAAI;oBACP,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;YACF,IAAM,IAAI,GAAG;gBACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACT,GAAG,EAAE,CAAC;aACP,CAAC;YAEF,IAAM,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAM,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBACnB,CAAC,EAAE,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,cAAc,EAAE;;;gBACX,SAAS,GAAG;oBAChB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC;gBACI,IAAI,GAAG;oBACX,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC;gBACI,EAAE,GAAG,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC9B,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAEnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,CAAC,EAAE,IAAI;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBACnB,CAAC,EAAE,EAAE;oBACL,GAAG,EAAE,CAAC;iBACP,CAAC,CAAC;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,eAAe,EAAE;;;gBACZ,SAAS,GAAG;oBAChB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC;gBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBACpC,eAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnB,EAAE,GAAG,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;oBACjB;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B;wBACrC,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;;aAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,8BAA8B,EAAE;;;;;wBAC3B,SAAS,GAAG;4BAChB;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;4BACD;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BACT,GAAG,EAAE,CAAC;yBACP,CAAC;wBACY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;4BACnB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;wBACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,CAAC,EAAE,EAAE;4BACL,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,CAAC;yBACP,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE;;;;;wBACZ,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,4BAA4B;gCACrC,QAAQ,EAAE,IAAI;6BACf;yBACF,CAAC;wBACI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;wBACtB,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;aAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,EAAE,CAAC,uBAAuB,EAAE;;;;;wBACpB,SAAS,GAAG;4BAChB;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,KAAK,EAAE,IAAI;4BACX,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QACH,EAAE,CAAC,oBAAoB,EAAE;;;;;wBACjB,SAAS,GAAG;4BAChB;gCACE,CAAC,EAAE,IAAI;gCACP,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,UAAC,GAAG;oCACV,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gCACnB,CAAC;6BACF;yBACF,CAAC;wBACI,IAAI,GAAG;4BACX,CAAC,EAAE,CAAC,CAAC,CAAC;4BACN,KAAK,EAAE,CAAC;yBACT,CAAC;wBAEY,qBAAM,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAArC,KAAK,GAAG,SAA6B;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;4BACpB,CAAC,EAAE,EAAE;4BACL,KAAK,EAAE,IAAI;4BACX,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;;;;aACJ,CAAC,CAAC;IACL,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/origin/build/types/index.d.ts b/origin/build/types/index.d.ts
deleted file mode 100644
index 0912525..0000000
--- a/origin/build/types/index.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import 'colors';
-export interface InquirerQuestion {
- _?: boolean;
- name: string;
- message: string;
- required?: boolean;
- validate?: Function;
-}
-export declare const required: (questions: InquirerQuestion[]) => InquirerQuestion[];
-export declare const names: (questions: InquirerQuestion[]) => InquirerQuestion[];
-export declare const filter: (questions: InquirerQuestion[], answers: {
- [type: string]: any;
-}) => (InquirerQuestion | undefined)[];
-export declare const _filter: (questions: InquirerQuestion[], answers: {
- [type: string]: any;
-}) => {
- [type: string]: any;
-};
-export declare const prompt: (questions: InquirerQuestion[], answers: {
- [type: string]: any;
-}) => Promise