aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/inquirer/lib
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/inquirer/lib')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/inquirer.js93
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choice.js43
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choices.js127
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/separator.js37
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/base.js181
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/checkbox.js278
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js102
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/editor.js100
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/expand.js282
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/input.js110
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/list.js214
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/number.js29
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/password.js127
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/rawlist.js224
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/baseUI.js99
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/bottom-bar.js102
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/prompt.js150
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/events.js54
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/incrementListIndex.js19
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/paginator.js78
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/readline.js51
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/screen-manager.js175
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/utils.js28
23 files changed, 0 insertions, 2703 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/inquirer.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/inquirer.js
deleted file mode 100644
index 0f91e4be..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/inquirer.js
+++ /dev/null
@@ -1,93 +0,0 @@
-'use strict';
-/**
- * Inquirer.js
- * A collection of common interactive command line user interfaces.
- */
-
-const inquirer = module.exports;
-
-/**
- * Client interfaces
- */
-
-inquirer.prompts = {};
-
-inquirer.Separator = require('./objects/separator');
-
-inquirer.ui = {
- BottomBar: require('./ui/bottom-bar'),
- Prompt: require('./ui/prompt'),
-};
-
-/**
- * Create a new self-contained prompt module.
- */
-inquirer.createPromptModule = function (opt) {
- const promptModule = function (questions, answers) {
- let ui;
- try {
- ui = new inquirer.ui.Prompt(promptModule.prompts, opt);
- } catch (error) {
- return Promise.reject(error);
- }
- const promise = ui.run(questions, answers);
-
- // Monkey patch the UI on the promise object so
- // that it remains publicly accessible.
- promise.ui = ui;
-
- return promise;
- };
-
- promptModule.prompts = {};
-
- /**
- * Register a prompt type
- * @param {String} name Prompt type name
- * @param {Function} prompt Prompt constructor
- * @return {inquirer}
- */
-
- promptModule.registerPrompt = function (name, prompt) {
- promptModule.prompts[name] = prompt;
- return this;
- };
-
- /**
- * Register the defaults provider prompts
- */
-
- promptModule.restoreDefaultPrompts = function () {
- this.registerPrompt('list', require('./prompts/list'));
- this.registerPrompt('input', require('./prompts/input'));
- this.registerPrompt('number', require('./prompts/number'));
- this.registerPrompt('confirm', require('./prompts/confirm'));
- this.registerPrompt('rawlist', require('./prompts/rawlist'));
- this.registerPrompt('expand', require('./prompts/expand'));
- this.registerPrompt('checkbox', require('./prompts/checkbox'));
- this.registerPrompt('password', require('./prompts/password'));
- this.registerPrompt('editor', require('./prompts/editor'));
- };
-
- promptModule.restoreDefaultPrompts();
-
- return promptModule;
-};
-
-/**
- * Public CLI helper interface
- * @param {Array|Object|Rx.Observable} questions - Questions settings array
- * @param {Function} cb - Callback being passed the user answers
- * @return {inquirer.ui.Prompt}
- */
-
-inquirer.prompt = inquirer.createPromptModule();
-
-// Expose helper functions on the top level for easiest usage by common users
-inquirer.registerPrompt = function (name, prompt) {
- inquirer.prompt.registerPrompt(name, prompt);
-};
-
-inquirer.restoreDefaultPrompts = function () {
- inquirer.prompt.restoreDefaultPrompts();
-};
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choice.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choice.js
deleted file mode 100644
index 7dc88d67..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choice.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-const _ = {
- isString: require('lodash/isString'),
- isNumber: require('lodash/isNumber'),
- extend: require('lodash/extend'),
- isFunction: require('lodash/isFunction'),
-};
-
-/**
- * Choice object
- * Normalize input as choice object
- * @constructor
- * @param {Number|String|Object} val Choice value. If an object is passed, it should contains
- * at least one of `value` or `name` property
- */
-
-module.exports = class Choice {
- constructor(val, answers) {
- // Don't process Choice and Separator object
- if (val instanceof Choice || val.type === 'separator') {
- // eslint-disable-next-line no-constructor-return
- return val;
- }
-
- if (_.isString(val) || _.isNumber(val)) {
- this.name = String(val);
- this.value = val;
- this.short = String(val);
- } else {
- _.extend(this, val, {
- name: val.name || val.value,
- value: 'value' in val ? val.value : val.name,
- short: val.short || val.name || val.value,
- });
- }
-
- if (_.isFunction(val.disabled)) {
- this.disabled = val.disabled(answers);
- } else {
- this.disabled = val.disabled;
- }
- }
-};
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choices.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choices.js
deleted file mode 100644
index 917b9196..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/choices.js
+++ /dev/null
@@ -1,127 +0,0 @@
-'use strict';
-const assert = require('assert');
-const _ = {
- isNumber: require('lodash/isNumber'),
- filter: require('lodash/filter'),
- map: require('lodash/map'),
- find: require('lodash/find'),
-};
-const Separator = require('./separator');
-const Choice = require('./choice');
-
-/**
- * Choices collection
- * Collection of multiple `choice` object
- * @constructor
- * @param {Array} choices All `choice` to keep in the collection
- */
-
-module.exports = class Choices {
- constructor(choices, answers) {
- this.choices = choices.map((val) => {
- if (val.type === 'separator') {
- if (!(val instanceof Separator)) {
- val = new Separator(val.line);
- }
-
- return val;
- }
-
- return new Choice(val, answers);
- });
-
- this.realChoices = this.choices
- .filter(Separator.exclude)
- .filter((item) => !item.disabled);
-
- Object.defineProperty(this, 'length', {
- get() {
- return this.choices.length;
- },
- set(val) {
- this.choices.length = val;
- },
- });
-
- Object.defineProperty(this, 'realLength', {
- get() {
- return this.realChoices.length;
- },
- set() {
- throw new Error('Cannot set `realLength` of a Choices collection');
- },
- });
- }
-
- /**
- * Get a valid choice from the collection
- * @param {Number} selector The selected choice index
- * @return {Choice|Undefined} Return the matched choice or undefined
- */
-
- getChoice(selector) {
- assert(_.isNumber(selector));
- return this.realChoices[selector];
- }
-
- /**
- * Get a raw element from the collection
- * @param {Number} selector The selected index value
- * @return {Choice|Undefined} Return the matched choice or undefined
- */
-
- get(selector) {
- assert(_.isNumber(selector));
- return this.choices[selector];
- }
-
- /**
- * Match the valid choices against a where clause
- * @param {Object} whereClause Lodash `where` clause
- * @return {Array} Matching choices or empty array
- */
-
- where(whereClause) {
- return _.filter(this.realChoices, whereClause);
- }
-
- /**
- * Pluck a particular key from the choices
- * @param {String} propertyName Property name to select
- * @return {Array} Selected properties
- */
-
- pluck(propertyName) {
- return _.map(this.realChoices, propertyName);
- }
-
- // Expose usual Array methods
- indexOf(...args) {
- return this.choices.indexOf(...args);
- }
-
- forEach(...args) {
- return this.choices.forEach(...args);
- }
-
- filter(...args) {
- return this.choices.filter(...args);
- }
-
- reduce(...args) {
- return this.choices.reduce(...args);
- }
-
- find(func) {
- return _.find(this.choices, func);
- }
-
- push(...args) {
- const objs = _.map(args, (val) => new Choice(val));
- this.choices.push(...objs);
- this.realChoices = this.choices
- .filter(Separator.exclude)
- .filter((item) => !item.disabled);
- return this.choices;
- }
-};
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/separator.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/separator.js
deleted file mode 100644
index c7708628..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/objects/separator.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-const chalk = require('chalk');
-const figures = require('figures');
-
-/**
- * Separator object
- * Used to space/separate choices group
- * @constructor
- * @param {String} line Separation line content (facultative)
- */
-
-class Separator {
- constructor(line) {
- this.type = 'separator';
- this.line = chalk.dim(line || new Array(15).join(figures.line));
- }
-
- /**
- * Stringify separator
- * @return {String} the separator display string
- */
- toString() {
- return this.line;
- }
-}
-
-/**
- * Helper function returning false if object is a separator
- * @param {Object} obj object to test against
- * @return {Boolean} `false` if object is a separator
- */
-
-Separator.exclude = function (obj) {
- return obj.type !== 'separator';
-};
-
-module.exports = Separator;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/base.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/base.js
deleted file mode 100644
index ec503eec..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/base.js
+++ /dev/null
@@ -1,181 +0,0 @@
-'use strict';
-/**
- * Base prompt implementation
- * Should be extended by prompt types.
- */
-const _ = {
- assign: require('lodash/assign'),
- defaults: require('lodash/defaults'),
- clone: require('lodash/clone'),
-};
-const chalk = require('chalk');
-const runAsync = require('run-async');
-const { filter, flatMap, share, take, takeUntil } = require('rxjs/operators');
-const Choices = require('../objects/choices');
-const ScreenManager = require('../utils/screen-manager');
-
-class Prompt {
- constructor(question, rl, answers) {
- // Setup instance defaults property
- _.assign(this, {
- answers,
- status: 'pending',
- });
-
- // Set defaults prompt options
- this.opt = _.defaults(_.clone(question), {
- validate: () => true,
- validatingText: '',
- filter: (val) => val,
- filteringText: '',
- when: () => true,
- suffix: '',
- prefix: chalk.green('?'),
- });
-
- // Make sure name is present
- if (!this.opt.name) {
- this.throwParamError('name');
- }
-
- // Set default message if no message defined
- if (!this.opt.message) {
- this.opt.message = this.opt.name + ':';
- }
-
- // Normalize choices
- if (Array.isArray(this.opt.choices)) {
- this.opt.choices = new Choices(this.opt.choices, answers);
- }
-
- this.rl = rl;
- this.screen = new ScreenManager(this.rl);
- }
-
- /**
- * Start the Inquiry session and manage output value filtering
- * @return {Promise}
- */
-
- run() {
- return new Promise((resolve, reject) => {
- this._run(
- (value) => resolve(value),
- (error) => reject(error)
- );
- });
- }
-
- // Default noop (this one should be overwritten in prompts)
- _run(cb) {
- cb();
- }
-
- /**
- * Throw an error telling a required parameter is missing
- * @param {String} name Name of the missing param
- * @return {Throw Error}
- */
-
- throwParamError(name) {
- throw new Error('You must provide a `' + name + '` parameter');
- }
-
- /**
- * Called when the UI closes. Override to do any specific cleanup necessary
- */
- close() {
- this.screen.releaseCursor();
- }
-
- /**
- * Run the provided validation method each time a submit event occur.
- * @param {Rx.Observable} submit - submit event flow
- * @return {Object} Object containing two observables: `success` and `error`
- */
- handleSubmitEvents(submit) {
- const self = this;
- const validate = runAsync(this.opt.validate);
- const asyncFilter = runAsync(this.opt.filter);
- const validation = submit.pipe(
- flatMap((value) => {
- this.startSpinner(value, this.opt.filteringText);
- return asyncFilter(value, self.answers).then(
- (filteredValue) => {
- this.startSpinner(filteredValue, this.opt.validatingText);
- return validate(filteredValue, self.answers).then(
- (isValid) => ({ isValid, value: filteredValue }),
- (err) => ({ isValid: err, value: filteredValue })
- );
- },
- (err) => ({ isValid: err })
- );
- }),
- share()
- );
-
- const success = validation.pipe(
- filter((state) => state.isValid === true),
- take(1)
- );
- const error = validation.pipe(
- filter((state) => state.isValid !== true),
- takeUntil(success)
- );
-
- return {
- success,
- error,
- };
- }
-
- startSpinner(value, bottomContent) {
- value = this.getSpinningValue(value);
- // If the question will spin, cut off the prefix (for layout purposes)
- const content = bottomContent
- ? this.getQuestion() + value
- : this.getQuestion().slice(this.opt.prefix.length + 1) + value;
-
- this.screen.renderWithSpinner(content, bottomContent);
- }
-
- /**
- * Allow override, e.g. for password prompts
- * See: https://github.com/SBoudrias/Inquirer.js/issues/1022
- *
- * @return {String} value to display while spinning
- */
- getSpinningValue(value) {
- return value;
- }
-
- /**
- * Generate the prompt question string
- * @return {String} prompt question string
- */
- getQuestion() {
- let message =
- (this.opt.prefix ? this.opt.prefix + ' ' : '') +
- chalk.bold(this.opt.message) +
- this.opt.suffix +
- chalk.reset(' ');
-
- // Append the default if available, and if question isn't touched/answered
- if (
- this.opt.default != null &&
- this.status !== 'touched' &&
- this.status !== 'answered'
- ) {
- // If default password is supplied, hide it
- if (this.opt.type === 'password') {
- message += chalk.italic.dim('[hidden] ');
- } else {
- message += chalk.dim('(' + this.opt.default + ') ');
- }
- }
-
- return message;
- }
-}
-
-module.exports = Prompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/checkbox.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/checkbox.js
deleted file mode 100644
index 4f60b77e..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/checkbox.js
+++ /dev/null
@@ -1,278 +0,0 @@
-'use strict';
-/**
- * `list` type prompt
- */
-
-const _ = {
- isArray: require('lodash/isArray'),
- map: require('lodash/map'),
- isString: require('lodash/isString'),
-};
-const chalk = require('chalk');
-const cliCursor = require('cli-cursor');
-const figures = require('figures');
-const { map, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const observe = require('../utils/events');
-const Paginator = require('../utils/paginator');
-const incrementListIndex = require('../utils/incrementListIndex');
-
-class CheckboxPrompt extends Base {
- constructor(questions, rl, answers) {
- super(questions, rl, answers);
-
- if (!this.opt.choices) {
- this.throwParamError('choices');
- }
-
- if (_.isArray(this.opt.default)) {
- this.opt.choices.forEach(function (choice) {
- if (this.opt.default.indexOf(choice.value) >= 0) {
- choice.checked = true;
- }
- }, this);
- }
-
- this.pointer = 0;
-
- // Make sure no default is set (so it won't be printed)
- this.opt.default = null;
-
- const shouldLoop = this.opt.loop === undefined ? true : this.opt.loop;
- this.paginator = new Paginator(this.screen, { isInfinite: shouldLoop });
- }
-
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- const events = observe(this.rl);
-
- const validation = this.handleSubmitEvents(
- events.line.pipe(map(this.getCurrentValue.bind(this)))
- );
- validation.success.forEach(this.onEnd.bind(this));
- validation.error.forEach(this.onError.bind(this));
-
- events.normalizedUpKey
- .pipe(takeUntil(validation.success))
- .forEach(this.onUpKey.bind(this));
- events.normalizedDownKey
- .pipe(takeUntil(validation.success))
- .forEach(this.onDownKey.bind(this));
- events.numberKey
- .pipe(takeUntil(validation.success))
- .forEach(this.onNumberKey.bind(this));
- events.spaceKey
- .pipe(takeUntil(validation.success))
- .forEach(this.onSpaceKey.bind(this));
- events.aKey.pipe(takeUntil(validation.success)).forEach(this.onAllKey.bind(this));
- events.iKey.pipe(takeUntil(validation.success)).forEach(this.onInverseKey.bind(this));
-
- // Init the prompt
- cliCursor.hide();
- this.render();
- this.firstRender = false;
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {CheckboxPrompt} self
- */
-
- render(error) {
- // Render question
- let message = this.getQuestion();
- let bottomContent = '';
-
- if (!this.dontShowHints) {
- message +=
- '(Press ' +
- chalk.cyan.bold('<space>') +
- ' to select, ' +
- chalk.cyan.bold('<a>') +
- ' to toggle all, ' +
- chalk.cyan.bold('<i>') +
- ' to invert selection, and ' +
- chalk.cyan.bold('<enter>') +
- ' to proceed)';
- }
-
- // Render choices or answer depending on the state
- if (this.status === 'answered') {
- message += chalk.cyan(this.selection.join(', '));
- } else {
- const choicesStr = renderChoices(this.opt.choices, this.pointer);
- const indexPosition = this.opt.choices.indexOf(
- this.opt.choices.getChoice(this.pointer)
- );
- const realIndexPosition =
- this.opt.choices.reduce((acc, value, i) => {
- // Dont count lines past the choice we are looking at
- if (i > indexPosition) {
- return acc;
- }
- // Add line if it's a separator
- if (value.type === 'separator') {
- return acc + 1;
- }
-
- let l = value.name;
- // Non-strings take up one line
- if (typeof l !== 'string') {
- return acc + 1;
- }
-
- // Calculate lines taken up by string
- l = l.split('\n');
- return acc + l.length;
- }, 0) - 1;
- message +=
- '\n' + this.paginator.paginate(choicesStr, realIndexPosition, this.opt.pageSize);
- }
-
- if (error) {
- bottomContent = chalk.red('>> ') + error;
- }
-
- this.screen.render(message, bottomContent);
- }
-
- /**
- * When user press `enter` key
- */
-
- onEnd(state) {
- this.status = 'answered';
- this.dontShowHints = true;
- // Rerender prompt (and clean subline error)
- this.render();
-
- this.screen.done();
- cliCursor.show();
- this.done(state.value);
- }
-
- onError(state) {
- this.render(state.isValid);
- }
-
- getCurrentValue() {
- const choices = this.opt.choices.filter(
- (choice) => Boolean(choice.checked) && !choice.disabled
- );
-
- this.selection = _.map(choices, 'short');
- return _.map(choices, 'value');
- }
-
- onUpKey() {
- this.pointer = incrementListIndex(this.pointer, 'up', this.opt);
- this.render();
- }
-
- onDownKey() {
- this.pointer = incrementListIndex(this.pointer, 'down', this.opt);
- this.render();
- }
-
- onNumberKey(input) {
- if (input <= this.opt.choices.realLength) {
- this.pointer = input - 1;
- this.toggleChoice(this.pointer);
- }
-
- this.render();
- }
-
- onSpaceKey() {
- this.toggleChoice(this.pointer);
- this.render();
- }
-
- onAllKey() {
- const shouldBeChecked = Boolean(
- this.opt.choices.find((choice) => choice.type !== 'separator' && !choice.checked)
- );
-
- this.opt.choices.forEach((choice) => {
- if (choice.type !== 'separator') {
- choice.checked = shouldBeChecked;
- }
- });
-
- this.render();
- }
-
- onInverseKey() {
- this.opt.choices.forEach((choice) => {
- if (choice.type !== 'separator') {
- choice.checked = !choice.checked;
- }
- });
-
- this.render();
- }
-
- toggleChoice(index) {
- const item = this.opt.choices.getChoice(index);
- if (item !== undefined) {
- this.opt.choices.getChoice(index).checked = !item.checked;
- }
- }
-}
-
-/**
- * Function for rendering checkbox choices
- * @param {Number} pointer Position of the pointer
- * @return {String} Rendered content
- */
-
-function renderChoices(choices, pointer) {
- let output = '';
- let separatorOffset = 0;
-
- choices.forEach((choice, i) => {
- if (choice.type === 'separator') {
- separatorOffset++;
- output += ' ' + choice + '\n';
- return;
- }
-
- if (choice.disabled) {
- separatorOffset++;
- output += ' - ' + choice.name;
- output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')';
- } else {
- const line = getCheckbox(choice.checked) + ' ' + choice.name;
- if (i - separatorOffset === pointer) {
- output += chalk.cyan(figures.pointer + line);
- } else {
- output += ' ' + line;
- }
- }
-
- output += '\n';
- });
-
- return output.replace(/\n$/, '');
-}
-
-/**
- * Get the checkbox
- * @param {Boolean} checked - add a X or not to the checkbox
- * @return {String} Composited checkbox string
- */
-
-function getCheckbox(checked) {
- return checked ? chalk.green(figures.radioOn) : figures.radioOff;
-}
-
-module.exports = CheckboxPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js
deleted file mode 100644
index 8171aab5..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js
+++ /dev/null
@@ -1,102 +0,0 @@
-'use strict';
-/**
- * `confirm` type prompt
- */
-
-const _ = {
- extend: require('lodash/extend'),
- isBoolean: require('lodash/isBoolean'),
-};
-const chalk = require('chalk');
-const { take, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const observe = require('../utils/events');
-
-class ConfirmPrompt extends Base {
- constructor(questions, rl, answers) {
- super(questions, rl, answers);
-
- let rawDefault = true;
-
- _.extend(this.opt, {
- filter(input) {
- let value = rawDefault;
- if (input != null && input !== '') {
- value = /^y(es)?/i.test(input);
- }
-
- return value;
- },
- });
-
- if (_.isBoolean(this.opt.default)) {
- rawDefault = this.opt.default;
- }
-
- this.opt.default = rawDefault ? 'Y/n' : 'y/N';
- }
-
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- // Once user confirm (enter key)
- const events = observe(this.rl);
- events.keypress.pipe(takeUntil(events.line)).forEach(this.onKeypress.bind(this));
-
- events.line.pipe(take(1)).forEach(this.onEnd.bind(this));
-
- // Init
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {ConfirmPrompt} self
- */
-
- render(answer) {
- let message = this.getQuestion();
-
- if (typeof answer === 'boolean') {
- message += chalk.cyan(answer ? 'Yes' : 'No');
- } else {
- message += this.rl.line;
- }
-
- this.screen.render(message);
-
- return this;
- }
-
- /**
- * When user press `enter` key
- */
-
- onEnd(input) {
- this.status = 'answered';
-
- const output = this.opt.filter(input);
- this.render(output);
-
- this.screen.done();
- this.done(output);
- }
-
- /**
- * When user press a key
- */
-
- onKeypress() {
- this.render();
- }
-}
-
-module.exports = ConfirmPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/editor.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/editor.js
deleted file mode 100644
index 600e0745..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/editor.js
+++ /dev/null
@@ -1,100 +0,0 @@
-'use strict';
-/**
- * `editor` type prompt
- */
-
-const chalk = require('chalk');
-const { editAsync } = require('external-editor');
-const Base = require('./base');
-const observe = require('../utils/events');
-const { Subject } = require('rxjs');
-
-class EditorPrompt extends Base {
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- this.editorResult = new Subject();
-
- // Open Editor on "line" (Enter Key)
- const events = observe(this.rl);
- this.lineSubscription = events.line.subscribe(this.startExternalEditor.bind(this));
-
- // Trigger Validation when editor closes
- const validation = this.handleSubmitEvents(this.editorResult);
- validation.success.forEach(this.onEnd.bind(this));
- validation.error.forEach(this.onError.bind(this));
-
- // Prevents default from being printed on screen (can look weird with multiple lines)
- this.currentText = this.opt.default;
- this.opt.default = null;
-
- // Init
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {EditorPrompt} self
- */
-
- render(error) {
- let bottomContent = '';
- let message = this.getQuestion();
-
- if (this.status === 'answered') {
- message += chalk.dim('Received');
- } else {
- message += chalk.dim('Press <enter> to launch your preferred editor.');
- }
-
- if (error) {
- bottomContent = chalk.red('>> ') + error;
- }
-
- this.screen.render(message, bottomContent);
- }
-
- /**
- * Launch $EDITOR on user press enter
- */
-
- startExternalEditor() {
- // Pause Readline to prevent stdin and stdout from being modified while the editor is showing
- this.rl.pause();
- editAsync(this.currentText, this.endExternalEditor.bind(this));
- }
-
- endExternalEditor(error, result) {
- this.rl.resume();
- if (error) {
- this.editorResult.error(error);
- } else {
- this.editorResult.next(result);
- }
- }
-
- onEnd(state) {
- this.editorResult.unsubscribe();
- this.lineSubscription.unsubscribe();
- this.answer = state.value;
- this.status = 'answered';
- // Re-render prompt
- this.render();
- this.screen.done();
- this.done(this.answer);
- }
-
- onError(state) {
- this.render(state.isValid);
- }
-}
-
-module.exports = EditorPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/expand.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/expand.js
deleted file mode 100644
index af1ad810..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/expand.js
+++ /dev/null
@@ -1,282 +0,0 @@
-'use strict';
-/**
- * `rawlist` type prompt
- */
-
-const _ = {
- uniq: require('lodash/uniq'),
- isString: require('lodash/isString'),
- isNumber: require('lodash/isNumber'),
- findIndex: require('lodash/findIndex'),
-};
-const chalk = require('chalk');
-const { map, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const Separator = require('../objects/separator');
-const observe = require('../utils/events');
-const Paginator = require('../utils/paginator');
-
-class ExpandPrompt extends Base {
- constructor(questions, rl, answers) {
- super(questions, rl, answers);
-
- if (!this.opt.choices) {
- this.throwParamError('choices');
- }
-
- this.validateChoices(this.opt.choices);
-
- // Add the default `help` (/expand) option
- this.opt.choices.push({
- key: 'h',
- name: 'Help, list all options',
- value: 'help',
- });
-
- this.opt.validate = (choice) => {
- if (choice == null) {
- return 'Please enter a valid command';
- }
-
- return choice !== 'help';
- };
-
- // Setup the default string (capitalize the default key)
- this.opt.default = this.generateChoicesString(this.opt.choices, this.opt.default);
-
- this.paginator = new Paginator(this.screen);
- }
-
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- // Save user answer and update prompt to show selected option.
- const events = observe(this.rl);
- const validation = this.handleSubmitEvents(
- events.line.pipe(map(this.getCurrentValue.bind(this)))
- );
- validation.success.forEach(this.onSubmit.bind(this));
- validation.error.forEach(this.onError.bind(this));
- this.keypressObs = events.keypress
- .pipe(takeUntil(validation.success))
- .forEach(this.onKeypress.bind(this));
-
- // Init the prompt
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {ExpandPrompt} self
- */
-
- render(error, hint) {
- let message = this.getQuestion();
- let bottomContent = '';
-
- if (this.status === 'answered') {
- message += chalk.cyan(this.answer);
- } else if (this.status === 'expanded') {
- const choicesStr = renderChoices(this.opt.choices, this.selectedKey);
- message += this.paginator.paginate(choicesStr, this.selectedKey, this.opt.pageSize);
- message += '\n Answer: ';
- }
-
- message += this.rl.line;
-
- if (error) {
- bottomContent = chalk.red('>> ') + error;
- }
-
- if (hint) {
- bottomContent = chalk.cyan('>> ') + hint;
- }
-
- this.screen.render(message, bottomContent);
- }
-
- getCurrentValue(input) {
- if (!input) {
- input = this.rawDefault;
- }
-
- const selected = this.opt.choices.where({ key: input.toLowerCase().trim() })[0];
- if (!selected) {
- return null;
- }
-
- return selected.value;
- }
-
- /**
- * Generate the prompt choices string
- * @return {String} Choices string
- */
-
- getChoices() {
- let output = '';
-
- this.opt.choices.forEach((choice) => {
- output += '\n ';
-
- if (choice.type === 'separator') {
- output += ' ' + choice;
- return;
- }
-
- let choiceStr = choice.key + ') ' + choice.name;
- if (this.selectedKey === choice.key) {
- choiceStr = chalk.cyan(choiceStr);
- }
-
- output += choiceStr;
- });
-
- return output;
- }
-
- onError(state) {
- if (state.value === 'help') {
- this.selectedKey = '';
- this.status = 'expanded';
- this.render();
- return;
- }
-
- this.render(state.isValid);
- }
-
- /**
- * When user press `enter` key
- */
-
- onSubmit(state) {
- this.status = 'answered';
- const choice = this.opt.choices.where({ value: state.value })[0];
- this.answer = choice.short || choice.name;
-
- // Re-render prompt
- this.render();
- this.screen.done();
- this.done(state.value);
- }
-
- /**
- * When user press a key
- */
-
- onKeypress() {
- this.selectedKey = this.rl.line.toLowerCase();
- const selected = this.opt.choices.where({ key: this.selectedKey })[0];
- if (this.status === 'expanded') {
- this.render();
- } else {
- this.render(null, selected ? selected.name : null);
- }
- }
-
- /**
- * Validate the choices
- * @param {Array} choices
- */
-
- validateChoices(choices) {
- let formatError;
- const errors = [];
- const keymap = {};
- choices.filter(Separator.exclude).forEach((choice) => {
- if (!choice.key || choice.key.length !== 1) {
- formatError = true;
- }
-
- choice.key = String(choice.key).toLowerCase();
-
- if (keymap[choice.key]) {
- errors.push(choice.key);
- }
-
- keymap[choice.key] = true;
- });
-
- if (formatError) {
- throw new Error(
- 'Format error: `key` param must be a single letter and is required.'
- );
- }
-
- if (keymap.h) {
- throw new Error(
- 'Reserved key error: `key` param cannot be `h` - this value is reserved.'
- );
- }
-
- if (errors.length) {
- throw new Error(
- 'Duplicate key error: `key` param must be unique. Duplicates: ' +
- _.uniq(errors).join(', ')
- );
- }
- }
-
- /**
- * Generate a string out of the choices keys
- * @param {Array} choices
- * @param {Number|String} default - the choice index or name to capitalize
- * @return {String} The rendered choices key string
- */
- generateChoicesString(choices, defaultChoice) {
- let defIndex = choices.realLength - 1;
- if (_.isNumber(defaultChoice) && this.opt.choices.getChoice(defaultChoice)) {
- defIndex = defaultChoice;
- } else if (_.isString(defaultChoice)) {
- const index = _.findIndex(
- choices.realChoices,
- ({ value }) => value === defaultChoice
- );
- defIndex = index === -1 ? defIndex : index;
- }
-
- const defStr = this.opt.choices.pluck('key');
- this.rawDefault = defStr[defIndex];
- defStr[defIndex] = String(defStr[defIndex]).toUpperCase();
- return defStr.join('');
- }
-}
-
-/**
- * Function for rendering checkbox choices
- * @param {String} pointer Selected key
- * @return {String} Rendered content
- */
-
-function renderChoices(choices, pointer) {
- let output = '';
-
- choices.forEach((choice) => {
- output += '\n ';
-
- if (choice.type === 'separator') {
- output += ' ' + choice;
- return;
- }
-
- let choiceStr = choice.key + ') ' + choice.name;
- if (pointer === choice.key) {
- choiceStr = chalk.cyan(choiceStr);
- }
-
- output += choiceStr;
- });
-
- return output;
-}
-
-module.exports = ExpandPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/input.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/input.js
deleted file mode 100644
index 87f68b92..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/input.js
+++ /dev/null
@@ -1,110 +0,0 @@
-'use strict';
-/**
- * `input` type prompt
- */
-
-const chalk = require('chalk');
-const { map, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const observe = require('../utils/events');
-
-class InputPrompt extends Base {
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- // Once user confirm (enter key)
- const events = observe(this.rl);
- const submit = events.line.pipe(map(this.filterInput.bind(this)));
-
- const validation = this.handleSubmitEvents(submit);
- validation.success.forEach(this.onEnd.bind(this));
- validation.error.forEach(this.onError.bind(this));
-
- events.keypress
- .pipe(takeUntil(validation.success))
- .forEach(this.onKeypress.bind(this));
-
- // Init
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {InputPrompt} self
- */
-
- render(error) {
- let bottomContent = '';
- let appendContent = '';
- let message = this.getQuestion();
- const { transformer } = this.opt;
- const isFinal = this.status === 'answered';
-
- if (isFinal) {
- appendContent = this.answer;
- } else {
- appendContent = this.rl.line;
- }
-
- if (transformer) {
- message += transformer(appendContent, this.answers, { isFinal });
- } else {
- message += isFinal ? chalk.cyan(appendContent) : appendContent;
- }
-
- if (error) {
- bottomContent = chalk.red('>> ') + error;
- }
-
- this.screen.render(message, bottomContent);
- }
-
- /**
- * When user press `enter` key
- */
-
- filterInput(input) {
- if (!input) {
- return this.opt.default == null ? '' : this.opt.default;
- }
-
- return input;
- }
-
- onEnd(state) {
- this.answer = state.value;
- this.status = 'answered';
-
- // Re-render prompt
- this.render();
-
- this.screen.done();
- this.done(state.value);
- }
-
- onError({ value = '', isValid }) {
- this.rl.line += value;
- this.rl.cursor += value.length;
- this.render(isValid);
- }
-
- /**
- * When user press a key
- */
-
- onKeypress() {
- this.state = 'touched';
-
- this.render();
- }
-}
-
-module.exports = InputPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/list.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/list.js
deleted file mode 100644
index 486c030e..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/list.js
+++ /dev/null
@@ -1,214 +0,0 @@
-'use strict';
-/**
- * `list` type prompt
- */
-
-const _ = {
- isNumber: require('lodash/isNumber'),
- findIndex: require('lodash/findIndex'),
- isString: require('lodash/isString'),
-};
-const chalk = require('chalk');
-const figures = require('figures');
-const cliCursor = require('cli-cursor');
-const runAsync = require('run-async');
-const { flatMap, map, take, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const observe = require('../utils/events');
-const Paginator = require('../utils/paginator');
-const incrementListIndex = require('../utils/incrementListIndex');
-
-class ListPrompt extends Base {
- constructor(questions, rl, answers) {
- super(questions, rl, answers);
-
- if (!this.opt.choices) {
- this.throwParamError('choices');
- }
-
- this.firstRender = true;
- this.selected = 0;
-
- const def = this.opt.default;
-
- // If def is a Number, then use as index. Otherwise, check for value.
- if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) {
- this.selected = def;
- } else if (!_.isNumber(def) && def != null) {
- const index = _.findIndex(
- this.opt.choices.realChoices,
- ({ value }) => value === def
- );
- this.selected = Math.max(index, 0);
- }
-
- // Make sure no default is set (so it won't be printed)
- this.opt.default = null;
-
- const shouldLoop = this.opt.loop === undefined ? true : this.opt.loop;
- this.paginator = new Paginator(this.screen, { isInfinite: shouldLoop });
- }
-
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- const self = this;
-
- const events = observe(this.rl);
- events.normalizedUpKey.pipe(takeUntil(events.line)).forEach(this.onUpKey.bind(this));
- events.normalizedDownKey
- .pipe(takeUntil(events.line))
- .forEach(this.onDownKey.bind(this));
- events.numberKey.pipe(takeUntil(events.line)).forEach(this.onNumberKey.bind(this));
- events.line
- .pipe(
- take(1),
- map(this.getCurrentValue.bind(this)),
- flatMap((value) =>
- runAsync(self.opt.filter)(value, self.answers).catch((err) => err)
- )
- )
- .forEach(this.onSubmit.bind(this));
-
- // Init the prompt
- cliCursor.hide();
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {ListPrompt} self
- */
-
- render() {
- // Render question
- let message = this.getQuestion();
-
- if (this.firstRender) {
- message += chalk.dim('(Use arrow keys)');
- }
-
- // Render choices or answer depending on the state
- if (this.status === 'answered') {
- message += chalk.cyan(this.opt.choices.getChoice(this.selected).short);
- } else {
- const choicesStr = listRender(this.opt.choices, this.selected);
- const indexPosition = this.opt.choices.indexOf(
- this.opt.choices.getChoice(this.selected)
- );
- const realIndexPosition =
- this.opt.choices.reduce((acc, value, i) => {
- // Dont count lines past the choice we are looking at
- if (i > indexPosition) {
- return acc;
- }
- // Add line if it's a separator
- if (value.type === 'separator') {
- return acc + 1;
- }
-
- let l = value.name;
- // Non-strings take up one line
- if (typeof l !== 'string') {
- return acc + 1;
- }
-
- // Calculate lines taken up by string
- l = l.split('\n');
- return acc + l.length;
- }, 0) - 1;
- message +=
- '\n' + this.paginator.paginate(choicesStr, realIndexPosition, this.opt.pageSize);
- }
-
- this.firstRender = false;
-
- this.screen.render(message);
- }
-
- /**
- * When user press `enter` key
- */
-
- onSubmit(value) {
- this.status = 'answered';
-
- // Rerender prompt
- this.render();
-
- this.screen.done();
- cliCursor.show();
- this.done(value);
- }
-
- getCurrentValue() {
- return this.opt.choices.getChoice(this.selected).value;
- }
-
- /**
- * When user press a key
- */
- onUpKey() {
- this.selected = incrementListIndex(this.selected, 'up', this.opt);
- this.render();
- }
-
- onDownKey() {
- this.selected = incrementListIndex(this.selected, 'down', this.opt);
- this.render();
- }
-
- onNumberKey(input) {
- if (input <= this.opt.choices.realLength) {
- this.selected = input - 1;
- }
-
- this.render();
- }
-}
-
-/**
- * Function for rendering list choices
- * @param {Number} pointer Position of the pointer
- * @return {String} Rendered content
- */
-function listRender(choices, pointer) {
- let output = '';
- let separatorOffset = 0;
-
- choices.forEach((choice, i) => {
- if (choice.type === 'separator') {
- separatorOffset++;
- output += ' ' + choice + '\n';
- return;
- }
-
- if (choice.disabled) {
- separatorOffset++;
- output += ' - ' + choice.name;
- output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')';
- output += '\n';
- return;
- }
-
- const isSelected = i - separatorOffset === pointer;
- let line = (isSelected ? figures.pointer + ' ' : ' ') + choice.name;
- if (isSelected) {
- line = chalk.cyan(line);
- }
-
- output += line + ' \n';
- });
-
- return output.replace(/\n$/, '');
-}
-
-module.exports = ListPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/number.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/number.js
deleted file mode 100644
index ccabc018..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/number.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-/**
- * `input` type prompt
- */
-
-const Input = require('./input');
-
-/**
- * Extention of the Input prompt specifically for use with number inputs.
- */
-
-class NumberPrompt extends Input {
- filterInput(input) {
- if (input && typeof input === 'string') {
- input = input.trim();
- // Match a number in the input
- const numberMatch = input.match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/);
- // If a number is found, return that input.
- if (numberMatch) {
- return Number(numberMatch[0]);
- }
- }
-
- // If the input was invalid return the default value.
- return this.opt.default == null ? NaN : this.opt.default;
- }
-}
-
-module.exports = NumberPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/password.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/password.js
deleted file mode 100644
index 840249d3..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/password.js
+++ /dev/null
@@ -1,127 +0,0 @@
-'use strict';
-/**
- * `password` type prompt
- */
-
-const chalk = require('chalk');
-const { map, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const observe = require('../utils/events');
-
-function mask(input, maskChar) {
- input = String(input);
- maskChar = typeof maskChar === 'string' ? maskChar : '*';
- if (input.length === 0) {
- return '';
- }
-
- return new Array(input.length + 1).join(maskChar);
-}
-
-class PasswordPrompt extends Base {
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- const events = observe(this.rl);
-
- // Once user confirm (enter key)
- const submit = events.line.pipe(map(this.filterInput.bind(this)));
-
- const validation = this.handleSubmitEvents(submit);
- validation.success.forEach(this.onEnd.bind(this));
- validation.error.forEach(this.onError.bind(this));
-
- events.keypress
- .pipe(takeUntil(validation.success))
- .forEach(this.onKeypress.bind(this));
-
- // Init
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {PasswordPrompt} self
- */
-
- render(error) {
- let message = this.getQuestion();
- let bottomContent = '';
-
- if (this.status === 'answered') {
- message += this.getMaskedValue(this.answer);
- } else {
- message += this.getMaskedValue(this.rl.line || '');
- }
-
- if (error) {
- bottomContent = '\n' + chalk.red('>> ') + error;
- }
-
- this.screen.render(message, bottomContent);
- }
-
- getMaskedValue(value) {
- if (this.status === 'answered') {
- return this.opt.mask
- ? chalk.cyan(mask(value, this.opt.mask))
- : chalk.italic.dim('[hidden]');
- }
- return this.opt.mask
- ? mask(value, this.opt.mask)
- : chalk.italic.dim('[input is hidden] ');
- }
-
- /**
- * Mask value during async filter/validation.
- */
- getSpinningValue(value) {
- return this.getMaskedValue(value);
- }
-
- /**
- * When user press `enter` key
- */
-
- filterInput(input) {
- if (!input) {
- return this.opt.default == null ? '' : this.opt.default;
- }
-
- return input;
- }
-
- onEnd(state) {
- this.status = 'answered';
- this.answer = state.value;
-
- // Re-render prompt
- this.render();
-
- this.screen.done();
- this.done(state.value);
- }
-
- onError(state) {
- this.render(state.isValid);
- }
-
- onKeypress() {
- // If user press a key, just clear the default value
- if (this.opt.default) {
- this.opt.default = undefined;
- }
-
- this.render();
- }
-}
-
-module.exports = PasswordPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/rawlist.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/rawlist.js
deleted file mode 100644
index 06036eaf..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/rawlist.js
+++ /dev/null
@@ -1,224 +0,0 @@
-'use strict';
-/**
- * `rawlist` type prompt
- */
-
-const _ = {
- extend: require('lodash/extend'),
- isNumber: require('lodash/isNumber'),
- findIndex: require('lodash/findIndex'),
-};
-const chalk = require('chalk');
-const { map, takeUntil } = require('rxjs/operators');
-const Base = require('./base');
-const Separator = require('../objects/separator');
-const observe = require('../utils/events');
-const Paginator = require('../utils/paginator');
-const incrementListIndex = require('../utils/incrementListIndex');
-
-class RawListPrompt extends Base {
- constructor(questions, rl, answers) {
- super(questions, rl, answers);
-
- if (!this.opt.choices) {
- this.throwParamError('choices');
- }
-
- this.opt.validChoices = this.opt.choices.filter(Separator.exclude);
-
- this.selected = 0;
- this.rawDefault = 0;
-
- _.extend(this.opt, {
- validate(val) {
- return val != null;
- },
- });
-
- const def = this.opt.default;
- if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) {
- this.selected = def;
- this.rawDefault = def;
- } else if (!_.isNumber(def) && def != null) {
- const index = _.findIndex(
- this.opt.choices.realChoices,
- ({ value }) => value === def
- );
- const safeIndex = Math.max(index, 0);
- this.selected = safeIndex;
- this.rawDefault = safeIndex;
- }
-
- // Make sure no default is set (so it won't be printed)
- this.opt.default = null;
-
- const shouldLoop = this.opt.loop === undefined ? true : this.opt.loop;
- this.paginator = new Paginator(undefined, { isInfinite: shouldLoop });
- }
-
- /**
- * Start the Inquiry session
- * @param {Function} cb Callback when prompt is done
- * @return {this}
- */
-
- _run(cb) {
- this.done = cb;
-
- // Once user confirm (enter key)
- const events = observe(this.rl);
- const submit = events.line.pipe(map(this.getCurrentValue.bind(this)));
-
- const validation = this.handleSubmitEvents(submit);
- validation.success.forEach(this.onEnd.bind(this));
- validation.error.forEach(this.onError.bind(this));
-
- events.normalizedUpKey
- .pipe(takeUntil(validation.success))
- .forEach(this.onUpKey.bind(this));
- events.normalizedDownKey
- .pipe(takeUntil(validation.success))
- .forEach(this.onDownKey.bind(this));
- events.keypress
- .pipe(takeUntil(validation.success))
- .forEach(this.onKeypress.bind(this));
- // Init the prompt
- this.render();
-
- return this;
- }
-
- /**
- * Render the prompt to screen
- * @return {RawListPrompt} self
- */
-
- render(error) {
- // Render question
- let message = this.getQuestion();
- let bottomContent = '';
-
- if (this.status === 'answered') {
- message += chalk.cyan(this.opt.choices.getChoice(this.selected).short);
- } else {
- const choicesStr = renderChoices(this.opt.choices, this.selected);
- message +=
- '\n' + this.paginator.paginate(choicesStr, this.selected, this.opt.pageSize);
- message += '\n Answer: ';
- }
- message += this.rl.line;
-
- if (error) {
- bottomContent = '\n' + chalk.red('>> ') + error;
- }
-
- this.screen.render(message, bottomContent);
- }
-
- /**
- * When user press `enter` key
- */
-
- getCurrentValue(index) {
- if (index == null) {
- index = this.rawDefault;
- } else if (index === '') {
- this.selected = this.selected === undefined ? -1 : this.selected;
- index = this.selected;
- } else {
- index -= 1;
- }
-
- const choice = this.opt.choices.getChoice(index);
- return choice ? choice.value : null;
- }
-
- onEnd(state) {
- this.status = 'answered';
- this.answer = state.value;
-
- // Re-render prompt
- this.render();
-
- this.screen.done();
- this.done(state.value);
- }
-
- onError() {
- this.render('Please enter a valid index');
- }
-
- /**
- * When user press a key
- */
-
- onKeypress() {
- const index = this.rl.line.length ? Number(this.rl.line) - 1 : 0;
-
- if (this.opt.choices.getChoice(index)) {
- this.selected = index;
- } else {
- this.selected = undefined;
- }
- this.render();
- }
-
- /**
- * When user press up key
- */
-
- onUpKey() {
- this.onArrowKey('up');
- }
-
- /**
- * When user press down key
- */
-
- onDownKey() {
- this.onArrowKey('down');
- }
-
- /**
- * When user press up or down key
- * @param {String} type Arrow type: up or down
- */
-
- onArrowKey(type) {
- this.selected = incrementListIndex(this.selected, type, this.opt);
- this.rl.line = String(this.selected + 1);
- }
-}
-
-/**
- * Function for rendering list choices
- * @param {Number} pointer Position of the pointer
- * @return {String} Rendered content
- */
-
-function renderChoices(choices, pointer) {
- let output = '';
- let separatorOffset = 0;
-
- choices.forEach((choice, i) => {
- output += '\n ';
-
- if (choice.type === 'separator') {
- separatorOffset++;
- output += ' ' + choice;
- return;
- }
-
- const index = i - separatorOffset;
- let display = index + 1 + ') ' + choice.name;
- if (index === pointer) {
- display = chalk.cyan(display);
- }
-
- output += display;
- });
-
- return output;
-}
-
-module.exports = RawListPrompt;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/baseUI.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/baseUI.js
deleted file mode 100644
index 547e5658..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/baseUI.js
+++ /dev/null
@@ -1,99 +0,0 @@
-'use strict';
-const _ = {
- extend: require('lodash/extend'),
- omit: require('lodash/omit'),
-};
-const MuteStream = require('mute-stream');
-const readline = require('readline');
-
-/**
- * Base interface class other can inherits from
- */
-
-class UI {
- constructor(opt) {
- // Instantiate the Readline interface
- // @Note: Don't reassign if already present (allow test to override the Stream)
- if (!this.rl) {
- this.rl = readline.createInterface(setupReadlineOptions(opt));
- }
-
- this.rl.resume();
-
- this.onForceClose = this.onForceClose.bind(this);
-
- // Make sure new prompt start on a newline when closing
- process.on('exit', this.onForceClose);
-
- // Terminate process on SIGINT (which will call process.on('exit') in return)
- this.rl.on('SIGINT', this.onForceClose);
- }
-
- /**
- * Handle the ^C exit
- * @return {null}
- */
-
- onForceClose() {
- this.close();
- process.kill(process.pid, 'SIGINT');
- console.log('');
- }
-
- /**
- * Close the interface and cleanup listeners
- */
-
- close() {
- // Remove events listeners
- this.rl.removeListener('SIGINT', this.onForceClose);
- process.removeListener('exit', this.onForceClose);
-
- this.rl.output.unmute();
-
- if (this.activePrompt && typeof this.activePrompt.close === 'function') {
- this.activePrompt.close();
- }
-
- // Close the readline
- this.rl.output.end();
- this.rl.pause();
- this.rl.close();
- }
-}
-
-function setupReadlineOptions(opt) {
- opt = opt || {};
- // Inquirer 8.x:
- // opt.skipTTYChecks = opt.skipTTYChecks === undefined ? opt.input !== undefined : opt.skipTTYChecks;
- opt.skipTTYChecks = opt.skipTTYChecks === undefined ? true : opt.skipTTYChecks;
-
- // Default `input` to stdin
- const input = opt.input || process.stdin;
-
- // Check if prompt is being called in TTY environment
- // If it isn't return a failed promise
- if (!opt.skipTTYChecks && !input.isTTY) {
- const nonTtyError = new Error(
- 'Prompts can not be meaningfully rendered in non-TTY environments'
- );
- nonTtyError.isTtyError = true;
- throw nonTtyError;
- }
-
- // Add mute capabilities to the output
- const ms = new MuteStream();
- ms.pipe(opt.output || process.stdout);
- const output = ms;
-
- return _.extend(
- {
- terminal: true,
- input,
- output,
- },
- _.omit(opt, ['input', 'output'])
- );
-}
-
-module.exports = UI;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/bottom-bar.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/bottom-bar.js
deleted file mode 100644
index 9235273e..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/bottom-bar.js
+++ /dev/null
@@ -1,102 +0,0 @@
-'use strict';
-/**
- * Sticky bottom bar user interface
- */
-
-const through = require('through');
-const Base = require('./baseUI');
-const rlUtils = require('../utils/readline');
-const _ = {
- last: require('lodash/last'),
-};
-
-class BottomBar extends Base {
- constructor(opt) {
- opt = opt || {};
-
- super(opt);
-
- this.log = through(this.writeLog.bind(this));
- this.bottomBar = opt.bottomBar || '';
- this.render();
- }
-
- /**
- * Render the prompt to screen
- * @return {BottomBar} self
- */
-
- render() {
- this.write(this.bottomBar);
- return this;
- }
-
- clean() {
- rlUtils.clearLine(this.rl, this.bottomBar.split('\n').length);
- return this;
- }
-
- /**
- * Update the bottom bar content and rerender
- * @param {String} bottomBar Bottom bar content
- * @return {BottomBar} self
- */
-
- updateBottomBar(bottomBar) {
- rlUtils.clearLine(this.rl, 1);
- this.rl.output.unmute();
- this.clean();
- this.bottomBar = bottomBar;
- this.render();
- this.rl.output.mute();
- return this;
- }
-
- /**
- * Write out log data
- * @param {String} data - The log data to be output
- * @return {BottomBar} self
- */
-
- writeLog(data) {
- this.rl.output.unmute();
- this.clean();
- this.rl.output.write(this.enforceLF(data.toString()));
- this.render();
- this.rl.output.mute();
- return this;
- }
-
- /**
- * Make sure line end on a line feed
- * @param {String} str Input string
- * @return {String} The input string with a final line feed
- */
-
- enforceLF(str) {
- return str.match(/[\r\n]$/) ? str : str + '\n';
- }
-
- /**
- * Helper for writing message in Prompt
- * @param {BottomBar} prompt - The Prompt object that extends tty
- * @param {String} message - The message to be output
- */
- write(message) {
- const msgLines = message.split(/\n/);
- this.height = msgLines.length;
-
- // Write message to screen and setPrompt to control backspace
- this.rl.setPrompt(_.last(msgLines));
-
- if (this.rl.output.rows === 0 && this.rl.output.columns === 0) {
- /* When it's a tty through serial port there's no terminal info and the render will malfunction,
- so we need enforce the cursor to locate to the leftmost position for rendering. */
- rlUtils.left(this.rl, message.length + this.rl.line.length);
- }
-
- this.rl.output.write(message);
- }
-}
-
-module.exports = BottomBar;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/prompt.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/prompt.js
deleted file mode 100644
index d9383879..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/ui/prompt.js
+++ /dev/null
@@ -1,150 +0,0 @@
-'use strict';
-const _ = {
- isPlainObject: require('lodash/isPlainObject'),
- clone: require('lodash/clone'),
- isArray: require('lodash/isArray'),
- get: require('lodash/get'),
- set: require('lodash/set'),
- isFunction: require('lodash/isFunction'),
-};
-const { defer, empty, from, of } = require('rxjs');
-const { concatMap, filter, publish, reduce } = require('rxjs/operators');
-const runAsync = require('run-async');
-const utils = require('../utils/utils');
-const Base = require('./baseUI');
-
-/**
- * Base interface class other can inherits from
- */
-
-class PromptUI extends Base {
- constructor(prompts, opt) {
- super(opt);
- this.prompts = prompts;
- }
-
- run(questions, answers) {
- // Keep global reference to the answers
- if (_.isPlainObject(answers)) {
- this.answers = _.clone(answers);
- } else {
- this.answers = {};
- }
-
- // Make sure questions is an array.
- if (_.isPlainObject(questions)) {
- // It's either an object of questions or a single question
- questions = Object.values(questions).every(
- (v) => _.isPlainObject(v) && v.name === undefined
- )
- ? Object.entries(questions).map(([name, question]) => ({ name, ...question }))
- : [questions];
- }
-
- // Create an observable, unless we received one as parameter.
- // Note: As this is a public interface, we cannot do an instanceof check as we won't
- // be using the exact same object in memory.
- const obs = _.isArray(questions) ? from(questions) : questions;
-
- this.process = obs.pipe(
- concatMap(this.processQuestion.bind(this)),
- publish() // Creates a hot Observable. It prevents duplicating prompts.
- );
-
- this.process.connect();
-
- return this.process
- .pipe(
- reduce((answers, answer) => {
- _.set(answers, answer.name, answer.answer);
- return answers;
- }, this.answers)
- )
- .toPromise(Promise)
- .then(this.onCompletion.bind(this), this.onError.bind(this));
- }
-
- /**
- * Once all prompt are over
- */
-
- onCompletion() {
- this.close();
-
- return this.answers;
- }
-
- onError(error) {
- this.close();
- return Promise.reject(error);
- }
-
- processQuestion(question) {
- question = _.clone(question);
- return defer(() => {
- const obs = of(question);
-
- return obs.pipe(
- concatMap(this.setDefaultType.bind(this)),
- concatMap(this.filterIfRunnable.bind(this)),
- concatMap(() =>
- utils.fetchAsyncQuestionProperty(question, 'message', this.answers)
- ),
- concatMap(() =>
- utils.fetchAsyncQuestionProperty(question, 'default', this.answers)
- ),
- concatMap(() =>
- utils.fetchAsyncQuestionProperty(question, 'choices', this.answers)
- ),
- concatMap(this.fetchAnswer.bind(this))
- );
- });
- }
-
- fetchAnswer(question) {
- const Prompt = this.prompts[question.type];
- this.activePrompt = new Prompt(question, this.rl, this.answers);
- return defer(() =>
- from(this.activePrompt.run().then((answer) => ({ name: question.name, answer })))
- );
- }
-
- setDefaultType(question) {
- // Default type to input
- if (!this.prompts[question.type]) {
- question.type = 'input';
- }
-
- return defer(() => of(question));
- }
-
- filterIfRunnable(question) {
- if (
- question.askAnswered !== true &&
- _.get(this.answers, question.name) !== undefined
- ) {
- return empty();
- }
-
- if (question.when === false) {
- return empty();
- }
-
- if (!_.isFunction(question.when)) {
- return of(question);
- }
-
- const { answers } = this;
- return defer(() =>
- from(
- runAsync(question.when)(answers).then((shouldRun) => {
- if (shouldRun) {
- return question;
- }
- })
- ).pipe(filter((val) => val != null))
- );
- }
-}
-
-module.exports = PromptUI;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/events.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/events.js
deleted file mode 100644
index b4b16bb1..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/events.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-const { fromEvent } = require('rxjs');
-const { filter, map, share, takeUntil } = require('rxjs/operators');
-
-function normalizeKeypressEvents(value, key) {
- return { value, key: key || {} };
-}
-
-module.exports = function (rl) {
- const keypress = fromEvent(rl.input, 'keypress', normalizeKeypressEvents)
- .pipe(takeUntil(fromEvent(rl, 'close')))
- // Ignore `enter` key. On the readline, we only care about the `line` event.
- .pipe(filter(({ key }) => key.name !== 'enter' && key.name !== 'return'));
-
- return {
- line: fromEvent(rl, 'line'),
- keypress,
-
- normalizedUpKey: keypress.pipe(
- filter(
- ({ key }) =>
- key.name === 'up' || key.name === 'k' || (key.name === 'p' && key.ctrl)
- ),
- share()
- ),
-
- normalizedDownKey: keypress.pipe(
- filter(
- ({ key }) =>
- key.name === 'down' || key.name === 'j' || (key.name === 'n' && key.ctrl)
- ),
- share()
- ),
-
- numberKey: keypress.pipe(
- filter((e) => e.value && '123456789'.indexOf(e.value) >= 0),
- map((e) => Number(e.value)),
- share()
- ),
-
- spaceKey: keypress.pipe(
- filter(({ key }) => key && key.name === 'space'),
- share()
- ),
- aKey: keypress.pipe(
- filter(({ key }) => key && key.name === 'a'),
- share()
- ),
- iKey: keypress.pipe(
- filter(({ key }) => key && key.name === 'i'),
- share()
- ),
- };
-};
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/incrementListIndex.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/incrementListIndex.js
deleted file mode 100644
index 49aa2011..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/incrementListIndex.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function incrementListIndex(current, dir, opt) {
- const len = opt.choices.realLength;
- const shouldLoop = 'loop' in opt ? Boolean(opt.loop) : true;
- if (dir === 'up') {
- if (current > 0) {
- return current - 1;
- }
- return shouldLoop ? len - 1 : current;
- }
- if (dir === 'down') {
- if (current < len - 1) {
- return current + 1;
- }
- return shouldLoop ? 0 : current;
- }
- throw new Error('dir must be up or down');
-}
-
-module.exports = incrementListIndex;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/paginator.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/paginator.js
deleted file mode 100644
index 767bf672..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/paginator.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-
-const _ = {
- sum: require('lodash/sum'),
- flatten: require('lodash/flatten'),
-};
-const chalk = require('chalk');
-
-/**
- * The paginator returns a subset of the choices if the list is too long.
- */
-
-class Paginator {
- constructor(screen, options = {}) {
- const { isInfinite = true } = options;
- this.lastIndex = 0;
- this.screen = screen;
- this.isInfinite = isInfinite;
- }
-
- paginate(output, active, pageSize) {
- pageSize = pageSize || 7;
- let lines = output.split('\n');
-
- if (this.screen) {
- lines = this.screen.breakLines(lines);
- active = _.sum(lines.map((lineParts) => lineParts.length).splice(0, active));
- lines = _.flatten(lines);
- }
-
- // Make sure there's enough lines to paginate
- if (lines.length <= pageSize) {
- return output;
- }
- const visibleLines = this.isInfinite
- ? this.getInfiniteLines(lines, active, pageSize)
- : this.getFiniteLines(lines, active, pageSize);
- this.lastIndex = active;
- return (
- visibleLines.join('\n') +
- '\n' +
- chalk.dim('(Move up and down to reveal more choices)')
- );
- }
-
- getInfiniteLines(lines, active, pageSize) {
- if (this.pointer === undefined) {
- this.pointer = 0;
- }
- const middleOfList = Math.floor(pageSize / 2);
- // Move the pointer only when the user go down and limit it to the middle of the list
- if (
- this.pointer < middleOfList &&
- this.lastIndex < active &&
- active - this.lastIndex < pageSize
- ) {
- this.pointer = Math.min(middleOfList, this.pointer + active - this.lastIndex);
- }
-
- // Duplicate the lines so it give an infinite list look
- const infinite = _.flatten([lines, lines, lines]);
- const topIndex = Math.max(0, active + lines.length - this.pointer);
-
- return infinite.splice(topIndex, pageSize);
- }
-
- getFiniteLines(lines, active, pageSize) {
- let topIndex = active - pageSize / 2;
- if (topIndex < 0) {
- topIndex = 0;
- } else if (topIndex + pageSize > lines.length) {
- topIndex = lines.length - pageSize;
- }
- return lines.splice(topIndex, pageSize);
- }
-}
-
-module.exports = Paginator;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/readline.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/readline.js
deleted file mode 100644
index 769f5d7f..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/readline.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const ansiEscapes = require('ansi-escapes');
-
-/**
- * Move cursor left by `x`
- * @param {Readline} rl - Readline instance
- * @param {Number} x - How far to go left (default to 1)
- */
-
-exports.left = function (rl, x) {
- rl.output.write(ansiEscapes.cursorBackward(x));
-};
-
-/**
- * Move cursor right by `x`
- * @param {Readline} rl - Readline instance
- * @param {Number} x - How far to go left (default to 1)
- */
-
-exports.right = function (rl, x) {
- rl.output.write(ansiEscapes.cursorForward(x));
-};
-
-/**
- * Move cursor up by `x`
- * @param {Readline} rl - Readline instance
- * @param {Number} x - How far to go up (default to 1)
- */
-
-exports.up = function (rl, x) {
- rl.output.write(ansiEscapes.cursorUp(x));
-};
-
-/**
- * Move cursor down by `x`
- * @param {Readline} rl - Readline instance
- * @param {Number} x - How far to go down (default to 1)
- */
-
-exports.down = function (rl, x) {
- rl.output.write(ansiEscapes.cursorDown(x));
-};
-
-/**
- * Clear current line
- * @param {Readline} rl - Readline instance
- * @param {Number} len - number of line to delete
- */
-exports.clearLine = function (rl, len) {
- rl.output.write(ansiEscapes.eraseLines(len));
-};
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/screen-manager.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/screen-manager.js
deleted file mode 100644
index 12412c64..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/screen-manager.js
+++ /dev/null
@@ -1,175 +0,0 @@
-'use strict';
-const _ = {
- last: require('lodash/last'),
- flatten: require('lodash/flatten'),
-};
-const util = require('./readline');
-const cliWidth = require('cli-width');
-const stripAnsi = require('strip-ansi');
-const stringWidth = require('string-width');
-const ora = require('ora');
-
-function height(content) {
- return content.split('\n').length;
-}
-
-function lastLine(content) {
- return _.last(content.split('\n'));
-}
-
-class ScreenManager {
- constructor(rl) {
- // These variables are keeping information to allow correct prompt re-rendering
- this.height = 0;
- this.extraLinesUnderPrompt = 0;
-
- this.rl = rl;
- }
-
- renderWithSpinner(content, bottomContent) {
- if (this.spinnerId) {
- clearInterval(this.spinnerId);
- }
-
- let spinner;
- let contentFunc;
- let bottomContentFunc;
-
- if (bottomContent) {
- spinner = ora(bottomContent);
- contentFunc = () => content;
- bottomContentFunc = () => spinner.frame();
- } else {
- spinner = ora(content);
- contentFunc = () => spinner.frame();
- bottomContentFunc = () => '';
- }
-
- this.spinnerId = setInterval(
- () => this.render(contentFunc(), bottomContentFunc(), true),
- spinner.interval
- );
- }
-
- render(content, bottomContent, spinning = false) {
- if (this.spinnerId && !spinning) {
- clearInterval(this.spinnerId);
- }
-
- this.rl.output.unmute();
- this.clean(this.extraLinesUnderPrompt);
-
- /**
- * Write message to screen and setPrompt to control backspace
- */
-
- const promptLine = lastLine(content);
- const rawPromptLine = stripAnsi(promptLine);
-
- // Remove the rl.line from our prompt. We can't rely on the content of
- // rl.line (mainly because of the password prompt), so just rely on it's
- // length.
- let prompt = rawPromptLine;
- if (this.rl.line.length) {
- prompt = prompt.slice(0, -this.rl.line.length);
- }
-
- this.rl.setPrompt(prompt);
-
- // SetPrompt will change cursor position, now we can get correct value
- const cursorPos = this.rl._getCursorPos();
- const width = this.normalizedCliWidth();
-
- content = this.forceLineReturn(content, width);
- if (bottomContent) {
- bottomContent = this.forceLineReturn(bottomContent, width);
- }
-
- // Manually insert an extra line if we're at the end of the line.
- // This prevent the cursor from appearing at the beginning of the
- // current line.
- if (rawPromptLine.length % width === 0) {
- content += '\n';
- }
-
- const fullContent = content + (bottomContent ? '\n' + bottomContent : '');
- this.rl.output.write(fullContent);
-
- /**
- * Re-adjust the cursor at the correct position.
- */
-
- // We need to consider parts of the prompt under the cursor as part of the bottom
- // content in order to correctly cleanup and re-render.
- const promptLineUpDiff = Math.floor(rawPromptLine.length / width) - cursorPos.rows;
- const bottomContentHeight =
- promptLineUpDiff + (bottomContent ? height(bottomContent) : 0);
- if (bottomContentHeight > 0) {
- util.up(this.rl, bottomContentHeight);
- }
-
- // Reset cursor at the beginning of the line
- util.left(this.rl, stringWidth(lastLine(fullContent)));
-
- // Adjust cursor on the right
- if (cursorPos.cols > 0) {
- util.right(this.rl, cursorPos.cols);
- }
-
- /**
- * Set up state for next re-rendering
- */
- this.extraLinesUnderPrompt = bottomContentHeight;
- this.height = height(fullContent);
-
- this.rl.output.mute();
- }
-
- clean(extraLines) {
- if (extraLines > 0) {
- util.down(this.rl, extraLines);
- }
-
- util.clearLine(this.rl, this.height);
- }
-
- done() {
- this.rl.setPrompt('');
- this.rl.output.unmute();
- this.rl.output.write('\n');
- }
-
- releaseCursor() {
- if (this.extraLinesUnderPrompt > 0) {
- util.down(this.rl, this.extraLinesUnderPrompt);
- }
- }
-
- normalizedCliWidth() {
- const width = cliWidth({
- defaultWidth: 80,
- output: this.rl.output,
- });
- return width;
- }
-
- breakLines(lines, width) {
- // Break lines who're longer than the cli width so we can normalize the natural line
- // returns behavior across terminals.
- width = width || this.normalizedCliWidth();
- const regex = new RegExp('(?:(?:\\033[[0-9;]*m)*.?){1,' + width + '}', 'g');
- return lines.map((line) => {
- const chunk = line.match(regex);
- // Last match is always empty
- chunk.pop();
- return chunk || '';
- });
- }
-
- forceLineReturn(content, width) {
- width = width || this.normalizedCliWidth();
- return _.flatten(this.breakLines(content.split('\n'), width)).join('\n');
- }
-}
-
-module.exports = ScreenManager;
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/utils.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/utils.js
deleted file mode 100644
index 92117510..00000000
--- a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/utils/utils.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-const _ = {
- isFunction: require('lodash/isFunction'),
-};
-const { from, of } = require('rxjs');
-const runAsync = require('run-async');
-
-/**
- * Resolve a question property value if it is passed as a function.
- * This method will overwrite the property on the question object with the received value.
- * @param {Object} question - Question object
- * @param {String} prop - Property to fetch name
- * @param {Object} answers - Answers object
- * @return {Rx.Observable} - Observable emitting once value is known
- */
-
-exports.fetchAsyncQuestionProperty = function (question, prop, answers) {
- if (!_.isFunction(question[prop])) {
- return of(question);
- }
-
- return from(
- runAsync(question[prop])(answers).then((value) => {
- question[prop] = value;
- return question;
- })
- );
-};