πŸ“„ README.ru.md
/home/palash/git/site/node_modules/coa/README.ru.md
Language: md β€’ Lines: 316
# Command-Option-Argument
[![build status](https://secure.travis-ci.org/veged/coa.png)](http://travis-ci.org/veged/coa)

## Π§Ρ‚ΠΎ это?

COA β€” парсСр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ максимум ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ API вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²Ρ‹ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅:

* Π‘ΠΏΡ€Π°Π²ΠΊΡƒ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
* API для использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ модуля Π² COA-совмСстимых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…
* АвтодополнСниС для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

### ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ возмоТности

* Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ настроСк для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ мноТСствСнныС значСния, логичСскиС значСния ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
* Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ асинхронного исполнСния ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ промисы (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° [Q](https://github.com/kriskowal/q))
* ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄
* ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ валидация ΠΈ Π°Π½Π°Π»ΠΈΠ· слоТных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

## ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

````javascript
require('coa').Cmd() // дСкларация ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня
    .name(process.argv[1]) // имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    .title('Π–ΡƒΡ‚ΠΊΠΎ полСзная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки') // Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для использования Π² справкС ΠΈ сообщСниях
    .helpful() // добавляСм ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ справки ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (-h, --help)
    .opt() // добавляСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
        .name('version') // имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для использования Π² API
        .title('Version') // тСкст для Π²Ρ‹Π²ΠΎΠ΄Π° Π² сообщСниях
        .short('v') // ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: -v
        .long('version') // Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: --version
        .flag() // ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π° значСния
        .act(function(opts) {  // дСйствия ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
            // Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π²Ρ‹Π²ΠΎΠ΄ тСкстового сообщСния
            return JSON.parse(require('fs').readFileSync(__dirname + '/package.json'))
                .version;
        })
        .end() // Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ возвращаСмся ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня
    .cmd().name('subcommand').apply(require('./subcommand').COA).end() // Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· модуля
    .cmd() // добавляСм Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
        .name('othercommand').title('Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° полСзная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°').helpful()
        .opt()
            .name('input').title('input file, required')
            .short('i').long('input')
            .val(function(v) { // функция-Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для трансформации Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
                return require('fs').createReadStream(v) })
            .req() // ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ
            .end() // Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ возвращаСмся ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
        .end() // Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ возвращаСмся ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня
    .run(process.argv.slice(2)); // Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ process.argv ΠΈ запускаСм
````

````javascript
// subcommand.js
exports.COA = function() {
    this
        .title('ПолСзная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°').helpful()
        .opt()
            .name('output').title('output file')
            .short('o').long('output')
            .output() // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ настройку для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π²Ρ‹Π²ΠΎΠ΄Π°
            .end()
};
````

## API

### Cmd
Команда β€”Β ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.

#### Cmd.api
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. ΠŸΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.<br>
**@returns** *{Object}*

#### Cmd.name
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ каноничСский ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… API.<br>
**@param** *String* `_name` имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.title
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² тСкстовых сообщСниях.<br>
**@param** *String* `_title` Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.cmd
Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ добавляСт Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.<br>
**@param** *COA.Cmd* `[cmd]` экзСмпляр Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
**@returns** *COA.Cmd* экзСмпляр Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

#### Cmd.opt
Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Opt* `new` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

#### Cmd.arg
Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Opt* `new` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°

#### Cmd.act
ДобавляСт (ΠΈΠ»ΠΈ создаСт) дСйствиС для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@param** *Function* `act` функция,
    выполняСмая Π² контСкстС экзСмпляра Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
    ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:<br>
        - *Object* `opts` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
        - *Array* `args` Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
        - *Object* `res` ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-аккумулятор Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²<br>
    Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½Π½Ρ‹ΠΉ промис ΠΈΠ· Cmd.reject (Π² случаС ошибки)
    ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рассматриваСмоС ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.<br>
**@param** *{Boolean}* [force=false] Ρ„Π»Π°Π³, Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ исполнСниС вмСсто добавлСния ΠΊ списку ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… дСйствий<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.apply
Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π² контСкстС экзСмпляра Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@param** *Function* `fn`<br>
**@param** *Array* `args`<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.comp
НазначаСт ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ автодополнСния для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@param** *Function* `fn` функция-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ автодополнСния,
    исполняСмая Π² контСкстС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
    ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:<br>
        - *Object* `opts` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹<br>
    ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ промис ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рассматриваСмоС ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ исполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.helpful
Π‘Ρ‚Π°Π²ΠΈΡ‚ Ρ„Π»Π°Π³ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ справки ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚.Π΅. Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ -h --help Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ справку ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.completable
ДобавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ автодополнСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ДобавляСтся ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° "completion", которая выполняСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия.<br>
ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π³Π»Π°Π²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.usage
Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ тСкст справки ΠΏΠΎ использованию ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра.<br>
**@returns** *String* `usage` ВСкст справки ΠΏΠΎ использованию

#### Cmd.run
Π Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ· значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ NodeJS process.argv,
ΠΈ запускаСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‚.Π΅. Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ process.exit послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ
всСх дСйствий.<br>
**@param** *Array* `argv`<br>
**@returns** *COA.Cmd* `this` экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Cmd.invoke
Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ (ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ) ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.<br>
**@param** *String|Array* `cmds`  ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° для исполнСния (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)<br>
**@param** *Object* `opts`  ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)<br>
**@param** *Object* `args`  Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)<br>
**@returns** *Q.Promise*

#### Cmd.reject
ΠŸΡ€ΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅Ρ‚ промисы, Π²ΠΎΠ·Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Π΅ Π² дСйствиях.<br>
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² .act() для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° с ошибкой.<br>
**@param** *Object* `reason` ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΏΡ€ΠΎΠ²Π°Π»Π°<br>
    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ toString() ΠΈ свойство toString()
    ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π°Π»Π°.<br>
**@returns** *Q.promise* ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½Π½Ρ‹ΠΉ промис

#### Cmd.end
Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Cmd* `parent` Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°

### Opt
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — имСнованная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ. Π£ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ имя для использования ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.<br>
**@namespace**<br>
**@class** ΠŸΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

#### Opt.name
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ каноничСский ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… API.<br>
**@param** *String* `_name` имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.title
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ описаниС для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² тСкстовых сообщСниях.<br>
**@param** *String* `_title` Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.short
НазначаСт ΠΊΠ»ΡŽΡ‡ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ дСфисом (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `-v`).<br>
**@param** *String* `_short`<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.long
НазначаСт ΠΊΠ»ΡŽΡ‡ для Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ дСфисом (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `--version`).<br>
**@param** *String* `_long`<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.flag
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ логичСский, Ρ‚.Π΅. ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ значСния.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.arr
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ мноТСствСнныС значСния.<br>
Π˜Π½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использовано послСднСС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.req
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.only
Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ,
Ρ‚.Π΅. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° сразу послС выполнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.val
НазначаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ (ΠΈΠ»ΠΈ трансформации значСния) для значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.<br>
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ станСт доступно ΠΈΠ· API.<br>
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈ трансформации Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….<br>
**@param** *Function* `_val` функция Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ,
    исполняСмая Π² контСкстС экзСмпляра ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°
    ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ Π² качСствС СдинствСнного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅
    ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.def
НазначаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ пСрСдаСтся
Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.<br>
**@param** *Object* `_def`<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.input
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. <br>
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ для STDIN.<br>
**@returns** *{COA.Opt}* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.output
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ Π²Ρ‹Π²ΠΎΠ΄.<br>
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ для STDOUT.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.act
ДобавляСт (ΠΈΠ»ΠΈ создаСт) дСйствиС для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
Π­Ρ‚ΠΎ дСйствиС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Ссли Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΅ΡΡ‚ΡŒ
Π² спискС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (с Π»ΡŽΠ±Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ).<br>
**@param** *Function* `act` функция, выполняСмая Π² контСкстС
    экзСмпляра Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:<br>
        - *Object* `opts` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
        - *Array* `args` Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹<br>
        - *Object* `res` ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-аккумулятор Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²<br>
    Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½Π½Ρ‹ΠΉ промис ΠΈΠ· Cmd.reject (Π² случаС ошибки)
    ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рассматриваСмоС ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.comp
НазначаСт ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ автодополнСния для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@param** *Function* `fn` функция-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ автодоплнСния, исполняСмая Π²
    контСкстС экзСмпляра ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
    ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:<br>
        - *Object* `opts` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ автодополнСния<br>
    ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ промис ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рассматриваСмоС ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ исполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Opt* `this` экзСмпляр ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Opt.end
Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Cmd* `parent` Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°


### Arg
АргумСнт β€” нСимСнованная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ.<br>
АргумСнты ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΊΠ°ΠΊ список Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

#### Arg.name
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ каноничСский ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… API.<br>
**@param** *String* `_name` имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.title
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ описаниС для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² тСкстовых сообщСниях.<br>
**@param** *String* `_title` описаниС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.arr
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ мноТСствСнныС значСния.<br>
Π˜Π½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использовано послСднСС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.req
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ.<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.val
НазначаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ (ΠΈΠ»ΠΈ трансформации значСния) для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.<br>
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ станСт доступно ΠΈΠ· API.<br>
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈ трансформации Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….<br>
**@param** *Function* `_val` функция Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ,
    исполняСмая Π² контСкстС экзСмпляра Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
    ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ Π² качСствС СдинствСнного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅
    ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки<br>
**@returns** *COA.Opt* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.def
НазначаСт Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π”Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСдаСтся
Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.<br>
**@param** *Object* `_def`<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.output
ΠŸΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ Π²Ρ‹Π²ΠΎΠ΄.<br>
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ для STDOUT.<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.comp
НазначаСт ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ автодополнСния для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.<br>
**@param** *Function* `fn` функция-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ автодоплнСния,
    исполняСмая Π² контСкстС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
    ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:<br>
        - *Object* `opts` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ промис ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рассматриваСмоС ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ исполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Arg* `this` экзСмпляр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

#### Arg.end
Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.<br>
**@returns** *COA.Cmd* `parent` Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°