瀏覽代碼

Merge branch 'Merge_gabriel_mayo' into ANTES-DE-MEZCLAR

父節點
當前提交
996d4d8f12
共有 100 個檔案被更改,包括 359 行新增7011 行删除
  1. 2
    0
      .gitignore
  2. 0
    204
      app/config/app.php
  3. 0
    71
      app/config/auth.php
  4. 0
    89
      app/config/cache.php
  5. 0
    18
      app/config/compile.php
  6. 0
    99
      app/config/database.php
  7. 0
    124
      app/config/mail.php
  8. 0
    0
      app/config/packages/.gitkeep
  9. 0
    73
      app/config/packages/cornford/backup/config.php
  10. 0
    85
      app/config/queue.php
  11. 0
    59
      app/config/remote.php
  12. 0
    31
      app/config/services.php
  13. 0
    140
      app/config/session.php
  14. 0
    20
      app/config/testing/cache.php
  15. 0
    21
      app/config/testing/session.php
  16. 0
    31
      app/config/view.php
  17. 0
    31
      app/config/workbench.php
  18. 3
    3
      app/controllers/AuthController.php
  19. 9
    0
      app/controllers/OutcomesController.php
  20. 47
    21
      app/models/Criterion.php
  21. 194
    115
      app/models/Outcome.php
  22. 104
    61
      app/models/Program.php
  23. 0
    6
      node_modules/.bin/atob
  24. 0
    7
      node_modules/.bin/cake
  25. 0
    157
      node_modules/.bin/cleancss
  26. 0
    7
      node_modules/.bin/coffee
  27. 0
    3
      node_modules/.bin/color-support
  28. 0
    117
      node_modules/.bin/esparse
  29. 0
    177
      node_modules/.bin/esvalidate
  30. 0
    212
      node_modules/.bin/gulp
  31. 0
    38
      node_modules/.bin/gzip-size
  32. 0
    238
      node_modules/.bin/html-minifier
  33. 0
    125
      node_modules/.bin/js-yaml
  34. 0
    3
      node_modules/.bin/jshint
  35. 0
    33
      node_modules/.bin/mkdirp
  36. 0
    44
      node_modules/.bin/nopt
  37. 0
    32
      node_modules/.bin/pretty-bytes
  38. 0
    33
      node_modules/.bin/rimraf
  39. 0
    143
      node_modules/.bin/semver
  40. 0
    51
      node_modules/.bin/shjs
  41. 0
    39
      node_modules/.bin/strip-ansi
  42. 0
    49
      node_modules/.bin/strip-indent
  43. 0
    41
      node_modules/.bin/strip-json-comments
  44. 0
    68
      node_modules/.bin/tiny-lr-fork
  45. 0
    560
      node_modules/.bin/uglifyjs
  46. 0
    26
      node_modules/.bin/user-home
  47. 0
    52
      node_modules/.bin/which
  48. 0
    12
      node_modules/.bin/win-spawn
  49. 0
    489
      node_modules/.yarn-integrity
  50. 0
    46
      node_modules/abbrev/LICENSE
  51. 0
    23
      node_modules/abbrev/README.md
  52. 0
    61
      node_modules/abbrev/abbrev.js
  53. 0
    21
      node_modules/abbrev/package.json
  54. 0
    21
      node_modules/align-text/LICENSE
  55. 0
    236
      node_modules/align-text/README.md
  56. 0
    52
      node_modules/align-text/index.js
  57. 0
    52
      node_modules/align-text/package.json
  58. 0
    58
      node_modules/amdefine/LICENSE
  59. 0
    171
      node_modules/amdefine/README.md
  60. 0
    301
      node_modules/amdefine/amdefine.js
  61. 0
    36
      node_modules/amdefine/intercept.js
  62. 0
    16
      node_modules/amdefine/package.json
  63. 0
    21
      node_modules/ansi-gray/LICENSE
  64. 0
    14
      node_modules/ansi-gray/index.js
  65. 0
    55
      node_modules/ansi-gray/package.json
  66. 0
    74
      node_modules/ansi-gray/readme.md
  67. 0
    4
      node_modules/ansi-regex/index.js
  68. 0
    51
      node_modules/ansi-regex/package.json
  69. 0
    33
      node_modules/ansi-regex/readme.md
  70. 0
    40
      node_modules/ansi-styles/index.js
  71. 0
    46
      node_modules/ansi-styles/package.json
  72. 0
    70
      node_modules/ansi-styles/readme.md
  73. 0
    21
      node_modules/ansi-wrap/LICENSE
  74. 0
    89
      node_modules/ansi-wrap/README.md
  75. 0
    5
      node_modules/ansi-wrap/index.js
  76. 0
    34
      node_modules/ansi-wrap/package.json
  77. 0
    4
      node_modules/archy/.travis.yml
  78. 0
    18
      node_modules/archy/LICENSE
  79. 0
    24
      node_modules/archy/examples/beep.js
  80. 0
    25
      node_modules/archy/examples/multi_line.js
  81. 0
    35
      node_modules/archy/index.js
  82. 0
    40
      node_modules/archy/package.json
  83. 0
    88
      node_modules/archy/readme.markdown
  84. 0
    40
      node_modules/archy/test/beep.js
  85. 0
    45
      node_modules/archy/test/multi_line.js
  86. 0
    40
      node_modules/archy/test/non_unicode.js
  87. 0
    115
      node_modules/argparse/HISTORY.md
  88. 0
    21
      node_modules/argparse/LICENSE
  89. 0
    239
      node_modules/argparse/README.md
  90. 0
    36
      node_modules/argparse/examples/arguments.js
  91. 0
    22
      node_modules/argparse/examples/choice.js
  92. 0
    59
      node_modules/argparse/examples/constants.js
  93. 0
    13
      node_modules/argparse/examples/help.js
  94. 0
    33
      node_modules/argparse/examples/nargs.js
  95. 0
    28
      node_modules/argparse/examples/parents.js
  96. 0
    23
      node_modules/argparse/examples/prefix_chars.js
  97. 0
    49
      node_modules/argparse/examples/sub_commands.js
  98. 0
    35
      node_modules/argparse/examples/sum.js
  99. 0
    270
      node_modules/argparse/examples/testformatters.js
  100. 0
    0
      node_modules/argparse/index.js

+ 2
- 0
.gitignore 查看文件

@@ -10,3 +10,5 @@ app/database/csv/*
10 10
 app/config/local/*
11 11
 app/config/app.php
12 12
 app/config/database.php
13
+node_modules/
14
+app/config/

+ 0
- 204
app/config/app.php 查看文件

@@ -1,204 +0,0 @@
1
-<?php
2
-error_reporting(error_reporting() & ~E_DEPRECATED);
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Application Debug Mode
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| When your application is in debug mode, detailed error messages with
11
-	| stack traces will be shown on every error that occurs within your
12
-	| application. If disabled, a simple generic error page is shown.
13
-	|
14
-	*/
15
-
16
-	//'debug' => $_ENV['APP_DEBUG'] ?: false,
17
-
18
-	'debug' => true,
19
-	/*
20
-	|--------------------------------------------------------------------------
21
-	| Application URL
22
-	|--------------------------------------------------------------------------
23
-	|
24
-	| This URL is used by the console to properly generate URLs when using
25
-	| the Artisan command line tool. You should set this to the root of
26
-	| your application so that it is used when running Artisan tasks.
27
-	|
28
-	*/ //$_ENV['APP_URL'] ?:
29
-
30
-	'url' =>  'http://localhost',
31
-
32
-	/*
33
-	|--------------------------------------------------------------------------
34
-	| Application Timezone
35
-	|--------------------------------------------------------------------------
36
-	|
37
-	| Here you may specify the default timezone for your application, which
38
-	| will be used by the PHP date and date-time functions. We have gone
39
-	| ahead and set this to a sensible default for you out of the box.
40
-	|
41
-	*/
42
-
43
-	'timezone' => 'America/Puerto_Rico',
44
-
45
-	/*
46
-	|--------------------------------------------------------------------------
47
-	| Application Locale Configuration
48
-	|--------------------------------------------------------------------------
49
-	|
50
-	| The application locale determines the default locale that will be used
51
-	| by the translation service provider. You are free to set this value
52
-	| to any of the locales which will be supported by the application.
53
-	|
54
-	*/
55
-
56
-	'locale' => 'en',
57
-
58
-	/*
59
-	|--------------------------------------------------------------------------
60
-	| Application Fallback Locale
61
-	|--------------------------------------------------------------------------
62
-	|
63
-	| The fallback locale determines the locale to use when the current one
64
-	| is not available. You may change the value to correspond to any of
65
-	| the language folders that are provided through your application.
66
-	|
67
-	*/
68
-
69
-	'fallback_locale' => 'en',
70
-
71
-	/*
72
-	|--------------------------------------------------------------------------
73
-	| Encryption Key
74
-	|--------------------------------------------------------------------------
75
-	|
76
-	| This key is used by the Illuminate encrypter service and should be set
77
-	| to a random, 32 character string, otherwise these encrypted strings
78
-	| will not be safe. Please do this before deploying an application!
79
-	|
80
-	*/
81
-
82
-	// 'key' => 'YourSecretKey!!!',
83
-	'key' => 'JozBz0yQBrZ5kEcPvgxch3RR3E3INSGs',
84
-
85
-	'cipher' => MCRYPT_RIJNDAEL_256,
86
-
87
-	/*
88
-	|--------------------------------------------------------------------------
89
-	| Autoloaded Service Providers
90
-	|--------------------------------------------------------------------------
91
-	|
92
-	| The service providers listed here will be automatically loaded on the
93
-	| request to your application. Feel free to add your own services to
94
-	| this array to grant expanded functionality to your applications.
95
-	|
96
-	*/
97
-
98
-	'providers' => array(
99
-
100
-		'Illuminate\Foundation\Providers\ArtisanServiceProvider',
101
-		'Illuminate\Auth\AuthServiceProvider',
102
-		'Illuminate\Cache\CacheServiceProvider',
103
-		'Illuminate\Session\CommandsServiceProvider',
104
-		'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
105
-		'Illuminate\Routing\ControllerServiceProvider',
106
-		'Illuminate\Cookie\CookieServiceProvider',
107
-		'Illuminate\Database\DatabaseServiceProvider',
108
-		'Illuminate\Encryption\EncryptionServiceProvider',
109
-		'Illuminate\Filesystem\FilesystemServiceProvider',
110
-		'Illuminate\Hashing\HashServiceProvider',
111
-		'Illuminate\Html\HtmlServiceProvider',
112
-		'Illuminate\Log\LogServiceProvider',
113
-		'Illuminate\Mail\MailServiceProvider',
114
-		'Illuminate\Database\MigrationServiceProvider',
115
-		'Illuminate\Pagination\PaginationServiceProvider',
116
-		'Illuminate\Queue\QueueServiceProvider',
117
-		'Illuminate\Redis\RedisServiceProvider',
118
-		'Illuminate\Remote\RemoteServiceProvider',
119
-		'Illuminate\Auth\Reminders\ReminderServiceProvider',
120
-		'Illuminate\Database\SeedServiceProvider',
121
-		'Illuminate\Session\SessionServiceProvider',
122
-		'Illuminate\Translation\TranslationServiceProvider',
123
-		'Illuminate\Validation\ValidationServiceProvider',
124
-		'Illuminate\View\ViewServiceProvider',
125
-		'Illuminate\Workbench\WorkbenchServiceProvider',
126
-		'Way\Generators\GeneratorsServiceProvider',
127
-		'Barryvdh\DomPDF\ServiceProvider',
128
-		// 'Cornford\Backup\Providers\BackupServiceProvider',
129
-		'Zizaco\Entrust\EntrustServiceProvider'
130
-
131
-	),
132
-
133
-	/*
134
-	|--------------------------------------------------------------------------
135
-	| Service Provider Manifest
136
-	|--------------------------------------------------------------------------
137
-	|
138
-	| The service provider manifest is used by Laravel to lazy load service
139
-	| providers which are not needed for each request, as well to keep a
140
-	| list of all of the services. Here, you may set its storage spot.
141
-	|
142
-	*/
143
-
144
-	'manifest' => storage_path() . '/meta',
145
-
146
-	/*
147
-	|--------------------------------------------------------------------------
148
-	| Class Aliases
149
-	|--------------------------------------------------------------------------
150
-	|
151
-	| This array of class aliases will be registered when this application
152
-	| is started. However, feel free to register as many as you wish as
153
-	| the aliases are "lazy" loaded so they don't hinder performance.
154
-	|
155
-	*/
156
-
157
-	'aliases' => array(
158
-
159
-		'App'               => 'Illuminate\Support\Facades\App',
160
-		'Artisan'           => 'Illuminate\Support\Facades\Artisan',
161
-		'Auth'              => 'Illuminate\Support\Facades\Auth',
162
-		//'Backup'	        => 'Cornford\Backup\Facades\Backup',
163
-		'Blade'             => 'Illuminate\Support\Facades\Blade',
164
-		'Cache'             => 'Illuminate\Support\Facades\Cache',
165
-		'ClassLoader'       => 'Illuminate\Support\ClassLoader',
166
-		'Config'            => 'Illuminate\Support\Facades\Config',
167
-		'Controller'        => 'Illuminate\Routing\Controller',
168
-		'Cookie'            => 'Illuminate\Support\Facades\Cookie',
169
-		'Crypt'             => 'Illuminate\Support\Facades\Crypt',
170
-		'DB'                => 'Illuminate\Support\Facades\DB',
171
-		'Eloquent'          => 'Illuminate\Database\Eloquent\Model',
172
-		'Event'             => 'Illuminate\Support\Facades\Event',
173
-		'File'              => 'Illuminate\Support\Facades\File',
174
-		'Form'              => 'Illuminate\Support\Facades\Form',
175
-		'Hash'              => 'Illuminate\Support\Facades\Hash',
176
-		'HTML'              => 'Illuminate\Support\Facades\HTML',
177
-		'Input'             => 'Illuminate\Support\Facades\Input',
178
-		'Lang'              => 'Illuminate\Support\Facades\Lang',
179
-		'Log'               => 'Illuminate\Support\Facades\Log',
180
-		'Mail'              => 'Illuminate\Support\Facades\Mail',
181
-		'Paginator'         => 'Illuminate\Support\Facades\Paginator',
182
-		'Password'          => 'Illuminate\Support\Facades\Password',
183
-		'Queue'             => 'Illuminate\Support\Facades\Queue',
184
-		'Redirect'          => 'Illuminate\Support\Facades\Redirect',
185
-		'Redis'             => 'Illuminate\Support\Facades\Redis',
186
-		'Request'           => 'Illuminate\Support\Facades\Request',
187
-		'Response'          => 'Illuminate\Support\Facades\Response',
188
-		'Route'             => 'Illuminate\Support\Facades\Route',
189
-		'Schema'            => 'Illuminate\Support\Facades\Schema',
190
-		'Seeder'            => 'Illuminate\Database\Seeder',
191
-		'Session'           => 'Illuminate\Support\Facades\Session',
192
-		'SoftDeletingTrait' => 'Illuminate\Database\Eloquent\SoftDeletingTrait',
193
-		'SSH'               => 'Illuminate\Support\Facades\SSH',
194
-		'Str'               => 'Illuminate\Support\Str',
195
-		'URL'               => 'Illuminate\Support\Facades\URL',
196
-		'Validator'         => 'Illuminate\Support\Facades\Validator',
197
-		'View'              => 'Illuminate\Support\Facades\View',
198
-		'PDF'				=> 'Barryvdh\DomPDF\Facade',
199
-		'Entrust' => 'Zizaco\Entrust\EntrustFacade'
200
-
201
-
202
-	),
203
-
204
-);

+ 0
- 71
app/config/auth.php 查看文件

@@ -1,71 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Authentication Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| This option controls the authentication driver that will be utilized.
11
-	| This driver manages the retrieval and authentication of the users
12
-	| attempting to get access to protected areas of your application.
13
-	|
14
-	| Supported: "database", "eloquent"
15
-	|
16
-	*/
17
-
18
-	'driver' => 'eloquent',
19
-
20
-	/*
21
-	|--------------------------------------------------------------------------
22
-	| Authentication Model
23
-	|--------------------------------------------------------------------------
24
-	|
25
-	| When using the "Eloquent" authentication driver, we need to know which
26
-	| Eloquent model should be used to retrieve your users. Of course, it
27
-	| is often just the "User" model but you may use whatever you like.
28
-	|
29
-	*/
30
-
31
-	'model' => 'User',
32
-
33
-	/*
34
-	|--------------------------------------------------------------------------
35
-	| Authentication Table
36
-	|--------------------------------------------------------------------------
37
-	|
38
-	| When using the "Database" authentication driver, we need to know which
39
-	| table should be used to retrieve your users. We have chosen a basic
40
-	| default value but you may easily change it to any table you like.
41
-	|
42
-	*/
43
-
44
-	'table' => 'users',
45
-
46
-	/*
47
-	|--------------------------------------------------------------------------
48
-	| Password Reminder Settings
49
-	|--------------------------------------------------------------------------
50
-	|
51
-	| Here you may set the settings for password reminders, including a view
52
-	| that should be used as your password reminder e-mail. You will also
53
-	| be able to set the name of the table that holds the reset tokens.
54
-	|
55
-	| The "expire" time is the number of minutes that the reminder should be
56
-	| considered valid. This security feature keeps tokens short-lived so
57
-	| they have less time to be guessed. You may change this as needed.
58
-	|
59
-	*/
60
-
61
-	'reminder' => array(
62
-
63
-		'email' => 'emails.auth.reminder',
64
-
65
-		'table' => 'password_reminders',
66
-
67
-		'expire' => 60,
68
-
69
-	),
70
-
71
-);

+ 0
- 89
app/config/cache.php 查看文件

@@ -1,89 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Cache Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| This option controls the default cache "driver" that will be used when
11
-	| using the Caching library. Of course, you may use other drivers any
12
-	| time you wish. This is the default when another is not specified.
13
-	|
14
-	| Supported: "file", "database", "apc", "memcached", "redis", "array"
15
-	|
16
-	*/
17
-
18
-	'driver' => 'file',
19
-
20
-	/*
21
-	|--------------------------------------------------------------------------
22
-	| File Cache Location
23
-	|--------------------------------------------------------------------------
24
-	|
25
-	| When using the "file" cache driver, we need a location where the cache
26
-	| files may be stored. A sensible default has been specified, but you
27
-	| are free to change it to any other place on disk that you desire.
28
-	|
29
-	*/
30
-
31
-	'path' => storage_path().'/cache',
32
-
33
-	/*
34
-	|--------------------------------------------------------------------------
35
-	| Database Cache Connection
36
-	|--------------------------------------------------------------------------
37
-	|
38
-	| When using the "database" cache driver you may specify the connection
39
-	| that should be used to store the cached items. When this option is
40
-	| null the default database connection will be utilized for cache.
41
-	|
42
-	*/
43
-
44
-	'connection' => null,
45
-
46
-	/*
47
-	|--------------------------------------------------------------------------
48
-	| Database Cache Table
49
-	|--------------------------------------------------------------------------
50
-	|
51
-	| When using the "database" cache driver we need to know the table that
52
-	| should be used to store the cached items. A default table name has
53
-	| been provided but you're free to change it however you deem fit.
54
-	|
55
-	*/
56
-
57
-	'table' => 'cache',
58
-
59
-	/*
60
-	|--------------------------------------------------------------------------
61
-	| Memcached Servers
62
-	|--------------------------------------------------------------------------
63
-	|
64
-	| Now you may specify an array of your Memcached servers that should be
65
-	| used when utilizing the Memcached cache driver. All of the servers
66
-	| should contain a value for "host", "port", and "weight" options.
67
-	|
68
-	*/
69
-
70
-	'memcached' => array(
71
-
72
-		array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100),
73
-
74
-	),
75
-
76
-	/*
77
-	|--------------------------------------------------------------------------
78
-	| Cache Key Prefix
79
-	|--------------------------------------------------------------------------
80
-	|
81
-	| When utilizing a RAM based store such as APC or Memcached, there might
82
-	| be other applications utilizing the same cache. So, we'll specify a
83
-	| value to get prefixed to all our keys so we can avoid collisions.
84
-	|
85
-	*/
86
-
87
-	'prefix' => 'laravel',
88
-
89
-);

+ 0
- 18
app/config/compile.php 查看文件

@@ -1,18 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Additional Compiled Classes
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| Here you may specify additional classes to include in the compiled file
11
-	| generated by the `artisan optimize` command. These should be classes
12
-	| that are included on basically every request into the application.
13
-	|
14
-	*/
15
-
16
-
17
-
18
-);

+ 0
- 99
app/config/database.php 查看文件

@@ -1,99 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| PDO Fetch Style
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| By default, database results will be returned as instances of the PHP
11
-	| stdClass object; however, you may desire to retrieve records in an
12
-	| array format for simplicity. Here you can tweak the fetch style.
13
-	|
14
-	*/
15
-
16
-	'fetch' => PDO::FETCH_CLASS,
17
-
18
-	/*
19
-	|--------------------------------------------------------------------------
20
-	| Default Database Connection Name
21
-	|--------------------------------------------------------------------------
22
-	|
23
-	| Here you may specify which of the database connections below you wish
24
-	| to use as your default connection for all database work. Of course
25
-	| you may use many connections at once using the Database library.
26
-	|
27
-	*/
28
-
29
-	'default' => 'mysql',
30
-
31
-	/*
32
-	|--------------------------------------------------------------------------
33
-	| Database Connections
34
-	|--------------------------------------------------------------------------
35
-	|
36
-	| Here are each of the database connections setup for your application.
37
-	| Of course, examples of configuring each database platform that is
38
-	| supported by Laravel is shown below to make development simple.
39
-	|
40
-	|
41
-	| All database work in Laravel is done through the PHP PDO facilities
42
-	| so make sure you have the driver for your particular database of
43
-	| choice installed on your machine before you begin development.
44
-	|
45
-	*/
46
-
47
-	'connections' => array(
48
-
49
-		'mysql' => array(
50
-
51
-			'driver'    => 'mysql',
52
-			'host'      =>  '127.0.0.1',
53
-			'database'  =>  'trabajoolas6',
54
-			'username'  =>  'root',
55
-			'password'  =>  '',
56
-			'charset'   => 'utf8',
57
-			'collation' => 'utf8_unicode_ci',
58
-			'prefix'    => '',
59
-			'engine'    => 'InnoDB',
60
-		),
61
-	),
62
-
63
-	/*
64
-	|--------------------------------------------------------------------------
65
-	| Migration Repository Table
66
-	|--------------------------------------------------------------------------
67
-	|
68
-	| This table keeps track of all the migrations that have already run for
69
-	| your application. Using this information, we can determine which of
70
-	| the migrations on disk haven't actually been run in the database.
71
-	|
72
-	*/
73
-
74
-	'migrations' => 'migrations',
75
-
76
-	/*
77
-	|--------------------------------------------------------------------------
78
-	| Redis Databases
79
-	|--------------------------------------------------------------------------
80
-	|
81
-	| Redis is an open source, fast, and advanced key-value store that also
82
-	| provides a richer set of commands than a typical key-value systems
83
-	| such as APC or Memcached. Laravel makes it easy to dig right in.
84
-	|
85
-	*/
86
-
87
-	'redis' => array(
88
-
89
-		'cluster' => false,
90
-
91
-		'default' => array(
92
-			'host'     => '127.0.0.1',
93
-			'port'     => 6379,
94
-			'database' => 0,
95
-		),
96
-
97
-	),
98
-
99
-);

+ 0
- 124
app/config/mail.php 查看文件

@@ -1,124 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Mail Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| Laravel supports both SMTP and PHP's "mail" function as drivers for the
11
-	| sending of e-mail. You may specify which one you're using throughout
12
-	| your application here. By default, Laravel is setup for SMTP mail.
13
-	|
14
-	| Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", "log"
15
-	|
16
-	*/
17
-
18
-	'driver' => 'smtp',
19
-
20
-	/*
21
-	|--------------------------------------------------------------------------
22
-	| SMTP Host Address
23
-	|--------------------------------------------------------------------------
24
-	|
25
-	| Here you may provide the host address of the SMTP server used by your
26
-	| applications. A default option is provided that is compatible with
27
-	| the Mailgun mail service which will provide reliable deliveries.
28
-	|
29
-	*/
30
-
31
-	'host' => 'smtp.gmail.com',
32
-
33
-	/*
34
-	|--------------------------------------------------------------------------
35
-	| SMTP Host Port
36
-	|--------------------------------------------------------------------------
37
-	|
38
-	| This is the SMTP port used by your application to deliver e-mails to
39
-	| users of the application. Like the host we have set this value to
40
-	| stay compatible with the Mailgun e-mail application by default.
41
-	|
42
-	*/
43
-
44
-	'port' => 465,
45
-
46
-	/*
47
-	|--------------------------------------------------------------------------
48
-	| Global "From" Address
49
-	|--------------------------------------------------------------------------
50
-	|
51
-	| You may wish for all e-mails sent by your application to be sent from
52
-	| the same address. Here, you may specify a name and address that is
53
-	| used globally for all e-mails that are sent by your application.
54
-	|
55
-	*/
56
-
57
-	'from' => array('address' => 'olas.rrp@upr.edu', 'name' => 'OLAS Mail'),
58
-
59
-	/*
60
-	|--------------------------------------------------------------------------
61
-	| E-Mail Encryption Protocol
62
-	|--------------------------------------------------------------------------
63
-	|
64
-	| Here you may specify the encryption protocol that should be used when
65
-	| the application send e-mail messages. A sensible default using the
66
-	| transport layer security protocol should provide great security.
67
-	|
68
-	*/
69
-
70
-	'encryption' => 'ssl',
71
-
72
-	/*
73
-	|--------------------------------------------------------------------------
74
-	| SMTP Server Username
75
-	|--------------------------------------------------------------------------
76
-	|
77
-	| If your SMTP server requires a username for authentication, you should
78
-	| set it here. This will get used to authenticate with your server on
79
-	| connection. You may also set the "password" value below this one.
80
-	|
81
-	*/
82
-
83
-	'username' => 'olas.rrp@upr.edu',
84
-
85
-	/*
86
-	|--------------------------------------------------------------------------
87
-	| SMTP Server Password
88
-	|--------------------------------------------------------------------------
89
-	|
90
-	| Here you may set the password required by your SMTP server to send out
91
-	| messages from your application. This will be given to the server on
92
-	| connection so that the application will be able to send messages.
93
-	|
94
-	*/
95
-
96
-	'password' => 'rectoria2015',
97
-
98
-	/*
99
-	|--------------------------------------------------------------------------
100
-	| Sendmail System Path
101
-	|--------------------------------------------------------------------------
102
-	|
103
-	| When using the "sendmail" driver to send e-mails, we will need to know
104
-	| the path to where Sendmail lives on this server. A default path has
105
-	| been provided here, which will work well on most of your systems.
106
-	|
107
-	*/
108
-
109
-	'sendmail' => '/usr/sbin/sendmail -bs',
110
-
111
-	/*
112
-	|--------------------------------------------------------------------------
113
-	| Mail "Pretend"
114
-	|--------------------------------------------------------------------------
115
-	|
116
-	| When this option is enabled, e-mail will not actually be sent over the
117
-	| web and will instead be written to your application's logs files so
118
-	| you may inspect the message. This is great for local development.
119
-	|
120
-	*/
121
-
122
-	'pretend' => false,
123
-
124
-);

+ 0
- 0
app/config/packages/.gitkeep 查看文件


+ 0
- 73
app/config/packages/cornford/backup/config.php 查看文件

@@ -1,73 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Enable Backup
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| Enable database backup.
11
-	|
12
-	*/
13
-	'enabled' => true,
14
-
15
-	/*
16
-	|--------------------------------------------------------------------------
17
-	| Path
18
-	|--------------------------------------------------------------------------
19
-	|
20
-	| A database backup path, absolute path, or path relative from public
21
-	| directory, a trailing slash is required.
22
-	|
23
-	*/
24
-	'path' => '../app/storage/backup/',
25
-
26
-	/*
27
-	|--------------------------------------------------------------------------
28
-	| Filename
29
-	|--------------------------------------------------------------------------
30
-	|
31
-	| A database export filename to use when exporting databases.
32
-	|
33
-	*/
34
-	'filename' => 'backup-' . date('Ymd-His'),
35
-
36
-	/*
37
-	|--------------------------------------------------------------------------
38
-	| Enable Compression
39
-	|--------------------------------------------------------------------------
40
-	|
41
-	| Enable backup compression using gzip. Requires gzencode/gzdecode.
42
-	|
43
-	*/
44
-	'compress' => true,
45
-
46
-	/*
47
-	|--------------------------------------------------------------------------
48
-	| Database Engine Processors
49
-	|--------------------------------------------------------------------------
50
-	|
51
-	| Set the database engines processor location, trailing slash is required.
52
-	|
53
-	*/
54
-	'processors' => array(
55
-		'mysql' => array(
56
-			'export' => '/usr/bin/',
57
-			'restore' => '/usr/bin/'
58
-		),
59
-		'pqsql' => array(
60
-			'export' => '/usr/bin/',
61
-			'restore' => '/usr/bin/'
62
-		),
63
-		'sqlite' => array(
64
-			'export' => null,
65
-			'restore' => null
66
-		),
67
-		'sqlsrv' => array(
68
-			'export' => '/usr/bin/',
69
-			'restore' => '/usr/bin/'
70
-		),
71
-	),
72
-
73
-);

+ 0
- 85
app/config/queue.php 查看文件

@@ -1,85 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Queue Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| The Laravel queue API supports a variety of back-ends via an unified
11
-	| API, giving you convenient access to each back-end using the same
12
-	| syntax for each one. Here you may set the default queue driver.
13
-	|
14
-	| Supported: "sync", "beanstalkd", "sqs", "iron", "redis"
15
-	|
16
-	*/
17
-
18
-	'default' => 'sync',
19
-
20
-	/*
21
-	|--------------------------------------------------------------------------
22
-	| Queue Connections
23
-	|--------------------------------------------------------------------------
24
-	|
25
-	| Here you may configure the connection information for each server that
26
-	| is used by your application. A default configuration has been added
27
-	| for each back-end shipped with Laravel. You are free to add more.
28
-	|
29
-	*/
30
-
31
-	'connections' => array(
32
-
33
-		'sync' => array(
34
-			'driver' => 'sync',
35
-		),
36
-
37
-		'beanstalkd' => array(
38
-			'driver' => 'beanstalkd',
39
-			'host'   => 'localhost',
40
-			'queue'  => 'default',
41
-			'ttr'    => 60,
42
-		),
43
-
44
-		'sqs' => array(
45
-			'driver' => 'sqs',
46
-			'key'    => 'your-public-key',
47
-			'secret' => 'your-secret-key',
48
-			'queue'  => 'your-queue-url',
49
-			'region' => 'us-east-1',
50
-		),
51
-
52
-		'iron' => array(
53
-			'driver'  => 'iron',
54
-			'host'    => 'mq-aws-us-east-1.iron.io',
55
-			'token'   => 'your-token',
56
-			'project' => 'your-project-id',
57
-			'queue'   => 'your-queue-name',
58
-			'encrypt' => true,
59
-		),
60
-
61
-		'redis' => array(
62
-			'driver' => 'redis',
63
-			'queue'  => 'default',
64
-		),
65
-
66
-	),
67
-
68
-	/*
69
-	|--------------------------------------------------------------------------
70
-	| Failed Queue Jobs
71
-	|--------------------------------------------------------------------------
72
-	|
73
-	| These options configure the behavior of failed queue job logging so you
74
-	| can control which database and table are used to store the jobs that
75
-	| have failed. You may change them to any database / table you wish.
76
-	|
77
-	*/
78
-
79
-	'failed' => array(
80
-
81
-		'database' => 'mysql', 'table' => 'failed_jobs',
82
-
83
-	),
84
-
85
-);

+ 0
- 59
app/config/remote.php 查看文件

@@ -1,59 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Remote Connection Name
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| Here you may specify the default connection that will be used for SSH
11
-	| operations. This name should correspond to a connection name below
12
-	| in the server list. Each connection will be manually accessible.
13
-	|
14
-	*/
15
-
16
-	'default' => 'production',
17
-
18
-	/*
19
-	|--------------------------------------------------------------------------
20
-	| Remote Server Connections
21
-	|--------------------------------------------------------------------------
22
-	|
23
-	| These are the servers that will be accessible via the SSH task runner
24
-	| facilities of Laravel. This feature radically simplifies executing
25
-	| tasks on your servers, such as deploying out these applications.
26
-	|
27
-	*/
28
-
29
-	'connections' => array(
30
-
31
-		'production' => array(
32
-			'host'      => '',
33
-			'username'  => '',
34
-			'password'  => '',
35
-			'key'       => '',
36
-			'keyphrase' => '',
37
-			'root'      => '/var/www',
38
-		),
39
-
40
-	),
41
-
42
-	/*
43
-	|--------------------------------------------------------------------------
44
-	| Remote Server Groups
45
-	|--------------------------------------------------------------------------
46
-	|
47
-	| Here you may list connections under a single group name, which allows
48
-	| you to easily access all of the servers at once using a short name
49
-	| that is extremely easy to remember, such as "web" or "database".
50
-	|
51
-	*/
52
-
53
-	'groups' => array(
54
-
55
-		'web' => array('production')
56
-
57
-	),
58
-
59
-);

+ 0
- 31
app/config/services.php 查看文件

@@ -1,31 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Third Party Services
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| This file is for storing the credentials for third party services such
11
-	| as Stripe, Mailgun, Mandrill, and others. This file provides a sane
12
-	| default location for this type of information, allowing packages
13
-	| to have a conventional place to find your various credentials.
14
-	|
15
-	*/
16
-
17
-	'mailgun' => array(
18
-		'domain' => '',
19
-		'secret' => '',
20
-	),
21
-
22
-	'mandrill' => array(
23
-		'secret' => '',
24
-	),
25
-
26
-	'stripe' => array(
27
-		'model'  => 'User',
28
-		'secret' => '',
29
-	),
30
-
31
-);

+ 0
- 140
app/config/session.php 查看文件

@@ -1,140 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Session Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| This option controls the default session "driver" that will be used on
11
-	| requests. By default, we will use the lightweight native driver but
12
-	| you may specify any of the other wonderful drivers provided here.
13
-	|
14
-	| Supported: "file", "cookie", "database", "apc",
15
-	|            "memcached", "redis", "array"
16
-	|
17
-	*/
18
-
19
-	'driver' => 'file',
20
-
21
-	/*
22
-	|--------------------------------------------------------------------------
23
-	| Session Lifetime
24
-	|--------------------------------------------------------------------------
25
-	|
26
-	| Here you may specify the number of minutes that you wish the session
27
-	| to be allowed to remain idle before it expires. If you want them
28
-	| to immediately expire on the browser closing, set that option.
29
-	|
30
-	*/
31
-
32
-	'lifetime' => 120,
33
-
34
-	'expire_on_close' => false,
35
-
36
-	/*
37
-	|--------------------------------------------------------------------------
38
-	| Session File Location
39
-	|--------------------------------------------------------------------------
40
-	|
41
-	| When using the native session driver, we need a location where session
42
-	| files may be stored. A default has been set for you but a different
43
-	| location may be specified. This is only needed for file sessions.
44
-	|
45
-	*/
46
-
47
-	'files' => storage_path().'/sessions',
48
-
49
-	/*
50
-	|--------------------------------------------------------------------------
51
-	| Session Database Connection
52
-	|--------------------------------------------------------------------------
53
-	|
54
-	| When using the "database" or "redis" session drivers, you may specify a
55
-	| connection that should be used to manage these sessions. This should
56
-	| correspond to a connection in your database configuration options.
57
-	|
58
-	*/
59
-
60
-	'connection' => null,
61
-
62
-	/*
63
-	|--------------------------------------------------------------------------
64
-	| Session Database Table
65
-	|--------------------------------------------------------------------------
66
-	|
67
-	| When using the "database" session driver, you may specify the table we
68
-	| should use to manage the sessions. Of course, a sensible default is
69
-	| provided for you; however, you are free to change this as needed.
70
-	|
71
-	*/
72
-
73
-	'table' => 'sessions',
74
-
75
-	/*
76
-	|--------------------------------------------------------------------------
77
-	| Session Sweeping Lottery
78
-	|--------------------------------------------------------------------------
79
-	|
80
-	| Some session drivers must manually sweep their storage location to get
81
-	| rid of old sessions from storage. Here are the chances that it will
82
-	| happen on a given request. By default, the odds are 2 out of 100.
83
-	|
84
-	*/
85
-
86
-	'lottery' => array(2, 100),
87
-
88
-	/*
89
-	|--------------------------------------------------------------------------
90
-	| Session Cookie Name
91
-	|--------------------------------------------------------------------------
92
-	|
93
-	| Here you may change the name of the cookie used to identify a session
94
-	| instance by ID. The name specified here will get used every time a
95
-	| new session cookie is created by the framework for every driver.
96
-	|
97
-	*/
98
-
99
-	'cookie' => 'olas_session',
100
-
101
-	/*
102
-	|--------------------------------------------------------------------------
103
-	| Session Cookie Path
104
-	|--------------------------------------------------------------------------
105
-	|
106
-	| The session cookie path determines the path for which the cookie will
107
-	| be regarded as available. Typically, this will be the root path of
108
-	| your application but you are free to change this when necessary.
109
-	|
110
-	*/
111
-
112
-	'path' => '/',
113
-
114
-	/*
115
-	|--------------------------------------------------------------------------
116
-	| Session Cookie Domain
117
-	|--------------------------------------------------------------------------
118
-	|
119
-	| Here you may change the domain of the cookie used to identify a session
120
-	| in your application. This will determine which domains the cookie is
121
-	| available to in your application. A sensible default has been set.
122
-	|
123
-	*/
124
-
125
-	'domain' => null,
126
-
127
-	/*
128
-	|--------------------------------------------------------------------------
129
-	| HTTPS Only Cookies
130
-	|--------------------------------------------------------------------------
131
-	|
132
-	| By setting this option to true, session cookies will only be sent back
133
-	| to the server if the browser has a HTTPS connection. This will keep
134
-	| the cookie from being sent to you if it can not be done securely.
135
-	|
136
-	*/
137
-
138
-	'secure' => false,
139
-
140
-);

+ 0
- 20
app/config/testing/cache.php 查看文件

@@ -1,20 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Cache Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| This option controls the default cache "driver" that will be used when
11
-	| using the Caching library. Of course, you may use other drivers any
12
-	| time you wish. This is the default when another is not specified.
13
-	|
14
-	| Supported: "file", "database", "apc", "memcached", "redis", "array"
15
-	|
16
-	*/
17
-
18
-	'driver' => 'array',
19
-
20
-);

+ 0
- 21
app/config/testing/session.php 查看文件

@@ -1,21 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Default Session Driver
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| This option controls the default session "driver" that will be used on
11
-	| requests. By default, we will use the lightweight native driver but
12
-	| you may specify any of the other wonderful drivers provided here.
13
-	|
14
-	| Supported: "native", "cookie", "database", "apc",
15
-	|            "memcached", "redis", "array"
16
-	|
17
-	*/
18
-
19
-	'driver' => 'array',
20
-
21
-);

+ 0
- 31
app/config/view.php 查看文件

@@ -1,31 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| View Storage Paths
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| Most templating systems load templates from disk. Here you may specify
11
-	| an array of paths that should be checked for your views. Of course
12
-	| the usual Laravel view path has already been registered for you.
13
-	|
14
-	*/
15
-
16
-	'paths' => array(__DIR__.'/../views'),
17
-
18
-	/*
19
-	|--------------------------------------------------------------------------
20
-	| Pagination View
21
-	|--------------------------------------------------------------------------
22
-	|
23
-	| This view will be used to render the pagination link output, and can
24
-	| be easily customized here to show any view you like. A clean view
25
-	| compatible with Twitter's Bootstrap is given to you by default.
26
-	|
27
-	*/
28
-
29
-	'pagination' => 'pagination::slider-3',
30
-
31
-);

+ 0
- 31
app/config/workbench.php 查看文件

@@ -1,31 +0,0 @@
1
-<?php
2
-
3
-return array(
4
-
5
-	/*
6
-	|--------------------------------------------------------------------------
7
-	| Workbench Author Name
8
-	|--------------------------------------------------------------------------
9
-	|
10
-	| When you create new packages via the Artisan "workbench" command your
11
-	| name is needed to generate the composer.json file for your package.
12
-	| You may specify it now so it is used for all of your workbenches.
13
-	|
14
-	*/
15
-
16
-	'name' => '',
17
-
18
-	/*
19
-	|--------------------------------------------------------------------------
20
-	| Workbench Author E-Mail Address
21
-	|--------------------------------------------------------------------------
22
-	|
23
-	| Like the option above, your e-mail address is used when generating new
24
-	| workbench packages. The e-mail is placed in your composer.json file
25
-	| automatically after the package is created by the workbench tool.
26
-	|
27
-	*/
28
-
29
-	'email' => '',
30
-
31
-);

+ 3
- 3
app/controllers/AuthController.php 查看文件

@@ -28,9 +28,9 @@ class AuthController extends \BaseController {
28 28
 		if(!$validator->fails())
29 29
 		{
30 30
 //			TODO: Remove this for production environment
31
-            if (App::environment('local', 'staging')) {
32
-			    return $this->processLogin();
33
-            }
31
+//             if (App::environment('local', 'staging')) {
32
+// 			    return $this->processLogin();
33
+//             }
34 34
 			try {
35 35
 				// User input
36 36
 				$username = str_replace('@upr.edu', '', Input::get('email'));

+ 9
- 0
app/controllers/OutcomesController.php 查看文件

@@ -567,6 +567,15 @@ class OutcomesController extends \BaseController
567 567
             $level = $level->levels;
568 568
 
569 569
             // buscar todos los criterios con el level y ponerlos en un array
570
+//             $outcome_criterias = DB::table('criterion_objective_outcome')
571
+//                 ->join('new_criteria', 'new_criteria.id', '=', 'criterion_objective_outcome.criterion_id')
572
+//                 ->join('objectives', 'objectives.id', '=', 'criterion_objective_outcome.objective_id')
573
+//                 ->where('criterion_objective_outcome.outcome_id', $id)
574
+//                 ->where('new_criteria.number_of_scales', $level)
575
+//                 ->whereNull('new_criteria.deleted_at')
576
+//                 ->select('new_criteria.id', 'new_criteria.name')
577
+//                 ->orderBy('new_criteria.name', 'asc')
578
+//                 ->get();
570 579
             $outcome_criterias = DB::table('criterion_objective_outcome')
571 580
                 ->join('criteria', 'criteria.id', '=', 'criterion_objective_outcome.criterion_id')
572 581
                 ->join('objectives', 'objectives.id', '=', 'criterion_objective_outcome.objective_id')

+ 47
- 21
app/models/Criterion.php 查看文件

@@ -7,7 +7,8 @@ class Criterion extends Eloquent
7 7
 	use SoftDeletingTrait;
8 8
 	protected $dates = ['deleted_at'];
9 9
 
10
-	protected $table = 'criteria';
10
+//     protected $table = 'new_criteria';
11
+    protected $table = 'criteria';
11 12
 
12 13
 	public function outcomes()
13 14
 	{
@@ -22,10 +23,11 @@ class Criterion extends Eloquent
22 23
 		return $this->belongsToMany('Objective');
23 24
 	}
24 25
 
25
-	public function rubrics()
26
-	{
27
-		return $this->belongsToMany('Rubric', 'criterion_rubric');
28
-	}
26
+    public function rubrics()
27
+    {
28
+//         return $this->belongsToMany('Rubric', 'new_criterion_rubric');
29
+        return $this->belongsToMany('Rubric', 'criterion_rubric');
30
+    }
29 31
 
30 32
 	/**
31 33
 	 * Return the program that the criterion belongs to
@@ -61,12 +63,18 @@ class Criterion extends Eloquent
61 63
 			->select('activity_criterion.id')
62 64
 			->distinct()
63 65
 			->get();
64
-
65
-		foreach ($activities_criterions as $activity_criterion) {
66
-
67
-			$students_attempted += DB::table('assessments')
66
+			
67
+		foreach($activities_criterions as $activity_criterion)
68
+		{
69
+		
70
+// 			 $students_attempted+=DB::table('new_assessments')
71
+// 				->join('activity_criterion', 'new_assessments.activity_criterion_id', '=', 'activity_criterion.id')
72
+// 				->where('activity_criterion.id',$activity_criterion->id)
73
+// 				->count();
74
+		
75
+			 $students_attempted+=DB::table('assessments')
68 76
 				->join('activity_criterion', 'assessments.activity_criterion_id', '=', 'activity_criterion.id')
69
-				->where('activity_criterion.id', $activity_criterion->id)
77
+				->where('activity_criterion.id',$activity_criterion->id)
70 78
 				->count();
71 79
 		}
72 80
 		return $students_attempted;
@@ -74,23 +82,41 @@ class Criterion extends Eloquent
74 82
 
75 83
 	public static function students_achieved($criterion_id, $activity_id)
76 84
 	{
77
-		$students_achieved = 0;
78
-		$activities_criterions = DB::table('activity_criterion')
85
+		$students_achieved=0;
86
+// 		$activities_criterions=DB::table('activity_criterion')
87
+// 			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
88
+// 			->join('courses', 'activities.course_id', '=', 'courses.id')
89
+// 			->where('activities.id','=',$activity_id)
90
+// 			->where('activity_criterion.criterion_id','=',$criterion_id)
91
+// 			->select('activity_criterion.id','expected_student_score')
92
+// 			->distinct()
93
+// 			->get();
94
+
95
+		$activities_criterions=DB::table('activity_criterion')
79 96
 			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
80 97
 			->join('courses', 'activities.course_id', '=', 'courses.id')
81
-			->where('activities.id', '=', $activity_id)
82
-			->where('activity_criterion.criterion_id', '=', $criterion_id)
83
-			->select('activity_criterion.id', 'expected_student_score')
98
+			->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
99
+			->join('rubrics', 'rubric_activity.rubric_id', '=', 'rubrics.id')
100
+			->where('activities.id','=',$activity_id)
101
+			->where('activity_criterion.criterion_id','=',$criterion_id)
102
+			->select('activity_criterion.id','expected_points')
84 103
 			->distinct()
85 104
 			->get();
105
+			
106
+		foreach($activities_criterions as $activity_criterion)
107
+		{
108
+		
109
+// 			$expected_student_score=DB::table('new_criteria')->where('id',$criterion_id)->select('expected_student_score')->get();
110
+// 			 $students_achieved+=DB::table('new_assessments')
111
+// 				->join('activity_criterion', 'new_assessments.activity_criterion_id', '=', 'activity_criterion.id')
112
+// 				->where('activity_criterion.id',$activity_criterion->id)
113
+// 				->where('new_assessments.score','>=',$activity_criterion->expected_student_score)
114
+// 				->count();
86 115
 
87
-		foreach ($activities_criterions as $activity_criterion) {
88
-
89
-			// 			$expected_student_score=DB::table('criteria')->where('id',$criterion_id)->select('expected_student_score')->get();
90
-			$students_achieved += DB::table('assessments')
116
+			 $students_achieved+=DB::table('assessments')
91 117
 				->join('activity_criterion', 'assessments.activity_criterion_id', '=', 'activity_criterion.id')
92
-				->where('activity_criterion.id', $activity_criterion->id)
93
-				->where('assessments.score', '>=', $activity_criterion->expected_student_score)
118
+				->where('activity_criterion.id',$activity_criterion->id)
119
+				->where('assessments.score','>=',$activity_criterion->expected_points)
94 120
 				->count();
95 121
 		}
96 122
 		return $students_achieved;

+ 194
- 115
app/models/Outcome.php 查看文件

@@ -24,48 +24,48 @@ class Outcome extends Eloquent
24 24
 		return $this->hasMany('Objective');
25 25
 		//		return $this->belongsToMany('Objective', 'objective_outcome');
26 26
 	}
27
-	// 	public function attempted($semester, $is_grad)
28
-	// 	{
29
-	// 		return DB::table('criteria')
30
-	// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
31
-	// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
32
-	// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
33
-	// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
34
-	// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
35
-	// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
36
-	// 	    	->where('programs.is_graduate','=',$is_grad)
37
-	// 	    	->where('courses.semester_id','=',$semester)
38
-	// 	    	->count(DB::raw('DISTINCT criteria.id,activity_criterion.activity_id'))
39
-	// 			;
40
-	//
41
-	// 	}
42
-	// 	public function attempted($semester, $is_grad)
43
-	// 	{
44
-	// 		 $criteria=DB::table('criteria')
45
-	// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
46
-	// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
47
-	// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
48
-	// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
49
-	// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
50
-	// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
51
-	// 	    	->where('programs.is_graduate','=',$is_grad)
52
-	// 	    	->where('courses.semester_id','=',$semester)
53
-	// 	    	->select('criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
54
-	// 	    	->distinct()
55
-	// 	    	->get()
56
-	// 			;
57
-	// 		$conteo=0;
58
-	// 		foreach($criteria as $criterion)
59
-	// 		{
60
-	// 			$students_attempted=Criterion::students_attempted($criterion->id, $criterion->activity_id);
61
-	// 			if($students_attempted)
62
-	// 			{
63
-	// 				$conteo++;
64
-	// 			}
65
-	// 		}
66
-	// 		return $conteo;
67
-	// 	}
68
-	public function active_by_semesters($selected_semesters, $level)
27
+// 	public function attempted($semester, $is_grad)
28
+// 	{
29
+// 		return DB::table('new_criteria')
30
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
31
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
32
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
33
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
34
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
35
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
36
+// 	    	->where('programs.is_graduate','=',$is_grad)
37
+// 	    	->where('courses.semester_id','=',$semester)
38
+// 	    	->count(DB::raw('DISTINCT new_criteria.id,activity_criterion.activity_id'))
39
+// 			;
40
+//
41
+// 	}
42
+// 	public function attempted($semester, $is_grad)
43
+// 	{
44
+// 		 $criteria=DB::table('new_criteria')
45
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
46
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
47
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
48
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
49
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
50
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
51
+// 	    	->where('programs.is_graduate','=',$is_grad)
52
+// 	    	->where('courses.semester_id','=',$semester)
53
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
54
+// 	    	->distinct()
55
+// 	    	->get()
56
+// 			;
57
+// 		$conteo=0;
58
+// 		foreach($criteria as $criterion)
59
+// 		{
60
+// 			$students_attempted=Criterion::students_attempted($criterion->id, $criterion->activity_id);
61
+// 			if($students_attempted)
62
+// 			{
63
+// 				$conteo++;
64
+// 			}
65
+// 		}
66
+// 		return $conteo;
67
+// 	}
68
+	public static function active_by_semesters($selected_semesters, $level)
69 69
 	{
70 70
 		$min_start = "9000-01-01 00:00:00";
71 71
 		$max_end = "1000-01-01 00:00:00";
@@ -99,17 +99,30 @@ class Outcome extends Eloquent
99 99
 		foreach ($semesters as $semester) {
100 100
 			$semesters_array[] = $semester->id;
101 101
 		}
102
-		$programs = DB::table('programs')
103
-			->join('courses', 'programs.id', '=', 'courses.program_id')
104
-			->join('activities', 'activities.course_id', '=', 'courses.id')
105
-			->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
106
-			->join('criteria', 'activity_criterion.criterion_id', '=', 'criteria.id')
107
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
108
-			->where('criterion_objective_outcome.outcome_id', '=', $this->id)
109
-			->whereIn('courses.semester_id', $semesters_array)
110
-			->distinct()
111
-			->select('programs.id')
112
-			->get();
102
+// 		 $programs=DB::table('programs')
103
+// 	    	->join('courses', 'programs.id', '=', 'courses.program_id')
104
+// 	    	->join('activities', 'activities.course_id', '=', 'courses.id')
105
+// 	    	->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
106
+// 	    	->join('new_criteria', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
107
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
108
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
109
+// 	    	->whereIn('courses.semester_id',$semesters_array)
110
+// 	    	->distinct()
111
+// 	    	->select('programs.id')
112
+// 	    	->get()
113
+// 			;
114
+		 $programs=DB::table('programs')
115
+	    	->join('courses', 'programs.id', '=', 'courses.program_id')
116
+	    	->join('activities', 'activities.course_id', '=', 'courses.id')
117
+	    	->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
118
+	    	->join('criteria', 'activity_criterion.criterion_id', '=', 'criteria.id')
119
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
120
+	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
121
+	    	->whereIn('courses.semester_id',$semesters_array)
122
+	    	->distinct()
123
+	    	->select('programs.id')
124
+	    	->get()
125
+			;
113 126
 
114 127
 		return $programs;
115 128
 	}
@@ -120,22 +133,40 @@ class Outcome extends Eloquent
120 133
 		foreach ($semesters as $semester) {
121 134
 			$semesters_array[] = $semester->id;
122 135
 		}
123
-		$criteria = DB::table('criteria')
124
-			->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
125
-			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
126
-			->join('courses', 'activities.course_id', '=', 'courses.id')
127
-			->join('programs', 'programs.id', '=', 'courses.program_id')
128
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
129
-			->where('criterion_objective_outcome.outcome_id', '=', $this->id)
130
-			->where('programs.is_graduate', '=', $is_grad)
131
-			->whereIn('courses.semester_id', $semesters_array)
132
-			->select('criteria.id', 'expected_percentage_students_achieving', 'activity_criterion.activity_id')
133
-			->distinct()
134
-			->get();
135
-		$conteo = 0;
136
-		foreach ($criteria as $criterion) {
137
-			$students_attempted = Criterion::students_attempted($criterion->id, $criterion->activity_id);
138
-			if ($students_attempted) {
136
+// 		 $criteria=DB::table('new_criteria')
137
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
138
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
139
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
140
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
141
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
142
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
143
+// 	    	->where('programs.is_graduate','=',$is_grad)
144
+// 	    	->whereIn('courses.semester_id',$semesters_array)
145
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
146
+// 	    	->distinct()
147
+// 	    	->get()
148
+// 			;
149
+		 $criteria=DB::table('criteria')
150
+	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
151
+	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
152
+	    	->join('courses', 'activities.course_id', '=', 'courses.id')
153
+	    	->join('programs', 'programs.id', '=', 'courses.program_id')
154
+	    	->join('rubric_activity', 'activities.id', '=', 'rubric_activity.activity_id')
155
+	    	->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
156
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
157
+	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
158
+	    	->where('programs.is_graduate','=',$is_grad)
159
+	    	->whereIn('courses.semester_id',$semesters_array)
160
+	    	->select('criteria.id','expected_percentage','activity_criterion.activity_id')
161
+	    	->distinct()
162
+	    	->get()
163
+			;
164
+		$conteo=0;
165
+		foreach($criteria as $criterion)
166
+		{
167
+			$students_attempted=Criterion::students_attempted($criterion->id, $criterion->activity_id);
168
+			if($students_attempted)
169
+			{
139 170
 				$conteo++;
140 171
 			}
141 172
 		}
@@ -152,22 +183,38 @@ class Outcome extends Eloquent
152 183
 			// 		exit();
153 184
 			$courses_array[] = $course->id;
154 185
 		}
155
-		//'expected_percentage_students_achieving'
156
-		$criteria = DB::table('criteria')
157
-			->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
158
-			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
159
-			->join('courses', 'activities.course_id', '=', 'courses.id')
160
-			->join('programs', 'programs.id', '=', 'courses.program_id')
161
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
162
-			->where('criterion_objective_outcome.outcome_id', '=', $this->id)
163
-			->whereIn('courses.id', $courses_array)
164
-			->select('criteria.id',  'activity_criterion.activity_id')
165
-			->distinct()
166
-			->get();
167
-		$conteo = 0;
168
-		foreach ($criteria as $criterion) {
169
-			$students_attempted = Criterion::students_attempted($criterion->id, $criterion->activity_id);
170
-			if ($students_attempted) {
186
+// 		 $criteria=DB::table('new_criteria')
187
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
188
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
189
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
190
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
191
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
192
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
193
+// 	    	->whereIn('courses.id',$courses_array)
194
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
195
+// 	    	->distinct()
196
+// 	    	->get()
197
+// 			;
198
+		 $criteria=DB::table('criteria')
199
+	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
200
+	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
201
+	    	->join('courses', 'activities.course_id', '=', 'courses.id')
202
+	    	->join('programs', 'programs.id', '=', 'courses.program_id')
203
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
204
+			->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
205
+			->join('rubrics', 'rubric_activity.rubric_id', '=', 'rubrics.id')
206
+	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
207
+	    	->whereIn('courses.id',$courses_array)
208
+	    	->select('criteria.id','expected_percentage','activity_criterion.activity_id')
209
+	    	->distinct()
210
+	    	->get()
211
+			;
212
+		$conteo=0;
213
+		foreach($criteria as $criterion)
214
+		{
215
+			$students_attempted=Criterion::students_attempted($criterion->id, $criterion->activity_id);
216
+			if($students_attempted)
217
+			{
171 218
 				$conteo++;
172 219
 			}
173 220
 		}
@@ -182,19 +229,33 @@ class Outcome extends Eloquent
182 229
 		foreach ($courses as $course) {
183 230
 			$courses_array[] = $course->id;
184 231
 		}
185
-		//'expected_percentage_students_achieving',
186
-		$criteria = DB::table('criteria')
187
-			->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
188
-			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
189
-			->join('courses', 'activities.course_id', '=', 'courses.id')
190
-			->join('programs', 'programs.id', '=', 'courses.program_id')
191
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
192
-			->where('criterion_objective_outcome.outcome_id', '=', $this->id)
193
-			->whereIn('courses.id', $courses_array)
194
-			->select('criteria.id',  'activity_criterion.activity_id')
195
-			->distinct()
196
-			->get();
197 232
 
233
+// 		 $criteria=DB::table('new_criteria')
234
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
235
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
236
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
237
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
238
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
239
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
240
+// 	    	->whereIn('courses.id',$courses_array)
241
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
242
+// 	    	->distinct()
243
+// 	    	->get()
244
+// 			;
245
+		 $criteria=DB::table('criteria')
246
+	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
247
+	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
248
+	    	->join('courses', 'activities.course_id', '=', 'courses.id')
249
+	    	->join('programs', 'programs.id', '=', 'courses.program_id')
250
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
251
+			->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
252
+			->join('rubrics', 'rubric_activity.rubric_id', '=', 'rubrics.id')
253
+	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
254
+	    	->whereIn('courses.id',$courses_array)
255
+	    	->select('criteria.id','expected_percentage','activity_criterion.activity_id')
256
+	    	->distinct()
257
+	    	->get()
258
+			;
198 259
 
199 260
 		$conteo = 0;
200 261
 		foreach ($criteria as $criterion) {
@@ -220,21 +281,36 @@ class Outcome extends Eloquent
220 281
 			$semesters_array[] = $semester->id;
221 282
 		}
222 283
 
223
-		//   DB::enableQueryLog();
224
-		//'expected_percentage_students_achieving'
225
-		$criteria = DB::table('criteria')
226
-			->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
227
-			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
228
-			->join('courses', 'activities.course_id', '=', 'courses.id')
229
-			->join('programs', 'programs.id', '=', 'courses.program_id')
230
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
231
-			->where('criterion_objective_outcome.outcome_id', '=', $this->id)
232
-			->where('programs.is_graduate', '=', $is_grad)
233
-			->whereIn('courses.semester_id', $semesters_array)
234
-			->select('criteria.id',  'activity_criterion.activity_id')
235
-			->distinct()
236
-			->get();
237
-		// 		dd(DB::getQueryLog());
284
+//   DB::enableQueryLog();
285
+// 		 $criteria=DB::table('new_criteria')
286
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
287
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
288
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
289
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
290
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
291
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
292
+// 	    	->where('programs.is_graduate','=',$is_grad)
293
+// 	    	->whereIn('courses.semester_id',$semesters_array)
294
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
295
+// 	    	->distinct()
296
+// 	    	->get()
297
+// 			;
298
+		 $criteria=DB::table('criteria')
299
+	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
300
+	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
301
+	    	->join('courses', 'activities.course_id', '=', 'courses.id')
302
+	    	->join('programs', 'programs.id', '=', 'courses.program_id')
303
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
304
+			->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
305
+			->join('rubrics', 'rubric_activity.rubric_id', '=', 'rubrics.id')
306
+	    	->where('criterion_objective_outcome.outcome_id','=',$this->id)
307
+	    	->where('programs.is_graduate','=',$is_grad)
308
+	    	->whereIn('courses.semester_id',$semesters_array)
309
+	    	->select('criteria.id','expected_percentage','activity_criterion.activity_id')
310
+	    	->distinct()
311
+	    	->get()
312
+			;
313
+// 		dd(DB::getQueryLog());
238 314
 
239 315
 		$conteo = 0;
240 316
 		foreach ($criteria as $criterion) {
@@ -243,10 +319,13 @@ class Outcome extends Eloquent
243 319
 
244 320
 			if ($students_attempted) {
245 321
 				$percentage_students_who_achieved = 100.0 * $students_achieved / $students_attempted;
246
-			} else {
247
-				$percentage_students_who_achieved = 0;
322
+			} 
323
+			else
324
+			{
325
+				$percentage_students_who_achieved=0;
248 326
 			}
249
-			if ($percentage_students_who_achieved >= $criterion->expected_percentage_students_achieving) {
327
+			if($percentage_students_who_achieved>=$criterion->expected_percentage)
328
+			{
250 329
 				$conteo++;
251 330
 			}
252 331
 		}

+ 104
- 61
app/models/Program.php 查看文件

@@ -158,33 +158,52 @@ class Program extends Eloquent
158 158
 		foreach ($semesters as $semester) {
159 159
 			$semesters_array[] = $semester->id;
160 160
 		}
161
-
162
-		//   DB::enableQueryLog();
163
-		// 		dd(DB::getQueryLog());
164
-		$criteria = DB::table('criteria')
165
-			->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
166
-			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
167
-			->join('courses', 'activities.course_id', '=', 'courses.id')
168
-			->join('programs', 'programs.id', '=', 'courses.program_id')
169
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
170
-			->where('criterion_objective_outcome.outcome_id', '=', $outcome_id)
171
-			->where('programs.id', '=', $this->id)
172
-			->whereIn('courses.semester_id', $semesters_array)
173
-			->select('criteria.id', 'expected_percentage_students_achieving', 'activity_criterion.activity_id')
174
-			->distinct()
175
-			->get();
176
-		// 		dd(DB::getQueryLog());
177
-
178
-		$conteo = 0;
179
-		$attempted_criteria_per_program_array = [];
180
-		// 		$students_attempted=0;
181
-		// 		$students_achieved=0;
182
-		foreach ($criteria as $criterion) {
183
-			if (!isset($students_attempted[$criterion->id])) $students_attempted[$criterion->id] = 0;
184
-			if (!isset($students_achieved[$criterion->id])) $students_achieved[$criterion->id] = 0;
185
-			$attempted_criteria_per_program_array[$criterion->id] = 1;
186
-			$students_attempted[$criterion->id] += Criterion::students_attempted($criterion->id, $criterion->activity_id);
187
-			$students_achieved[$criterion->id] += Criterion::students_achieved($criterion->id, $criterion->activity_id);
161
+		
162
+//   DB::enableQueryLog();
163
+// 		dd(DB::getQueryLog());
164
+// 		 $criteria=DB::table('new_criteria')
165
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
166
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
167
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
168
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
169
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
170
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$outcome_id)
171
+// 	    	->where('programs.id','=',$this->id)
172
+// 	    	->whereIn('courses.semester_id',$semesters_array)
173
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
174
+// 	    	->distinct()
175
+// 	    	->get()
176
+// 			;
177
+
178
+		 $criteria=DB::table('criteria')
179
+	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
180
+	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
181
+	    	->join('courses', 'activities.course_id', '=', 'courses.id')
182
+	    	->join('programs', 'programs.id', '=', 'courses.program_id')
183
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
184
+			->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
185
+			->join('rubrics', 'rubric_activity.rubric_id', '=', 'rubrics.id')
186
+	    	->where('criterion_objective_outcome.outcome_id','=',$outcome_id)
187
+	    	->where('programs.id','=',$this->id)
188
+	    	->whereIn('courses.semester_id',$semesters_array)
189
+	    	->select('criteria.id','expected_percentage','activity_criterion.activity_id')
190
+	    	->distinct()
191
+	    	->get()
192
+			;
193
+
194
+// 		dd(DB::getQueryLog());
195
+		 
196
+		$conteo=0;
197
+		$attempted_criteria_per_program_array=[];
198
+// 		$students_attempted=0;
199
+// 		$students_achieved=0;
200
+		foreach($criteria as $criterion)
201
+		{	
202
+			if(!isset($students_attempted[$criterion->id]))$students_attempted[$criterion->id]=0;
203
+			if(!isset($students_achieved[$criterion->id]))$students_achieved[$criterion->id]=0;
204
+			$attempted_criteria_per_program_array[$criterion->id]=1;
205
+			$students_attempted[$criterion->id]+=Criterion::students_attempted($criterion->id, $criterion->activity_id);
206
+			$students_achieved[$criterion->id]+=Criterion::students_achieved($criterion->id, $criterion->activity_id);
188 207
 		}
189 208
 		// 		var_dump($outcome_id);
190 209
 		// 		var_dump($this->id);
@@ -199,10 +218,13 @@ class Program extends Eloquent
199 218
 			foreach ($students_attempted as $criteria_id => $students_attempted_n) {
200 219
 				if ($students_attempted_n) {
201 220
 					$percentage_students_who_achieved = 100.0 * $students_achieved[$criteria_id] / $students_attempted[$criteria_id];
202
-				} else {
203
-					$percentage_students_who_achieved = 0;
221
+				} 
222
+				else
223
+				{
224
+					$percentage_students_who_achieved=0;
204 225
 				}
205
-				if ($percentage_students_who_achieved >= $criterion->expected_percentage_students_achieving) {
226
+				if($percentage_students_who_achieved>=$criterion->expected_percentage)
227
+				{
206 228
 					$conteo++;
207 229
 				}
208 230
 			}
@@ -225,35 +247,53 @@ class Program extends Eloquent
225 247
 		foreach ($semesters as $semester) {
226 248
 			$semesters_array[] = $semester->id;
227 249
 		}
228
-
229
-		//   DB::enableQueryLog();
230
-		// 		dd(DB::getQueryLog());
231
-		$criteria = DB::table('criteria')
232
-			->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
233
-			->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
234
-			->join('courses', 'activities.course_id', '=', 'courses.id')
235
-			->join('programs', 'programs.id', '=', 'courses.program_id')
236
-			->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
237
-			->where('criterion_objective_outcome.outcome_id', '=', $outcome_id)
238
-			->where('programs.id', '=', $this->id)
239
-			->whereIn('courses.semester_id', $semesters_array)
240
-			->select('criteria.id', 'expected_percentage_students_achieving', 'activity_criterion.activity_id')
241
-			->distinct()
242
-			->get();
243
-		// 		dd(DB::getQueryLog());
244
-
245
-		$conteo = 0;
246
-		$attempted_criteria_per_program_array = [];
247
-		// 		$students_attempted=0;
248
-		// 		$students_achieved=0;
249
-		foreach ($criteria as $criterion) {
250
-			if (!isset($students_attempted[$criterion->id])) $students_attempted[$criterion->id] = 0;
251
-			if (!isset($students_achieved[$criterion->id])) $students_achieved[$criterion->id] = 0;
252
-			$attempted_criteria_per_program_array[$criterion->id] = 1;
253
-			$students_attempted[$criterion->id] += Criterion::students_attempted($criterion->id, $criterion->activity_id);
254
-			$students_achieved[$criterion->id] += Criterion::students_achieved($criterion->id, $criterion->activity_id);
250
+		
251
+//   DB::enableQueryLog();
252
+// 		dd(DB::getQueryLog());
253
+// 		 $criteria=DB::table('new_criteria')
254
+// 	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'new_criteria.id')
255
+// 	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
256
+// 	    	->join('courses', 'activities.course_id', '=', 'courses.id')
257
+// 	    	->join('programs', 'programs.id', '=', 'courses.program_id')
258
+// 	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'new_criteria.id')
259
+// 	    	->where('criterion_objective_outcome.outcome_id','=',$outcome_id)
260
+// 	    	->where('programs.id','=',$this->id)
261
+// 	    	->whereIn('courses.semester_id',$semesters_array)
262
+// 	    	->select('new_criteria.id','expected_percentage_students_achieving','activity_criterion.activity_id')
263
+// 	    	->distinct()
264
+// 	    	->get()
265
+// 			;
266
+			
267
+		 $criteria=DB::table('criteria')
268
+	    	->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criteria.id')
269
+	    	->join('activities', 'activity_criterion.activity_id', '=', 'activities.id')
270
+	    	->join('courses', 'activities.course_id', '=', 'courses.id')
271
+	    	->join('programs', 'programs.id', '=', 'courses.program_id')
272
+	    	->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
273
+			->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
274
+			->join('rubrics', 'rubric_activity.rubric_id', '=', 'rubrics.id')
275
+	    	->where('criterion_objective_outcome.outcome_id','=',$outcome_id)
276
+	    	->where('programs.id','=',$this->id)
277
+	    	->whereIn('courses.semester_id',$semesters_array)
278
+	    	->select('criteria.id','expected_percentage','activity_criterion.activity_id')
279
+	    	->distinct()
280
+	    	->get()
281
+			;
282
+
283
+// 		dd(DB::getQueryLog());
284
+		 
285
+		$conteo=0;
286
+		$attempted_criteria_per_program_array=[];
287
+// 		$students_attempted=0;
288
+// 		$students_achieved=0;
289
+		foreach($criteria as $criterion)
290
+		{	
291
+			if(!isset($students_attempted[$criterion->id]))$students_attempted[$criterion->id]=0;
292
+			if(!isset($students_achieved[$criterion->id]))$students_achieved[$criterion->id]=0;
293
+			$attempted_criteria_per_program_array[$criterion->id]=1;
294
+			$students_attempted[$criterion->id]+=Criterion::students_attempted($criterion->id, $criterion->activity_id);
295
+			$students_achieved[$criterion->id]+=Criterion::students_achieved($criterion->id, $criterion->activity_id);
255 296
 		}
256
-		// 		var_dump($outcome_id);
257 297
 		// 		var_dump($this->id);
258 298
 		// 		if(isset($students_attempted))var_dump($students_attempted);
259 299
 		// 		else{print "aqui hay algo";}
@@ -266,10 +306,13 @@ class Program extends Eloquent
266 306
 			foreach ($students_attempted as $criteria_id => $students_attempted_n) {
267 307
 				if ($students_attempted_n) {
268 308
 					$percentage_students_who_achieved = 100.0 * $students_achieved[$criteria_id] / $students_attempted[$criteria_id];
269
-				} else {
270
-					$percentage_students_who_achieved = 0;
309
+				} 
310
+				else
311
+				{
312
+					$percentage_students_who_achieved=0;
271 313
 				}
272
-				if ($percentage_students_who_achieved >= $criterion->expected_percentage_students_achieving) {
314
+				if($percentage_students_who_achieved>=$criterion->expected_percentage)
315
+				{
273 316
 					$conteo++;
274 317
 				}
275 318
 			}

+ 0
- 6
node_modules/.bin/atob 查看文件

@@ -1,6 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var atob = require('../node-atob');
5
-var str = process.argv[2];
6
-console.log(atob(str));

+ 0
- 7
node_modules/.bin/cake 查看文件

@@ -1,7 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var path = require('path');
4
-var fs   = require('fs');
5
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
6
-
7
-require(lib + '/coffee-script/cake').run();

+ 0
- 157
node_modules/.bin/cleancss 查看文件

@@ -1,157 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var util = require('util');
4
-var fs = require('fs');
5
-var path = require('path');
6
-var CleanCSS = require('../index');
7
-
8
-var commands = require('commander');
9
-
10
-var packageConfig = fs.readFileSync(path.join(path.dirname(fs.realpathSync(process.argv[1])), '../package.json'));
11
-var buildVersion = JSON.parse(packageConfig).version;
12
-
13
-var isWindows = process.platform == 'win32';
14
-
15
-// Specify commander options to parse command line params correctly
16
-commands
17
-  .version(buildVersion, '-v, --version')
18
-  .usage('[options] source-file, [source-file, ...]')
19
-  .option('-b, --keep-line-breaks', 'Keep line breaks')
20
-  .option('--s0', 'Remove all special comments, i.e. /*! comment */')
21
-  .option('--s1', 'Remove all special comments but the first one')
22
-  .option('-r, --root [root-path]', 'Set a root path to which resolve absolute @import rules')
23
-  .option('-o, --output [output-file]', 'Use [output-file] as output instead of STDOUT')
24
-  .option('-s, --skip-import', 'Disable @import processing')
25
-  .option('--skip-rebase', 'Disable URLs rebasing')
26
-  .option('--skip-advanced', 'Disable advanced optimizations - selector & property merging, reduction, etc.')
27
-  .option('--skip-aggressive-merging', 'Disable properties merging based on their order')
28
-  .option('--rounding-precision [value]', 'Rounding precision, defaults to 2', parseInt)
29
-  .option('-c, --compatibility [ie7|ie8]', 'Force compatibility mode')
30
-  .option('-t, --timeout [seconds]', 'Per connection timeout when fetching remote @imports (defaults to 5 seconds)')
31
-  .option('-d, --debug', 'Shows debug information (minification time & compression efficiency)');
32
-
33
-commands.on('--help', function() {
34
-  util.puts('  Examples:\n');
35
-  util.puts('    %> cleancss one.css');
36
-  util.puts('    %> cleancss -o one-min.css one.css');
37
-  if (isWindows) {
38
-    util.puts('    %> type one.css two.css three.css | cleancss -o merged-and-minified.css');
39
-  } else {
40
-    util.puts('    %> cat one.css two.css three.css | cleancss -o merged-and-minified.css');
41
-    util.puts('    %> cat one.css two.css three.css | cleancss | gzip -9 -c > merged-minified-and-gzipped.css.gz');
42
-  }
43
-  util.puts('');
44
-  process.exit();
45
-});
46
-
47
-commands.parse(process.argv);
48
-
49
-var options = {
50
-  sources: null,
51
-  target: null
52
-};
53
-var cleanOptions = {};
54
-var fromStdin = !process.env.__DIRECT__ && !process.stdin.isTTY;
55
-
56
-// If no sensible data passed in just print help and exit
57
-if (!fromStdin && commands.args.length === 0) {
58
-  commands.outputHelp();
59
-  return 0;
60
-}
61
-
62
-// Now coerce commands into CleanCSS configuration...
63
-if (commands.output)
64
-  cleanOptions.target = options.target = commands.output;
65
-if (commands.keepLineBreaks)
66
-  cleanOptions.keepBreaks = true;
67
-if (commands.s1)
68
-  cleanOptions.keepSpecialComments = 1;
69
-if (commands.s0)
70
-  cleanOptions.keepSpecialComments = 0;
71
-if (commands.root)
72
-  cleanOptions.root = commands.root;
73
-if (commands.skipImport)
74
-  cleanOptions.processImport = false;
75
-if (commands.skipRebase)
76
-  cleanOptions.noRebase = true;
77
-if (commands.skipAdvanced)
78
-  cleanOptions.noAdvanced = true;
79
-if (commands.skipAggressiveMerging)
80
-  cleanOptions.noAggressiveMerging = true;
81
-if (commands.compatibility)
82
-  cleanOptions.compatibility = commands.compatibility;
83
-if (commands.roundingPrecision !== undefined)
84
-  cleanOptions.roundingPrecision = commands.roundingPrecision;
85
-if (commands.debug)
86
-  cleanOptions.debug = true;
87
-if (commands.timeout)
88
-  cleanOptions.inliner = { timeout: parseFloat(commands.timeout) * 1000 };
89
-if (commands.args.length > 0) {
90
-  var relativeTo = (cleanOptions.noRebase ? false : cleanOptions.root) || commands.args[0];
91
-  cleanOptions.relativeTo = path.dirname(path.resolve(relativeTo));
92
-
93
-  options.sources = commands.args.map(function(source) {
94
-    var isRemote = /^https?:\/\//.test(source);
95
-
96
-    if (cleanOptions.processImport === false)
97
-      source += '@shallow';
98
-
99
-    return isRemote ?
100
-      source :
101
-      path.relative(cleanOptions.relativeTo, path.resolve(source));
102
-  });
103
-}
104
-
105
-// ... and do the magic!
106
-if (options.sources) {
107
-  var data = options.sources
108
-    .map(function(source) {
109
-      return '@import url(' + source + ');';
110
-    })
111
-    .join('');
112
-  minify(data);
113
-} else {
114
-  var stdin = process.openStdin();
115
-  stdin.setEncoding('utf-8');
116
-  var data = '';
117
-  stdin.on('data', function(chunk) {
118
-    data += chunk;
119
-  });
120
-  stdin.on('end', function() {
121
-    minify(data);
122
-  });
123
-}
124
-
125
-function minify(data) {
126
-  new CleanCSS(cleanOptions).minify(data, function(errors, minified) {
127
-    if (cleanOptions.debug) {
128
-      console.error('Original: %d bytes', this.stats.originalSize);
129
-      console.error('Minified: %d bytes', this.stats.minifiedSize);
130
-      console.error('Efficiency: %d%', ~~(this.stats.efficiency * 10000) / 100.0);
131
-      console.error('Time spent: %dms', this.stats.timeSpent);
132
-    }
133
-
134
-    outputFeedback(this.errors, true);
135
-    outputFeedback(this.warnings);
136
-
137
-    if (this.errors.length > 0)
138
-      process.exit(1);
139
-
140
-    output(minified);
141
-  });
142
-}
143
-
144
-function output(minified) {
145
-  if (options.target)
146
-    fs.writeFileSync(options.target, minified, 'utf8');
147
-  else
148
-    process.stdout.write(minified);
149
-}
150
-
151
-function outputFeedback(messages, isError) {
152
-  var prefix = isError ? '\x1B[31mERROR\x1B[39m:' : 'WARNING:';
153
-
154
-  messages.forEach(function(message) {
155
-    console.error('%s %s', prefix, message);
156
-  });
157
-}

+ 0
- 7
node_modules/.bin/coffee 查看文件

@@ -1,7 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var path = require('path');
4
-var fs   = require('fs');
5
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
6
-
7
-require(lib + '/coffee-script/command').run();

+ 0
- 3
node_modules/.bin/color-support 查看文件

@@ -1,3 +0,0 @@
1
-#!/usr/bin/env node
2
-var colorSupport = require('./')({alwaysReturn: true })
3
-console.log(JSON.stringify(colorSupport, null, 2))

+ 0
- 117
node_modules/.bin/esparse 查看文件

@@ -1,117 +0,0 @@
1
-#!/usr/bin/env node
2
-/*
3
-  Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
4
-  Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
5
-
6
-  Redistribution and use in source and binary forms, with or without
7
-  modification, are permitted provided that the following conditions are met:
8
-
9
-    * Redistributions of source code must retain the above copyright
10
-      notice, this list of conditions and the following disclaimer.
11
-    * Redistributions in binary form must reproduce the above copyright
12
-      notice, this list of conditions and the following disclaimer in the
13
-      documentation and/or other materials provided with the distribution.
14
-
15
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
-  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
19
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
-*/
26
-
27
-/*jslint sloppy:true node:true rhino:true */
28
-
29
-var fs, esprima, fname, content, options, syntax;
30
-
31
-if (typeof require === 'function') {
32
-    fs = require('fs');
33
-    esprima = require('esprima');
34
-} else if (typeof load === 'function') {
35
-    try {
36
-        load('esprima.js');
37
-    } catch (e) {
38
-        load('../esprima.js');
39
-    }
40
-}
41
-
42
-// Shims to Node.js objects when running under Rhino.
43
-if (typeof console === 'undefined' && typeof process === 'undefined') {
44
-    console = { log: print };
45
-    fs = { readFileSync: readFile };
46
-    process = { argv: arguments, exit: quit };
47
-    process.argv.unshift('esparse.js');
48
-    process.argv.unshift('rhino');
49
-}
50
-
51
-function showUsage() {
52
-    console.log('Usage:');
53
-    console.log('   esparse [options] file.js');
54
-    console.log();
55
-    console.log('Available options:');
56
-    console.log();
57
-    console.log('  --comment      Gather all line and block comments in an array');
58
-    console.log('  --loc          Include line-column location info for each syntax node');
59
-    console.log('  --range        Include index-based range for each syntax node');
60
-    console.log('  --raw          Display the raw value of literals');
61
-    console.log('  --tokens       List all tokens in an array');
62
-    console.log('  --tolerant     Tolerate errors on a best-effort basis (experimental)');
63
-    console.log('  -v, --version  Shows program version');
64
-    console.log();
65
-    process.exit(1);
66
-}
67
-
68
-if (process.argv.length <= 2) {
69
-    showUsage();
70
-}
71
-
72
-options = {};
73
-
74
-process.argv.splice(2).forEach(function (entry) {
75
-
76
-    if (entry === '-h' || entry === '--help') {
77
-        showUsage();
78
-    } else if (entry === '-v' || entry === '--version') {
79
-        console.log('ECMAScript Parser (using Esprima version', esprima.version, ')');
80
-        console.log();
81
-        process.exit(0);
82
-    } else if (entry === '--comment') {
83
-        options.comment = true;
84
-    } else if (entry === '--loc') {
85
-        options.loc = true;
86
-    } else if (entry === '--range') {
87
-        options.range = true;
88
-    } else if (entry === '--raw') {
89
-        options.raw = true;
90
-    } else if (entry === '--tokens') {
91
-        options.tokens = true;
92
-    } else if (entry === '--tolerant') {
93
-        options.tolerant = true;
94
-    } else if (entry.slice(0, 2) === '--') {
95
-        console.log('Error: unknown option ' + entry + '.');
96
-        process.exit(1);
97
-    } else if (typeof fname === 'string') {
98
-        console.log('Error: more than one input file.');
99
-        process.exit(1);
100
-    } else {
101
-        fname = entry;
102
-    }
103
-});
104
-
105
-if (typeof fname !== 'string') {
106
-    console.log('Error: no input file.');
107
-    process.exit(1);
108
-}
109
-
110
-try {
111
-    content = fs.readFileSync(fname, 'utf-8');
112
-    syntax = esprima.parse(content, options);
113
-    console.log(JSON.stringify(syntax, null, 4));
114
-} catch (e) {
115
-    console.log('Error: ' + e.message);
116
-    process.exit(1);
117
-}

+ 0
- 177
node_modules/.bin/esvalidate 查看文件

@@ -1,177 +0,0 @@
1
-#!/usr/bin/env node
2
-/*
3
-  Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
4
-
5
-  Redistribution and use in source and binary forms, with or without
6
-  modification, are permitted provided that the following conditions are met:
7
-
8
-    * Redistributions of source code must retain the above copyright
9
-      notice, this list of conditions and the following disclaimer.
10
-    * Redistributions in binary form must reproduce the above copyright
11
-      notice, this list of conditions and the following disclaimer in the
12
-      documentation and/or other materials provided with the distribution.
13
-
14
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
-  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
18
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
-*/
25
-
26
-/*jslint sloppy:true plusplus:true node:true rhino:true */
27
-
28
-var fs, esprima, options, fnames, count;
29
-
30
-if (typeof require === 'function') {
31
-    fs = require('fs');
32
-    esprima = require('esprima');
33
-} else if (typeof load === 'function') {
34
-    try {
35
-        load('esprima.js');
36
-    } catch (e) {
37
-        load('../esprima.js');
38
-    }
39
-}
40
-
41
-// Shims to Node.js objects when running under Rhino.
42
-if (typeof console === 'undefined' && typeof process === 'undefined') {
43
-    console = { log: print };
44
-    fs = { readFileSync: readFile };
45
-    process = { argv: arguments, exit: quit };
46
-    process.argv.unshift('esvalidate.js');
47
-    process.argv.unshift('rhino');
48
-}
49
-
50
-function showUsage() {
51
-    console.log('Usage:');
52
-    console.log('   esvalidate [options] file.js');
53
-    console.log();
54
-    console.log('Available options:');
55
-    console.log();
56
-    console.log('  --format=type  Set the report format, plain (default) or junit');
57
-    console.log('  -v, --version  Print program version');
58
-    console.log();
59
-    process.exit(1);
60
-}
61
-
62
-if (process.argv.length <= 2) {
63
-    showUsage();
64
-}
65
-
66
-options = {
67
-    format: 'plain'
68
-};
69
-
70
-fnames = [];
71
-
72
-process.argv.splice(2).forEach(function (entry) {
73
-
74
-    if (entry === '-h' || entry === '--help') {
75
-        showUsage();
76
-    } else if (entry === '-v' || entry === '--version') {
77
-        console.log('ECMAScript Validator (using Esprima version', esprima.version, ')');
78
-        console.log();
79
-        process.exit(0);
80
-    } else if (entry.slice(0, 9) === '--format=') {
81
-        options.format = entry.slice(9);
82
-        if (options.format !== 'plain' && options.format !== 'junit') {
83
-            console.log('Error: unknown report format ' + options.format + '.');
84
-            process.exit(1);
85
-        }
86
-    } else if (entry.slice(0, 2) === '--') {
87
-        console.log('Error: unknown option ' + entry + '.');
88
-        process.exit(1);
89
-    } else {
90
-        fnames.push(entry);
91
-    }
92
-});
93
-
94
-if (fnames.length === 0) {
95
-    console.log('Error: no input file.');
96
-    process.exit(1);
97
-}
98
-
99
-if (options.format === 'junit') {
100
-    console.log('<?xml version="1.0" encoding="UTF-8"?>');
101
-    console.log('<testsuites>');
102
-}
103
-
104
-count = 0;
105
-fnames.forEach(function (fname) {
106
-    var content, timestamp, syntax, name;
107
-    try {
108
-        content = fs.readFileSync(fname, 'utf-8');
109
-
110
-        if (content[0] === '#' && content[1] === '!') {
111
-            content = '//' + content.substr(2, content.length);
112
-        }
113
-
114
-        timestamp = Date.now();
115
-        syntax = esprima.parse(content, { tolerant: true });
116
-
117
-        if (options.format === 'junit') {
118
-
119
-            name = fname;
120
-            if (name.lastIndexOf('/') >= 0) {
121
-                name = name.slice(name.lastIndexOf('/') + 1);
122
-            }
123
-
124
-            console.log('<testsuite name="' + fname + '" errors="0" ' +
125
-                ' failures="' + syntax.errors.length + '" ' +
126
-                ' tests="' + syntax.errors.length + '" ' +
127
-                ' time="' + Math.round((Date.now() - timestamp) / 1000) +
128
-                '">');
129
-
130
-            syntax.errors.forEach(function (error) {
131
-                var msg = error.message;
132
-                msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
133
-                console.log('  <testcase name="Line ' + error.lineNumber + ': ' + msg + '" ' +
134
-                    ' time="0">');
135
-                console.log('    <error type="SyntaxError" message="' + error.message + '">' +
136
-                    error.message + '(' + name + ':' + error.lineNumber + ')' +
137
-                    '</error>');
138
-                console.log('  </testcase>');
139
-            });
140
-
141
-            console.log('</testsuite>');
142
-
143
-        } else if (options.format === 'plain') {
144
-
145
-            syntax.errors.forEach(function (error) {
146
-                var msg = error.message;
147
-                msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
148
-                msg = fname + ':' + error.lineNumber + ': ' + msg;
149
-                console.log(msg);
150
-                ++count;
151
-            });
152
-
153
-        }
154
-    } catch (e) {
155
-        ++count;
156
-        if (options.format === 'junit') {
157
-            console.log('<testsuite name="' + fname + '" errors="1" failures="0" tests="1" ' +
158
-                ' time="' + Math.round((Date.now() - timestamp) / 1000) + '">');
159
-            console.log(' <testcase name="' + e.message + '" ' + ' time="0">');
160
-            console.log(' <error type="ParseError" message="' + e.message + '">' +
161
-                e.message + '(' + fname + ((e.lineNumber) ? ':' + e.lineNumber : '') +
162
-                ')</error>');
163
-            console.log(' </testcase>');
164
-            console.log('</testsuite>');
165
-        } else {
166
-            console.log('Error: ' + e.message);
167
-        }
168
-    }
169
-});
170
-
171
-if (options.format === 'junit') {
172
-    console.log('</testsuites>');
173
-}
174
-
175
-if (count > 0) {
176
-    process.exit(1);
177
-}

+ 0
- 212
node_modules/.bin/gulp 查看文件

@@ -1,212 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-'use strict';
4
-var gutil = require('gulp-util');
5
-var prettyTime = require('pretty-hrtime');
6
-var chalk = require('chalk');
7
-var semver = require('semver');
8
-var archy = require('archy');
9
-var Liftoff = require('liftoff');
10
-var tildify = require('tildify');
11
-var interpret = require('interpret');
12
-var v8flags = require('v8flags');
13
-var completion = require('../lib/completion');
14
-var argv = require('minimist')(process.argv.slice(2));
15
-var taskTree = require('../lib/taskTree');
16
-
17
-// Set env var for ORIGINAL cwd
18
-// before anything touches it
19
-process.env.INIT_CWD = process.cwd();
20
-
21
-var cli = new Liftoff({
22
-  name: 'gulp',
23
-  completions: completion,
24
-  extensions: interpret.jsVariants,
25
-  v8flags: v8flags,
26
-});
27
-
28
-// Exit with 0 or 1
29
-var failed = false;
30
-process.once('exit', function(code) {
31
-  if (code === 0 && failed) {
32
-    process.exit(1);
33
-  }
34
-});
35
-
36
-// Parse those args m8
37
-var cliPackage = require('../package');
38
-var versionFlag = argv.v || argv.version;
39
-var tasksFlag = argv.T || argv.tasks;
40
-var tasks = argv._;
41
-var toRun = tasks.length ? tasks : ['default'];
42
-
43
-// This is a hold-over until we have a better logging system
44
-// with log levels
45
-var simpleTasksFlag = argv['tasks-simple'];
46
-var shouldLog = !argv.silent && !simpleTasksFlag;
47
-
48
-if (!shouldLog) {
49
-  gutil.log = function() {};
50
-}
51
-
52
-cli.on('require', function(name) {
53
-  gutil.log('Requiring external module', chalk.magenta(name));
54
-});
55
-
56
-cli.on('requireFail', function(name) {
57
-  gutil.log(chalk.red('Failed to load external module'), chalk.magenta(name));
58
-});
59
-
60
-cli.on('respawn', function(flags, child) {
61
-  var nodeFlags = chalk.magenta(flags.join(', '));
62
-  var pid = chalk.magenta(child.pid);
63
-  gutil.log('Node flags detected:', nodeFlags);
64
-  gutil.log('Respawned to PID:', pid);
65
-});
66
-
67
-cli.launch({
68
-  cwd: argv.cwd,
69
-  configPath: argv.gulpfile,
70
-  require: argv.require,
71
-  completion: argv.completion,
72
-}, handleArguments);
73
-
74
-// The actual logic
75
-function handleArguments(env) {
76
-  if (versionFlag && tasks.length === 0) {
77
-    gutil.log('CLI version', cliPackage.version);
78
-    if (env.modulePackage && typeof env.modulePackage.version !== 'undefined') {
79
-      gutil.log('Local version', env.modulePackage.version);
80
-    }
81
-    process.exit(0);
82
-  }
83
-
84
-  if (!env.modulePath) {
85
-    gutil.log(
86
-      chalk.red('Local gulp not found in'),
87
-      chalk.magenta(tildify(env.cwd))
88
-    );
89
-    gutil.log(chalk.red('Try running: npm install gulp'));
90
-    process.exit(1);
91
-  }
92
-
93
-  if (!env.configPath) {
94
-    gutil.log(chalk.red('No gulpfile found'));
95
-    process.exit(1);
96
-  }
97
-
98
-  // Check for semver difference between cli and local installation
99
-  if (semver.gt(cliPackage.version, env.modulePackage.version)) {
100
-    gutil.log(chalk.red('Warning: gulp version mismatch:'));
101
-    gutil.log(chalk.red('Global gulp is', cliPackage.version));
102
-    gutil.log(chalk.red('Local gulp is', env.modulePackage.version));
103
-  }
104
-
105
-  // Chdir before requiring gulpfile to make sure
106
-  // we let them chdir as needed
107
-  if (process.cwd() !== env.cwd) {
108
-    process.chdir(env.cwd);
109
-    gutil.log(
110
-      'Working directory changed to',
111
-      chalk.magenta(tildify(env.cwd))
112
-    );
113
-  }
114
-
115
-  // This is what actually loads up the gulpfile
116
-  require(env.configPath);
117
-  gutil.log('Using gulpfile', chalk.magenta(tildify(env.configPath)));
118
-
119
-  var gulpInst = require(env.modulePath);
120
-  logEvents(gulpInst);
121
-
122
-  process.nextTick(function() {
123
-    if (simpleTasksFlag) {
124
-      return logTasksSimple(env, gulpInst);
125
-    }
126
-    if (tasksFlag) {
127
-      return logTasks(env, gulpInst);
128
-    }
129
-    gulpInst.start.apply(gulpInst, toRun);
130
-  });
131
-}
132
-
133
-function logTasks(env, localGulp) {
134
-  var tree = taskTree(localGulp.tasks);
135
-  tree.label = 'Tasks for ' + chalk.magenta(tildify(env.configPath));
136
-  archy(tree)
137
-    .split('\n')
138
-    .forEach(function(v) {
139
-      if (v.trim().length === 0) {
140
-        return;
141
-      }
142
-      gutil.log(v);
143
-    });
144
-}
145
-
146
-function logTasksSimple(env, localGulp) {
147
-  console.log(Object.keys(localGulp.tasks)
148
-    .join('\n')
149
-    .trim());
150
-}
151
-
152
-// Format orchestrator errors
153
-function formatError(e) {
154
-  if (!e.err) {
155
-    return e.message;
156
-  }
157
-
158
-  // PluginError
159
-  if (typeof e.err.showStack === 'boolean') {
160
-    return e.err.toString();
161
-  }
162
-
163
-  // Normal error
164
-  if (e.err.stack) {
165
-    return e.err.stack;
166
-  }
167
-
168
-  // Unknown (string, number, etc.)
169
-  return new Error(String(e.err)).stack;
170
-}
171
-
172
-// Wire up logging events
173
-function logEvents(gulpInst) {
174
-
175
-  // Total hack due to poor error management in orchestrator
176
-  gulpInst.on('err', function() {
177
-    failed = true;
178
-  });
179
-
180
-  gulpInst.on('task_start', function(e) {
181
-    // TODO: batch these
182
-    // so when 5 tasks start at once it only logs one time with all 5
183
-    gutil.log('Starting', '\'' + chalk.cyan(e.task) + '\'...');
184
-  });
185
-
186
-  gulpInst.on('task_stop', function(e) {
187
-    var time = prettyTime(e.hrDuration);
188
-    gutil.log(
189
-      'Finished', '\'' + chalk.cyan(e.task) + '\'',
190
-      'after', chalk.magenta(time)
191
-    );
192
-  });
193
-
194
-  gulpInst.on('task_err', function(e) {
195
-    var msg = formatError(e);
196
-    var time = prettyTime(e.hrDuration);
197
-    gutil.log(
198
-      '\'' + chalk.cyan(e.task) + '\'',
199
-      chalk.red('errored after'),
200
-      chalk.magenta(time)
201
-    );
202
-    gutil.log(msg);
203
-  });
204
-
205
-  gulpInst.on('task_not_found', function(err) {
206
-    gutil.log(
207
-      chalk.red('Task \'' + err.task + '\' is not in your gulpfile')
208
-    );
209
-    gutil.log('Please check the documentation for proper gulpfile formatting');
210
-    process.exit(1);
211
-  });
212
-}

+ 0
- 38
node_modules/.bin/gzip-size 查看文件

@@ -1,38 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-var fs = require('fs');
4
-var zlib = require('zlib');
5
-var concat = require('concat-stream');
6
-var input = process.argv[2];
7
-
8
-function help() {
9
-	console.log('gzip-size <input-file>');
10
-	console.log('or');
11
-	console.log('cat <input-file> | gzip-size');
12
-	console.log('');
13
-	console.log('Get the gzipped size of a file');
14
-}
15
-
16
-function report(data) {
17
-	console.log(data.length);
18
-}
19
-
20
-if (process.argv.indexOf('-h') !== -1 || process.argv.indexOf('--help') !== -1) {
21
-	help();
22
-	return;
23
-}
24
-
25
-if (process.argv.indexOf('-v') !== -1 || process.argv.indexOf('--version') !== -1) {
26
-	console.log(require('./package').version);
27
-	return;
28
-}
29
-
30
-if (process.stdin.isTTY) {
31
-	if (!input) {
32
-		return help();
33
-	}
34
-
35
-	fs.createReadStream(input).pipe(zlib.createGzip()).pipe(concat(report));
36
-} else {
37
-	process.stdin.pipe(zlib.createGzip()).pipe(concat(report));
38
-}

+ 0
- 238
node_modules/.bin/html-minifier 查看文件

@@ -1,238 +0,0 @@
1
-#!/usr/bin/env node
2
-/**
3
- * html-minifier CLI tool
4
- *
5
- * The MIT License (MIT)
6
- *
7
- *  Copyright (c) 2014 Zoltan Frombach
8
- *
9
- *  Permission is hereby granted, free of charge, to any person obtaining a copy of
10
- *  this software and associated documentation files (the "Software"), to deal in
11
- *  the Software without restriction, including without limitation the rights to
12
- *  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
13
- *  the Software, and to permit persons to whom the Software is furnished to do so,
14
- *  subject to the following conditions:
15
- *
16
- *  The above copyright notice and this permission notice shall be included in all
17
- *  copies or substantial portions of the Software.
18
- *
19
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
- *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
21
- *  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
22
- *  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
23
- *  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24
- *  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
- *
26
- */
27
-
28
-'use strict';
29
-
30
-var cli = require('cli');
31
-var changeCase = require('change-case');
32
-var path = require('path');
33
-var fs = require('fs');
34
-var appName = require('./package.json').name;
35
-var appVersion = require('./package.json').version;
36
-var minify = require('./dist/htmlminifier.min.js').minify;
37
-var minifyOptions = {};
38
-var input = null;
39
-var output = null;
40
-
41
-cli.width = 100;
42
-cli.option_width = 40;
43
-cli.setApp(appName, appVersion);
44
-
45
-var usage = appName + ' [OPTIONS] [FILE(s)]\n\n';
46
-usage += '  If no input file(s) specified then STDIN will be used for input.\n';
47
-usage += '  If more than one input file specified those will be concatenated and minified together.\n\n';
48
-usage += '  When you specify a config file with the --config-file option (see sample-cli-config-file.conf for format)\n';
49
-usage += '    you can still override some of its contents by providing individual command line options, too.\n\n';
50
-usage += '  When you want to provide an array of strings for --ignore-custom-comments or --process-scripts options\n';
51
-usage += '    on the command line you must escape those such as --ignore-custom-comments "[\\"string1\\",\\"string1\\"]"\n';
52
-
53
-cli.setUsage(usage);
54
-
55
-var mainOptions = {
56
-  removeComments: [[false, 'Strip HTML comments']],
57
-  removeCommentsFromCDATA: [[false, 'Strip HTML comments from scripts and styles']],
58
-  removeCDATASectionsFromCDATA: [[false, 'Remove CDATA sections from script and style elements']],
59
-  collapseWhitespace: [[false, 'Collapse white space that contributes to text nodes in a document tree.']],
60
-  conservativeCollapse: [[false, 'Always collapse to 1 space (never remove it entirely)']],
61
-  preserveLineBreaks: [[false, 'Always collapse to 1 line break (never remove it entirely) when whitespace between tags include a line break.']],
62
-  collapseBooleanAttributes: [[false, 'Omit attribute values from boolean attributes']],
63
-  removeAttributeQuotes: [[false, 'Remove quotes around attributes when possible.']],
64
-  removeRedundantAttributes: [[false, 'Remove attributes when value matches default.']],
65
-  useShortDoctype: [[false, 'Replaces the doctype with the short (HTML5) doctype']],
66
-  removeEmptyAttributes: [[false, 'Remove all attributes with whitespace-only values']],
67
-  removeOptionalTags: [[false, 'Remove unrequired tags']],
68
-  removeEmptyElements: [[false, 'Remove all elements with empty contents']],
69
-  lint: [[false, 'Toggle linting']],
70
-  keepClosingSlash: [[false, 'Keep the trailing slash on singleton elements']],
71
-  caseSensitive: [[false, 'Treat attributes in case sensitive manner (useful for SVG; e.g. viewBox)']],
72
-  minifyJS: [[false, 'Minify Javascript in script elements and on* attributes (uses UglifyJS)']],
73
-  minifyCSS: [[false, 'Minify CSS in style elements and style attributes (uses clean-css)']],
74
-  minifyURLs: [[false, 'Minify URLs in various attributes (uses relateurl)']],
75
-  ignoreCustomComments: [[false, 'Array of regex\'es that allow to ignore certain comments, when matched', 'string'], 'json'],
76
-  processScripts: [[false, 'Array of strings corresponding to types of script elements to process through minifier (e.g. "text/ng-template", "text/x-handlebars-template", etc.)', 'string'], 'json'],
77
-  maxLineLength: [[false, 'Max line length', 'number'], true]
78
-};
79
-
80
-var cliOptions = {
81
-  version: ['v', 'Version information'],
82
-  output: ['o', 'Specify output file (if not specified STDOUT will be used for output)', 'file'],
83
-  'config-file': ['c', 'Use config file', 'file']
84
-};
85
-
86
-var mainOptionKeys = Object.keys(mainOptions);
87
-mainOptionKeys.forEach(function(key) {
88
-  cliOptions[changeCase.paramCase(key)] = mainOptions[key][0];
89
-});
90
-
91
-cli.parse(cliOptions);
92
-
93
-cli.main(function(args, options) {
94
-
95
-  if (options.version) {
96
-    process.stderr.write(appName + ' v' + appVersion);
97
-    cli.exit(0);
98
-  }
99
-
100
-  if (options['config-file']) {
101
-    try {
102
-      var fileOptions = JSON.parse(fs.readFileSync(path.resolve(options['config-file']), 'utf8'));
103
-      if ((fileOptions !== null) && (typeof fileOptions === 'object')) {
104
-        minifyOptions = fileOptions;
105
-      }
106
-    }
107
-    catch (e) {
108
-      process.stderr.write('Error: Cannot read the specified config file');
109
-      cli.exit(1);
110
-    }
111
-  }
112
-
113
-  mainOptionKeys.forEach(function(key) {
114
-    var paramKey = changeCase.paramCase(key);
115
-    var value = options[paramKey];
116
-    if (options[paramKey] !== null) {
117
-      switch (mainOptions[key][1]) {
118
-        case 'json':
119
-          minifyOptions[key] = parseJSONOption(value);
120
-          break;
121
-        case true:
122
-          minifyOptions[key] = value;
123
-          break;
124
-        default:
125
-          minifyOptions[key] = true;
126
-      }
127
-    }
128
-  });
129
-
130
-  if (args.length) {
131
-    input = args;
132
-  }
133
-
134
-  if (options.output) {
135
-    output = options.output;
136
-  }
137
-
138
-  var original = '';
139
-  var status = 0;
140
-
141
-  if (input !== null) { // Minifying one or more files specified on the CMD line
142
-
143
-    input.forEach(function(afile) {
144
-      try {
145
-        original += fs.readFileSync(afile, 'utf8');
146
-      }
147
-      catch (e) {
148
-        status = 2;
149
-        process.stderr.write('Error: Cannot read file ' + afile);
150
-      }
151
-    });
152
-
153
-  }
154
-  else { // Minifying input coming from STDIN
155
-
156
-    var BUFSIZE = 4096;
157
-    var buf = new Buffer(BUFSIZE);
158
-    var bytesRead;
159
-
160
-    while (true) { // Loop as long as stdin input is available.
161
-      bytesRead = 0;
162
-      try {
163
-        bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE);
164
-      }
165
-      catch (e) {
166
-        if (e.code === 'EAGAIN') { // 'resource temporarily unavailable'
167
-          // Happens on OS X 10.8.3 (not Windows 7!), if there's no
168
-          // stdin input - typically when invoking a script without any
169
-          // input (for interactive stdin input).
170
-          // If you were to just continue, you'd create a tight loop.
171
-          process.stderr.write('ERROR: interactive stdin input not supported');
172
-          cli.exit(2);
173
-        }
174
-        else if (e.code === 'EOF') {
175
-          // Happens on Windows 7, but not OS X 10.8.3:
176
-          // simply signals the end of *piped* stdin input.
177
-          break;
178
-        }
179
-        throw e; // unexpected exception
180
-      }
181
-      if (bytesRead === 0) {
182
-        // No more stdin input available.
183
-        // OS X 10.8.3: regardless of input method, this is how the end
184
-        //   of input is signaled.
185
-        // Windows 7: this is how the end of input is signaled for
186
-        //   *interactive* stdin input.
187
-        break;
188
-      }
189
-      original += buf.toString('utf8', 0, bytesRead);
190
-    }
191
-
192
-  }
193
-
194
-  function parseJSONOption(value) {
195
-    if (value !== null) {
196
-      var jsonArray;
197
-      try {
198
-        jsonArray = JSON.parse(value);
199
-      }
200
-      catch (e) {}
201
-      if (jsonArray instanceof Array) {
202
-        return jsonArray;
203
-      }
204
-      else {
205
-        return [value];
206
-      }
207
-    }
208
-  }
209
-
210
-  // Run minify
211
-  var minified = null;
212
-  try {
213
-    minified = minify(original, minifyOptions);
214
-  }
215
-  catch (e) {
216
-    status = 3;
217
-    process.stderr.write('Error: Minification error');
218
-  }
219
-
220
-  if (minified !== null) {
221
-    // Write the output
222
-    try {
223
-      if (output !== null) {
224
-        fs.writeFileSync(path.resolve(output), minified);
225
-      }
226
-      else {
227
-        process.stdout.write(minified);
228
-      }
229
-    }
230
-    catch (e) {
231
-      status = 4;
232
-      process.stderr.write('Error: Cannot write to output');
233
-    }
234
-  }
235
-
236
-  cli.exit(status);
237
-
238
-});

+ 0
- 125
node_modules/.bin/js-yaml 查看文件

@@ -1,125 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-
4
-'use strict';
5
-
6
-
7
-// stdlib
8
-var fs    = require('fs');
9
-var util  = require('util');
10
-
11
-
12
-// 3rd-party
13
-var ArgumentParser = require('argparse').ArgumentParser;
14
-
15
-
16
-// internal
17
-var yaml = require('..');
18
-
19
-
20
-////////////////////////////////////////////////////////////////////////////////
21
-
22
-
23
-var cli = new ArgumentParser({
24
-  prog:     'js-yaml',
25
-  version:  require('../package.json').version,
26
-  addHelp:  true
27
-});
28
-
29
-
30
-cli.addArgument(['-c', '--compact'], {
31
-  help:   'Display errors in compact mode',
32
-  action: 'storeTrue'
33
-});
34
-
35
-
36
-cli.addArgument(['-j', '--to-json'], {
37
-  help:   'Output a non-funky boring JSON',
38
-  dest:   'json',
39
-  action: 'storeTrue'
40
-});
41
-
42
-
43
-cli.addArgument(['-t', '--trace'], {
44
-  help:   'Show stack trace on error',
45
-  action: 'storeTrue'
46
-});
47
-
48
-
49
-cli.addArgument(['file'], {
50
-  help:   'File to read'
51
-});
52
-
53
-
54
-////////////////////////////////////////////////////////////////////////////////
55
-
56
-
57
-var options = cli.parseArgs();
58
-
59
-
60
-////////////////////////////////////////////////////////////////////////////////
61
-
62
-
63
-fs.readFile(options.file, 'utf8', function (error, input) {
64
-  var output, isYaml;
65
-
66
-  if (error) {
67
-    if ('ENOENT' === error.code) {
68
-      console.error('File not found: ' + options.file);
69
-      process.exit(2);
70
-    }
71
-
72
-    console.error(
73
-      options.trace && error.stack ||
74
-      error.message ||
75
-      String(error));
76
-
77
-    process.exit(1);
78
-  }
79
-
80
-  try {
81
-    output = JSON.parse(input);
82
-    isYaml = false;
83
-  } catch (error) {
84
-    if (error instanceof SyntaxError) {
85
-      try {
86
-        output = [];
87
-        yaml.loadAll(input, function (doc) { output.push(doc); }, {});
88
-        isYaml = true;
89
-
90
-        if (0 === output.length) {
91
-          output = null;
92
-        } else if (1 === output.length) {
93
-          output = output[0];
94
-        }
95
-      } catch (error) {
96
-        if (options.trace && error.stack) {
97
-          console.error(error.stack);
98
-        } else {
99
-          console.error(error.toString(options.compact));
100
-        }
101
-
102
-        process.exit(1);
103
-      }
104
-    } else {
105
-      console.error(
106
-        options.trace && error.stack ||
107
-        error.message ||
108
-        String(error));
109
-
110
-      process.exit(1);
111
-    }
112
-  }
113
-
114
-  if (isYaml) {
115
-    if (options.json) {
116
-      console.log(JSON.stringify(output, null, '  '));
117
-    } else {
118
-      console.log("\n" + util.inspect(output, false, 10, true) + "\n");
119
-    }
120
-  } else {
121
-    console.log(yaml.dump(output));
122
-  }
123
-
124
-  process.exit(0);
125
-});

+ 0
- 3
node_modules/.bin/jshint 查看文件

@@ -1,3 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-require("../src/cli.js").interpret(process.argv);

+ 0
- 33
node_modules/.bin/mkdirp 查看文件

@@ -1,33 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var mkdirp = require('../');
4
-var minimist = require('minimist');
5
-var fs = require('fs');
6
-
7
-var argv = minimist(process.argv.slice(2), {
8
-    alias: { m: 'mode', h: 'help' },
9
-    string: [ 'mode' ]
10
-});
11
-if (argv.help) {
12
-    fs.createReadStream(__dirname + '/usage.txt').pipe(process.stdout);
13
-    return;
14
-}
15
-
16
-var paths = argv._.slice();
17
-var mode = argv.mode ? parseInt(argv.mode, 8) : undefined;
18
-
19
-(function next () {
20
-    if (paths.length === 0) return;
21
-    var p = paths.shift();
22
-    
23
-    if (mode === undefined) mkdirp(p, cb)
24
-    else mkdirp(p, mode, cb)
25
-    
26
-    function cb (err) {
27
-        if (err) {
28
-            console.error(err.message);
29
-            process.exit(1);
30
-        }
31
-        else next();
32
-    }
33
-})();

+ 0
- 44
node_modules/.bin/nopt 查看文件

@@ -1,44 +0,0 @@
1
-#!/usr/bin/env node
2
-var nopt = require("../lib/nopt")
3
-  , types = { num: Number
4
-            , bool: Boolean
5
-            , help: Boolean
6
-            , list: Array
7
-            , "num-list": [Number, Array]
8
-            , "str-list": [String, Array]
9
-            , "bool-list": [Boolean, Array]
10
-            , str: String }
11
-  , shorthands = { s: [ "--str", "astring" ]
12
-                 , b: [ "--bool" ]
13
-                 , nb: [ "--no-bool" ]
14
-                 , tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ]
15
-                 , "?": ["--help"]
16
-                 , h: ["--help"]
17
-                 , H: ["--help"]
18
-                 , n: [ "--num", "125" ] }
19
-  , parsed = nopt( types
20
-                 , shorthands
21
-                 , process.argv
22
-                 , 2 )
23
-
24
-console.log("parsed", parsed)
25
-
26
-if (parsed.help) {
27
-  console.log("")
28
-  console.log("nopt cli tester")
29
-  console.log("")
30
-  console.log("types")
31
-  console.log(Object.keys(types).map(function M (t) {
32
-    var type = types[t]
33
-    if (Array.isArray(type)) {
34
-      return [t, type.map(function (type) { return type.name })]
35
-    }
36
-    return [t, type && type.name]
37
-  }).reduce(function (s, i) {
38
-    s[i[0]] = i[1]
39
-    return s
40
-  }, {}))
41
-  console.log("")
42
-  console.log("shorthands")
43
-  console.log(shorthands)
44
-}

+ 0
- 32
node_modules/.bin/pretty-bytes 查看文件

@@ -1,32 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-var getStdin = require('get-stdin');
4
-var meow = require('meow');
5
-var prettyBytes = require('./pretty-bytes');
6
-
7
-var cli = meow({
8
-	help: [
9
-		'Usage',
10
-		'  $ pretty-bytes <number>',
11
-		'  $ echo <number> | pretty-bytes',
12
-		'',
13
-		'Example',
14
-		'  $ pretty-bytes 1337',
15
-		'  1.34 kB'
16
-	].join('\n')
17
-});
18
-
19
-function init(data) {
20
-	console.log(prettyBytes(Number(data)));
21
-}
22
-
23
-if (process.stdin.isTTY) {
24
-	if (!cli.input[0]) {
25
-		console.error('Number required');
26
-		process.exit(1);
27
-	}
28
-
29
-	init(cli.input[0]);
30
-} else {
31
-	getStdin(init);
32
-}

+ 0
- 33
node_modules/.bin/rimraf 查看文件

@@ -1,33 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var rimraf = require('./')
4
-
5
-var help = false
6
-var dashdash = false
7
-var args = process.argv.slice(2).filter(function(arg) {
8
-  if (dashdash)
9
-    return !!arg
10
-  else if (arg === '--')
11
-    dashdash = true
12
-  else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/))
13
-    help = true
14
-  else
15
-    return !!arg
16
-});
17
-
18
-if (help || args.length === 0) {
19
-  // If they didn't ask for help, then this is not a "success"
20
-  var log = help ? console.log : console.error
21
-  log('Usage: rimraf <path>')
22
-  log('')
23
-  log('  Deletes all files and folders at "path" recursively.')
24
-  log('')
25
-  log('Options:')
26
-  log('')
27
-  log('  -h, --help    Display this usage info')
28
-  process.exit(help ? 0 : 1)
29
-} else {
30
-  args.forEach(function(arg) {
31
-    rimraf.sync(arg)
32
-  })
33
-}

+ 0
- 143
node_modules/.bin/semver 查看文件

@@ -1,143 +0,0 @@
1
-#!/usr/bin/env node
2
-// Standalone semver comparison program.
3
-// Exits successfully and prints matching version(s) if
4
-// any supplied version is valid and passes all tests.
5
-
6
-var argv = process.argv.slice(2)
7
-  , versions = []
8
-  , range = []
9
-  , gt = []
10
-  , lt = []
11
-  , eq = []
12
-  , inc = null
13
-  , version = require("../package.json").version
14
-  , loose = false
15
-  , coerce = false
16
-  , identifier = undefined
17
-  , semver = require("../semver")
18
-  , reverse = false
19
-
20
-main()
21
-
22
-function main () {
23
-  if (!argv.length) return help()
24
-  while (argv.length) {
25
-    var a = argv.shift()
26
-    var i = a.indexOf('=')
27
-    if (i !== -1) {
28
-      a = a.slice(0, i)
29
-      argv.unshift(a.slice(i + 1))
30
-    }
31
-    switch (a) {
32
-      case "-rv": case "-rev": case "--rev": case "--reverse":
33
-        reverse = true
34
-        break
35
-      case "-l": case "--loose":
36
-        loose = true
37
-        break
38
-      case "-v": case "--version":
39
-        versions.push(argv.shift())
40
-        break
41
-      case "-i": case "--inc": case "--increment":
42
-        switch (argv[0]) {
43
-          case "major": case "minor": case "patch": case "prerelease":
44
-          case "premajor": case "preminor": case "prepatch":
45
-            inc = argv.shift()
46
-            break
47
-          default:
48
-            inc = "patch"
49
-            break
50
-        }
51
-        break
52
-      case "--preid":
53
-        identifier = argv.shift()
54
-        break
55
-      case "-r": case "--range":
56
-        range.push(argv.shift())
57
-        break
58
-      case "-c": case "--coerce":
59
-        coerce = true
60
-        break
61
-      case "-h": case "--help": case "-?":
62
-        return help()
63
-      default:
64
-        versions.push(a)
65
-        break
66
-    }
67
-  }
68
-
69
-  versions = versions.map(function (v) {
70
-    return coerce ? (semver.coerce(v) || {version: v}).version : v
71
-  }).filter(function (v) {
72
-    return semver.valid(v)
73
-  })
74
-  if (!versions.length) return fail()
75
-  if (inc && (versions.length !== 1 || range.length))
76
-    return failInc()
77
-
78
-  for (var i = 0, l = range.length; i < l ; i ++) {
79
-    versions = versions.filter(function (v) {
80
-      return semver.satisfies(v, range[i], loose)
81
-    })
82
-    if (!versions.length) return fail()
83
-  }
84
-  return success(versions)
85
-}
86
-
87
-function failInc () {
88
-  console.error("--inc can only be used on a single version with no range")
89
-  fail()
90
-}
91
-
92
-function fail () { process.exit(1) }
93
-
94
-function success () {
95
-  var compare = reverse ? "rcompare" : "compare"
96
-  versions.sort(function (a, b) {
97
-    return semver[compare](a, b, loose)
98
-  }).map(function (v) {
99
-    return semver.clean(v, loose)
100
-  }).map(function (v) {
101
-    return inc ? semver.inc(v, inc, loose, identifier) : v
102
-  }).forEach(function (v,i,_) { console.log(v) })
103
-}
104
-
105
-function help () {
106
-  console.log(["SemVer " + version
107
-              ,""
108
-              ,"A JavaScript implementation of the http://semver.org/ specification"
109
-              ,"Copyright Isaac Z. Schlueter"
110
-              ,""
111
-              ,"Usage: semver [options] <version> [<version> [...]]"
112
-              ,"Prints valid versions sorted by SemVer precedence"
113
-              ,""
114
-              ,"Options:"
115
-              ,"-r --range <range>"
116
-              ,"        Print versions that match the specified range."
117
-              ,""
118
-              ,"-i --increment [<level>]"
119
-              ,"        Increment a version by the specified level.  Level can"
120
-              ,"        be one of: major, minor, patch, premajor, preminor,"
121
-              ,"        prepatch, or prerelease.  Default level is 'patch'."
122
-              ,"        Only one version may be specified."
123
-              ,""
124
-              ,"--preid <identifier>"
125
-              ,"        Identifier to be used to prefix premajor, preminor,"
126
-              ,"        prepatch or prerelease version increments."
127
-              ,""
128
-              ,"-l --loose"
129
-              ,"        Interpret versions and ranges loosely"
130
-              ,""
131
-              ,"-c --coerce"
132
-              ,"        Coerce a string into SemVer if possible"
133
-              ,"        (does not imply --loose)"
134
-              ,""
135
-              ,"Program exits successfully if any valid version satisfies"
136
-              ,"all supplied ranges, and prints all satisfying versions."
137
-              ,""
138
-              ,"If no satisfying versions are found, then exits failure."
139
-              ,""
140
-              ,"Versions are printed in ascending order, so supplying"
141
-              ,"multiple versions to the utility will just sort them."
142
-              ].join("\n"))
143
-}

+ 0
- 51
node_modules/.bin/shjs 查看文件

@@ -1,51 +0,0 @@
1
-#!/usr/bin/env node
2
-require('../global');
3
-
4
-if (process.argv.length < 3) {
5
-  console.log('ShellJS: missing argument (script name)');
6
-  console.log();
7
-  process.exit(1);
8
-}
9
-
10
-var args,
11
-  scriptName = process.argv[2];
12
-env['NODE_PATH'] = __dirname + '/../..';
13
-
14
-if (!scriptName.match(/\.js/) && !scriptName.match(/\.coffee/)) {
15
-  if (test('-f', scriptName + '.js'))
16
-    scriptName += '.js';
17
-  if (test('-f', scriptName + '.coffee'))
18
-    scriptName += '.coffee';
19
-}
20
-
21
-if (!test('-f', scriptName)) {
22
-  console.log('ShellJS: script not found ('+scriptName+')');
23
-  console.log();
24
-  process.exit(1);
25
-}
26
-
27
-args = process.argv.slice(3);
28
-
29
-for (var i = 0, l = args.length; i < l; i++) {
30
-  if (args[i][0] !== "-"){
31
-    args[i] = '"' + args[i] + '"'; // fixes arguments with multiple words
32
-  }
33
-}
34
-
35
-if (scriptName.match(/\.coffee$/)) {
36
-  //
37
-  // CoffeeScript
38
-  //
39
-  if (which('coffee')) {
40
-    exec('coffee ' + scriptName + ' ' + args.join(' '), { async: true });
41
-  } else {
42
-    console.log('ShellJS: CoffeeScript interpreter not found');
43
-    console.log();
44
-    process.exit(1);
45
-  }
46
-} else {
47
-  //
48
-  // JavaScript
49
-  //
50
-  exec('node ' + scriptName + ' ' + args.join(' '), { async: true });
51
-}

+ 0
- 39
node_modules/.bin/strip-ansi 查看文件

@@ -1,39 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-var fs = require('fs');
4
-var pkg = require('./package.json');
5
-var strip = require('./');
6
-var input = process.argv[2];
7
-
8
-function help() {
9
-	console.log([
10
-		pkg.description,
11
-		'',
12
-		'Usage',
13
-		'  $ strip-ansi <input-file> > <output-file>',
14
-		'  $ cat <input-file> | strip-ansi > <output-file>',
15
-		'',
16
-		'Example',
17
-		'  $ strip-ansi unicorn.txt > unicorn-stripped.txt'
18
-	].join('\n'));
19
-}
20
-
21
-if (process.argv.indexOf('--help') !== -1) {
22
-	help();
23
-	return;
24
-}
25
-
26
-if (process.argv.indexOf('--version') !== -1) {
27
-	console.log(pkg.version);
28
-	return;
29
-}
30
-
31
-if (input) {
32
-	process.stdout.write(strip(fs.readFileSync(input, 'utf8')));
33
-	return;
34
-}
35
-
36
-process.stdin.setEncoding('utf8');
37
-process.stdin.on('data', function (data) {
38
-	process.stdout.write(strip(data));
39
-});

+ 0
- 49
node_modules/.bin/strip-indent 查看文件

@@ -1,49 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-var fs = require('fs');
4
-var stdin = require('get-stdin');
5
-var pkg = require('./package.json');
6
-var stripIndent = require('./');
7
-var argv = process.argv.slice(2);
8
-var input = argv[0];
9
-
10
-function help() {
11
-	console.log([
12
-		'',
13
-		'  ' + pkg.description,
14
-		'',
15
-		'  Usage',
16
-		'    strip-indent <file>',
17
-		'    echo <string> | strip-indent',
18
-		'',
19
-		'  Example',
20
-		'    echo \'\\tunicorn\\n\\t\\tcake\' | strip-indent',
21
-		'    unicorn',
22
-		'    \tcake'
23
-	].join('\n'));
24
-}
25
-
26
-function init(data) {
27
-	console.log(stripIndent(data));
28
-}
29
-
30
-if (argv.indexOf('--help') !== -1) {
31
-	help();
32
-	return;
33
-}
34
-
35
-if (argv.indexOf('--version') !== -1) {
36
-	console.log(pkg.version);
37
-	return;
38
-}
39
-
40
-if (process.stdin.isTTY) {
41
-	if (!input) {
42
-		help();
43
-		return;
44
-	}
45
-
46
-	init(fs.readFileSync(input, 'utf8'));
47
-} else {
48
-	stdin(init);
49
-}

+ 0
- 41
node_modules/.bin/strip-json-comments 查看文件

@@ -1,41 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-var fs = require('fs');
4
-var strip = require('./strip-json-comments');
5
-var input = process.argv[2];
6
-
7
-
8
-function getStdin(cb) {
9
-	var ret = '';
10
-
11
-	process.stdin.setEncoding('utf8');
12
-
13
-	process.stdin.on('data', function (data) {
14
-		ret += data;
15
-	});
16
-
17
-	process.stdin.on('end', function () {
18
-		cb(ret);
19
-	});
20
-}
21
-
22
-if (process.argv.indexOf('-h') !== -1 || process.argv.indexOf('--help') !== -1) {
23
-	console.log('strip-json-comments input-file > output-file');
24
-	console.log('or');
25
-	console.log('strip-json-comments < input-file > output-file');
26
-	return;
27
-}
28
-
29
-if (process.argv.indexOf('-v') !== -1 || process.argv.indexOf('--version') !== -1) {
30
-	console.log(require('./package').version);
31
-	return;
32
-}
33
-
34
-if (input) {
35
-	process.stdout.write(strip(fs.readFileSync(input, 'utf8')));
36
-	return;
37
-}
38
-
39
-getStdin(function (data) {
40
-	process.stdout.write(strip(data));
41
-});

+ 0
- 68
node_modules/.bin/tiny-lr-fork 查看文件

@@ -1,68 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var fs    = require('fs');
4
-var path  = require('path');
5
-
6
-// default DEBUG if not set already
7
-process.env.DEBUG = process.env.DEBUG || 'tinylr tinylr:*';
8
-
9
-var Server = require('..').Server;
10
-var noptify = require('noptify');
11
-
12
-var program = noptify(process.argv, { program: 'tiny-lr' })
13
-  .version('0.0.1')
14
-  .option('port', '-p', 'Port to listen on (default: 35729)', Number)
15
-  .option('pid', 'Path to the generated PID file (default: ./tiny-lr.pid)', String);
16
-
17
-var opts = program.parse();
18
-opts.port = opts.port || 35729;
19
-opts.pid = opts.pid || path.resolve('tiny-lr.pid');
20
-
21
-// if it was required, don't start the server and expose the Server object.
22
-if (module.parent) {
23
-  module.exports = Server;
24
-  return;
25
-}
26
-
27
-// Server
28
-
29
-// Thanks to @FGRibreau for his very simple and very handy gist:
30
-// https://gist.github.com/1846952
31
-
32
-process.title = 'tiny-lr';
33
-
34
-process.on('exit', function() {
35
-  console.log('... Closing server ...');
36
-  console.log('... Removing pid file (%s) ...', opts.pid);
37
-  fs.unlinkSync(opts.pid);
38
-});
39
-
40
-process.on('SIGTERM', function() {
41
-  return process.exit(0);
42
-});
43
-
44
-process.on('SIGINT', function() {
45
-  return process.exit(0);
46
-});
47
-
48
-
49
-var srv = new Server(opts);
50
-
51
-srv.on('close', function() {
52
-  process.nextTick(function() {
53
-    process.exit();
54
-  });
55
-});
56
-
57
-console.log();
58
-srv.listen(opts.port, function(err) {
59
-  fs.writeFile(opts.pid, process.pid, function(err) {
60
-    if(err) {
61
-      console.log('... Cannot write pid file: %s', opts.pid);
62
-      process.exit(1)
63
-    }
64
-
65
-    console.log('... Listening on %s (pid: %s) ...', opts.port, process.pid);
66
-    console.log('... pid file: %s', opts.pid);
67
-  });
68
-});

+ 0
- 560
node_modules/.bin/uglifyjs 查看文件

@@ -1,560 +0,0 @@
1
-#! /usr/bin/env node
2
-// -*- js -*-
3
-
4
-"use strict";
5
-
6
-var UglifyJS = require("../tools/node");
7
-var sys = require("util");
8
-var yargs = require("yargs");
9
-var fs = require("fs");
10
-var path = require("path");
11
-var async = require("async");
12
-var acorn;
13
-var ARGS = yargs
14
-    .usage("$0 input1.js [input2.js ...] [options]\n\
15
-Use a single dash to read input from the standard input.\
16
-\n\n\
17
-NOTE: by default there is no mangling/compression.\n\
18
-Without [options] it will simply parse input files and dump the AST\n\
19
-with whitespace and comments discarded.  To achieve compression and\n\
20
-mangling you need to use `-c` and `-m`.\
21
-")
22
-    .describe("source-map", "Specify an output file where to generate source map.")
23
-    .describe("source-map-root", "The path to the original source to be included in the source map.")
24
-    .describe("source-map-url", "The path to the source map to be added in //# sourceMappingURL.  Defaults to the value passed with --source-map.")
25
-    .describe("source-map-include-sources", "Pass this flag if you want to include the content of source files in the source map as sourcesContent property.")
26
-    .describe("in-source-map", "Input source map, useful if you're compressing JS that was generated from some other original code.")
27
-    .describe("screw-ie8", "Pass this flag if you don't care about full compliance with Internet Explorer 6-8 quirks (by default UglifyJS will try to be IE-proof).")
28
-    .describe("expr", "Parse a single expression, rather than a program (for parsing JSON)")
29
-    .describe("p", "Skip prefix for original filenames that appear in source maps. \
30
-For example -p 3 will drop 3 directories from file names and ensure they are relative paths. \
31
-You can also specify -p relative, which will make UglifyJS figure out itself the relative paths between original sources, \
32
-the source map and the output file.")
33
-    .describe("o", "Output file (default STDOUT).")
34
-    .describe("b", "Beautify output/specify output options.")
35
-    .describe("m", "Mangle names/pass mangler options.")
36
-    .describe("r", "Reserved names to exclude from mangling.")
37
-    .describe("c", "Enable compressor/pass compressor options. \
38
-Pass options like -c hoist_vars=false,if_return=false. \
39
-Use -c with no argument to use the default compression options.")
40
-    .describe("d", "Global definitions")
41
-    .describe("e", "Embed everything in a big function, with a configurable parameter/argument list.")
42
-
43
-    .describe("comments", "Preserve copyright comments in the output. \
44
-By default this works like Google Closure, keeping JSDoc-style comments that contain \"@license\" or \"@preserve\". \
45
-You can optionally pass one of the following arguments to this flag:\n\
46
-- \"all\" to keep all comments\n\
47
-- a valid JS regexp (needs to start with a slash) to keep only comments that match.\n\
48
-\
49
-Note that currently not *all* comments can be kept when compression is on, \
50
-because of dead code removal or cascading statements into sequences.")
51
-
52
-    .describe("preamble", "Preamble to prepend to the output.  You can use this to insert a \
53
-comment, for example for licensing information.  This will not be \
54
-parsed, but the source map will adjust for its presence.")
55
-
56
-    .describe("stats", "Display operations run time on STDERR.")
57
-    .describe("acorn", "Use Acorn for parsing.")
58
-    .describe("spidermonkey", "Assume input files are SpiderMonkey AST format (as JSON).")
59
-    .describe("self", "Build itself (UglifyJS2) as a library (implies --wrap=UglifyJS --export-all)")
60
-    .describe("wrap", "Embed everything in a big function, making the “exports” and “global” variables available. \
61
-You need to pass an argument to this option to specify the name that your module will take when included in, say, a browser.")
62
-    .describe("export-all", "Only used when --wrap, this tells UglifyJS to add code to automatically export all globals.")
63
-    .describe("lint", "Display some scope warnings")
64
-    .describe("v", "Verbose")
65
-    .describe("V", "Print version number and exit.")
66
-    .describe("noerr", "Don't throw an error for unknown options in -c, -b or -m.")
67
-    .describe("bare-returns", "Allow return outside of functions.  Useful when minifying CommonJS modules.")
68
-    .describe("keep-fnames", "Do not mangle/drop function names.  Useful for code relying on Function.prototype.name.")
69
-    .describe("quotes", "Quote style (0 - auto, 1 - single, 2 - double, 3 - original)")
70
-    .describe("reserved-file", "File containing reserved names")
71
-    .describe("reserve-domprops", "Make (most?) DOM properties reserved for --mangle-props")
72
-    .describe("mangle-props", "Mangle property names")
73
-    .describe("mangle-regex", "Only mangle property names matching the regex")
74
-    .describe("name-cache", "File to hold mangled names mappings")
75
-
76
-    .alias("p", "prefix")
77
-    .alias("o", "output")
78
-    .alias("v", "verbose")
79
-    .alias("b", "beautify")
80
-    .alias("m", "mangle")
81
-    .alias("c", "compress")
82
-    .alias("d", "define")
83
-    .alias("r", "reserved")
84
-    .alias("V", "version")
85
-    .alias("e", "enclose")
86
-    .alias("q", "quotes")
87
-
88
-    .string("source-map")
89
-    .string("source-map-root")
90
-    .string("source-map-url")
91
-    .string("b")
92
-    .string("beautify")
93
-    .string("m")
94
-    .string("mangle")
95
-    .string("c")
96
-    .string("compress")
97
-    .string("d")
98
-    .string("define")
99
-    .string("e")
100
-    .string("enclose")
101
-    .string("comments")
102
-    .string("wrap")
103
-    .string("p")
104
-    .string("prefix")
105
-    .string("name-cache")
106
-    .array("reserved-file")
107
-
108
-    .boolean("expr")
109
-    .boolean("source-map-include-sources")
110
-    .boolean("screw-ie8")
111
-    .boolean("export-all")
112
-    .boolean("self")
113
-    .boolean("v")
114
-    .boolean("verbose")
115
-    .boolean("stats")
116
-    .boolean("acorn")
117
-    .boolean("spidermonkey")
118
-    .boolean("lint")
119
-    .boolean("V")
120
-    .boolean("version")
121
-    .boolean("noerr")
122
-    .boolean("bare-returns")
123
-    .boolean("keep-fnames")
124
-    .boolean("mangle-props")
125
-    .boolean("reserve-domprops")
126
-
127
-    .wrap(80)
128
-
129
-    .argv
130
-;
131
-
132
-normalize(ARGS);
133
-
134
-if (ARGS.noerr) {
135
-    UglifyJS.DefaultsError.croak = function(msg, defs) {
136
-        print_error("WARN: " + msg);
137
-    };
138
-}
139
-
140
-if (ARGS.version || ARGS.V) {
141
-    var json = require("../package.json");
142
-    print(json.name + ' ' + json.version);
143
-    process.exit(0);
144
-}
145
-
146
-if (ARGS.ast_help) {
147
-    var desc = UglifyJS.describe_ast();
148
-    print(typeof desc == "string" ? desc : JSON.stringify(desc, null, 2));
149
-    process.exit(0);
150
-}
151
-
152
-if (ARGS.h || ARGS.help) {
153
-    print(yargs.help());
154
-    process.exit(0);
155
-}
156
-
157
-if (ARGS.acorn) {
158
-    acorn = require("acorn");
159
-}
160
-
161
-var COMPRESS = getOptions("c", true);
162
-var MANGLE = getOptions("m", true);
163
-var BEAUTIFY = getOptions("b", true);
164
-var RESERVED = null;
165
-
166
-if (ARGS.reserved_file) ARGS.reserved_file.forEach(function(filename){
167
-    RESERVED = UglifyJS.readReservedFile(filename, RESERVED);
168
-});
169
-
170
-if (ARGS.reserve_domprops) {
171
-    RESERVED = UglifyJS.readDefaultReservedFile(RESERVED);
172
-}
173
-
174
-if (ARGS.d) {
175
-    if (COMPRESS) COMPRESS.global_defs = getOptions("d");
176
-}
177
-
178
-if (ARGS.r) {
179
-    if (MANGLE) MANGLE.except = ARGS.r.replace(/^\s+|\s+$/g).split(/\s*,+\s*/);
180
-}
181
-
182
-if (RESERVED && MANGLE) {
183
-    if (!MANGLE.except) MANGLE.except = RESERVED.vars;
184
-    else MANGLE.except = MANGLE.except.concat(RESERVED.vars);
185
-}
186
-
187
-function readNameCache(key) {
188
-    return UglifyJS.readNameCache(ARGS.name_cache, key);
189
-}
190
-
191
-function writeNameCache(key, cache) {
192
-    return UglifyJS.writeNameCache(ARGS.name_cache, key, cache);
193
-}
194
-
195
-function extractRegex(str) {
196
-  if (/^\/.*\/[a-zA-Z]*$/.test(str)) {
197
-    var regex_pos = str.lastIndexOf("/");
198
-    return new RegExp(str.substr(1, regex_pos - 1), str.substr(regex_pos + 1));
199
-  } else {
200
-    throw new Error("Invalid regular expression: " + str);
201
-  }
202
-}
203
-
204
-if (ARGS.quotes === true) {
205
-    ARGS.quotes = 3;
206
-}
207
-
208
-var OUTPUT_OPTIONS = {
209
-    beautify    : BEAUTIFY ? true : false,
210
-    preamble    : ARGS.preamble || null,
211
-    quote_style : ARGS.quotes != null ? ARGS.quotes : 0
212
-};
213
-
214
-if (ARGS.screw_ie8) {
215
-    if (COMPRESS) COMPRESS.screw_ie8 = true;
216
-    if (MANGLE) MANGLE.screw_ie8 = true;
217
-    OUTPUT_OPTIONS.screw_ie8 = true;
218
-}
219
-
220
-if (ARGS.keep_fnames) {
221
-    if (COMPRESS) COMPRESS.keep_fnames = true;
222
-    if (MANGLE) MANGLE.keep_fnames = true;
223
-}
224
-
225
-if (BEAUTIFY)
226
-    UglifyJS.merge(OUTPUT_OPTIONS, BEAUTIFY);
227
-
228
-if (ARGS.comments != null) {
229
-    if (/^\/.*\/[a-zA-Z]*$/.test(ARGS.comments)) {
230
-        try {
231
-            OUTPUT_OPTIONS.comments = extractRegex(ARGS.comments);
232
-        } catch (e) {
233
-            print_error("ERROR: Invalid --comments: " + e.message);
234
-        }
235
-    } else if (ARGS.comments == "all") {
236
-        OUTPUT_OPTIONS.comments = true;
237
-    } else {
238
-        OUTPUT_OPTIONS.comments = function(node, comment) {
239
-            var text = comment.value;
240
-            var type = comment.type;
241
-            if (type == "comment2") {
242
-                // multiline comment
243
-                return /@preserve|@license|@cc_on/i.test(text);
244
-            }
245
-        }
246
-    }
247
-}
248
-
249
-var files = ARGS._.slice();
250
-
251
-if (ARGS.self) {
252
-    if (files.length > 0) {
253
-        print_error("WARN: Ignoring input files since --self was passed");
254
-    }
255
-    files = UglifyJS.FILES;
256
-    if (!ARGS.wrap) ARGS.wrap = "UglifyJS";
257
-    ARGS.export_all = true;
258
-}
259
-
260
-var ORIG_MAP = ARGS.in_source_map;
261
-
262
-if (ORIG_MAP) {
263
-    ORIG_MAP = JSON.parse(fs.readFileSync(ORIG_MAP));
264
-    if (files.length == 0) {
265
-        print_error("INFO: Using file from the input source map: " + ORIG_MAP.file);
266
-        files = [ ORIG_MAP.file ];
267
-    }
268
-    if (ARGS.source_map_root == null) {
269
-        ARGS.source_map_root = ORIG_MAP.sourceRoot;
270
-    }
271
-}
272
-
273
-if (files.length == 0) {
274
-    files = [ "-" ];
275
-}
276
-
277
-if (files.indexOf("-") >= 0 && ARGS.source_map) {
278
-    print_error("ERROR: Source map doesn't work with input from STDIN");
279
-    process.exit(1);
280
-}
281
-
282
-if (files.filter(function(el){ return el == "-" }).length > 1) {
283
-    print_error("ERROR: Can read a single file from STDIN (two or more dashes specified)");
284
-    process.exit(1);
285
-}
286
-
287
-var STATS = {};
288
-var OUTPUT_FILE = ARGS.o;
289
-var TOPLEVEL = null;
290
-var P_RELATIVE = ARGS.p && ARGS.p == "relative";
291
-var SOURCES_CONTENT = {};
292
-
293
-var SOURCE_MAP = ARGS.source_map ? UglifyJS.SourceMap({
294
-    file: P_RELATIVE ? path.relative(path.dirname(ARGS.source_map), OUTPUT_FILE) : OUTPUT_FILE,
295
-    root: ARGS.source_map_root,
296
-    orig: ORIG_MAP,
297
-}) : null;
298
-
299
-OUTPUT_OPTIONS.source_map = SOURCE_MAP;
300
-
301
-try {
302
-    var output = UglifyJS.OutputStream(OUTPUT_OPTIONS);
303
-    var compressor = COMPRESS && UglifyJS.Compressor(COMPRESS);
304
-} catch(ex) {
305
-    if (ex instanceof UglifyJS.DefaultsError) {
306
-        print_error(ex.msg);
307
-        print_error("Supported options:");
308
-        print_error(sys.inspect(ex.defs));
309
-        process.exit(1);
310
-    }
311
-}
312
-
313
-async.eachLimit(files, 1, function (file, cb) {
314
-    read_whole_file(file, function (err, code) {
315
-        if (err) {
316
-            print_error("ERROR: can't read file: " + file);
317
-            process.exit(1);
318
-        }
319
-        if (ARGS.p != null) {
320
-            if (P_RELATIVE) {
321
-                file = path.relative(path.dirname(ARGS.source_map), file).replace(/\\/g, '/');
322
-            } else {
323
-                var p = parseInt(ARGS.p, 10);
324
-                if (!isNaN(p)) {
325
-                    file = file.replace(/^\/+/, "").split(/\/+/).slice(ARGS.p).join("/");
326
-                }
327
-            }
328
-        }
329
-        SOURCES_CONTENT[file] = code;
330
-        time_it("parse", function(){
331
-            if (ARGS.spidermonkey) {
332
-                var program = JSON.parse(code);
333
-                if (!TOPLEVEL) TOPLEVEL = program;
334
-                else TOPLEVEL.body = TOPLEVEL.body.concat(program.body);
335
-            }
336
-            else if (ARGS.acorn) {
337
-                TOPLEVEL = acorn.parse(code, {
338
-                    locations     : true,
339
-                    sourceFile    : file,
340
-                    program       : TOPLEVEL
341
-                });
342
-            }
343
-            else {
344
-                try {
345
-                    TOPLEVEL = UglifyJS.parse(code, {
346
-                        filename     : file,
347
-                        toplevel     : TOPLEVEL,
348
-                        expression   : ARGS.expr,
349
-                        bare_returns : ARGS.bare_returns,
350
-                    });
351
-                } catch(ex) {
352
-                    if (ex instanceof UglifyJS.JS_Parse_Error) {
353
-                        print_error("Parse error at " + file + ":" + ex.line + "," + ex.col);
354
-                        print_error(ex.message);
355
-                        print_error(ex.stack);
356
-                        process.exit(1);
357
-                    }
358
-                    throw ex;
359
-                }
360
-            };
361
-        });
362
-        cb();
363
-    });
364
-}, function () {
365
-    if (ARGS.acorn || ARGS.spidermonkey) time_it("convert_ast", function(){
366
-        TOPLEVEL = UglifyJS.AST_Node.from_mozilla_ast(TOPLEVEL);
367
-    });
368
-
369
-    if (ARGS.wrap != null) {
370
-        TOPLEVEL = TOPLEVEL.wrap_commonjs(ARGS.wrap, ARGS.export_all);
371
-    }
372
-
373
-    if (ARGS.enclose != null) {
374
-        var arg_parameter_list = ARGS.enclose;
375
-        if (arg_parameter_list === true) {
376
-            arg_parameter_list = [];
377
-        }
378
-        else if (!(arg_parameter_list instanceof Array)) {
379
-            arg_parameter_list = [arg_parameter_list];
380
-        }
381
-        TOPLEVEL = TOPLEVEL.wrap_enclose(arg_parameter_list);
382
-    }
383
-
384
-    if (ARGS.mangle_props || ARGS.name_cache) (function(){
385
-        var reserved = RESERVED ? RESERVED.props : null;
386
-        var cache = readNameCache("props");
387
-        var regex;
388
-
389
-        try {
390
-          regex = ARGS.mangle_regex ? extractRegex(ARGS.mangle_regex) : null;
391
-        } catch (e) {
392
-            print_error("ERROR: Invalid --mangle-regex: " + e.message);
393
-            process.exit(1);
394
-        }
395
-
396
-        TOPLEVEL = UglifyJS.mangle_properties(TOPLEVEL, {
397
-            reserved   : reserved,
398
-            cache      : cache,
399
-            only_cache : !ARGS.mangle_props,
400
-            regex      : regex
401
-        });
402
-        writeNameCache("props", cache);
403
-    })();
404
-
405
-    var SCOPE_IS_NEEDED = COMPRESS || MANGLE || ARGS.lint;
406
-    var TL_CACHE = readNameCache("vars");
407
-
408
-    if (SCOPE_IS_NEEDED) {
409
-        time_it("scope", function(){
410
-            TOPLEVEL.figure_out_scope({ screw_ie8: ARGS.screw_ie8, cache: TL_CACHE });
411
-            if (ARGS.lint) {
412
-                TOPLEVEL.scope_warnings();
413
-            }
414
-        });
415
-    }
416
-
417
-    if (COMPRESS) {
418
-        time_it("squeeze", function(){
419
-            TOPLEVEL = TOPLEVEL.transform(compressor);
420
-        });
421
-    }
422
-
423
-    if (SCOPE_IS_NEEDED) {
424
-        time_it("scope", function(){
425
-            TOPLEVEL.figure_out_scope({ screw_ie8: ARGS.screw_ie8, cache: TL_CACHE });
426
-            if (MANGLE && !TL_CACHE) {
427
-                TOPLEVEL.compute_char_frequency(MANGLE);
428
-            }
429
-        });
430
-    }
431
-
432
-    if (MANGLE) time_it("mangle", function(){
433
-        MANGLE.cache = TL_CACHE;
434
-        TOPLEVEL.mangle_names(MANGLE);
435
-    });
436
-
437
-    writeNameCache("vars", TL_CACHE);
438
-
439
-    if (ARGS.source_map_include_sources) {
440
-        for (var file in SOURCES_CONTENT) {
441
-            if (SOURCES_CONTENT.hasOwnProperty(file)) {
442
-                SOURCE_MAP.get().setSourceContent(file, SOURCES_CONTENT[file]);
443
-            }
444
-        }
445
-    }
446
-
447
-    time_it("generate", function(){
448
-        TOPLEVEL.print(output);
449
-    });
450
-
451
-    output = output.get();
452
-
453
-    if (SOURCE_MAP) {
454
-        fs.writeFileSync(ARGS.source_map, SOURCE_MAP, "utf8");
455
-        var source_map_url = ARGS.source_map_url || (
456
-            P_RELATIVE
457
-                ? path.relative(path.dirname(OUTPUT_FILE), ARGS.source_map)
458
-                : ARGS.source_map
459
-        );
460
-        output += "\n//# sourceMappingURL=" + source_map_url;
461
-    }
462
-
463
-    if (OUTPUT_FILE) {
464
-        fs.writeFileSync(OUTPUT_FILE, output, "utf8");
465
-    } else {
466
-        print(output);
467
-    }
468
-
469
-    if (ARGS.stats) {
470
-        print_error(UglifyJS.string_template("Timing information (compressed {count} files):", {
471
-            count: files.length
472
-        }));
473
-        for (var i in STATS) if (STATS.hasOwnProperty(i)) {
474
-            print_error(UglifyJS.string_template("- {name}: {time}s", {
475
-                name: i,
476
-                time: (STATS[i] / 1000).toFixed(3)
477
-            }));
478
-        }
479
-    }
480
-});
481
-
482
-/* -----[ functions ]----- */
483
-
484
-function normalize(o) {
485
-    for (var i in o) if (o.hasOwnProperty(i) && /-/.test(i)) {
486
-        o[i.replace(/-/g, "_")] = o[i];
487
-        delete o[i];
488
-    }
489
-}
490
-
491
-function getOptions(x, constants) {
492
-    x = ARGS[x];
493
-    if (x == null) return null;
494
-    var ret = {};
495
-    if (x !== "") {
496
-        var ast;
497
-        try {
498
-            ast = UglifyJS.parse(x, { expression: true });
499
-        } catch(ex) {
500
-            if (ex instanceof UglifyJS.JS_Parse_Error) {
501
-                print_error("Error parsing arguments in: " + x);
502
-                process.exit(1);
503
-            }
504
-        }
505
-        ast.walk(new UglifyJS.TreeWalker(function(node){
506
-            if (node instanceof UglifyJS.AST_Seq) return; // descend
507
-            if (node instanceof UglifyJS.AST_Assign) {
508
-                var name = node.left.print_to_string({ beautify: false }).replace(/-/g, "_");
509
-                var value = node.right;
510
-                if (constants)
511
-                    value = new Function("return (" + value.print_to_string() + ")")();
512
-                ret[name] = value;
513
-                return true;    // no descend
514
-            }
515
-            if (node instanceof UglifyJS.AST_Symbol || node instanceof UglifyJS.AST_Binary) {
516
-                var name = node.print_to_string({ beautify: false }).replace(/-/g, "_");
517
-                ret[name] = true;
518
-                return true;    // no descend
519
-            }
520
-            print_error(node.TYPE)
521
-            print_error("Error parsing arguments in: " + x);
522
-            process.exit(1);
523
-        }));
524
-    }
525
-    return ret;
526
-}
527
-
528
-function read_whole_file(filename, cb) {
529
-    if (filename == "-") {
530
-        var chunks = [];
531
-        process.stdin.setEncoding('utf-8');
532
-        process.stdin.on('data', function (chunk) {
533
-            chunks.push(chunk);
534
-        }).on('end', function () {
535
-            cb(null, chunks.join(""));
536
-        });
537
-        process.openStdin();
538
-    } else {
539
-        fs.readFile(filename, "utf-8", cb);
540
-    }
541
-}
542
-
543
-function time_it(name, cont) {
544
-    var t1 = new Date().getTime();
545
-    var ret = cont();
546
-    if (ARGS.stats) {
547
-        var spent = new Date().getTime() - t1;
548
-        if (STATS[name]) STATS[name] += spent;
549
-        else STATS[name] = spent;
550
-    }
551
-    return ret;
552
-}
553
-
554
-function print_error(msg) {
555
-    console.error("%s", msg);
556
-}
557
-
558
-function print(txt) {
559
-    console.log("%s", txt);
560
-}

+ 0
- 26
node_modules/.bin/user-home 查看文件

@@ -1,26 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-var pkg = require('./package.json');
4
-var userHome = require('./');
5
-
6
-function help() {
7
-	console.log([
8
-		pkg.description,
9
-		'',
10
-		'Example',
11
-		'  $ user-home',
12
-		'  /Users/sindresorhus'
13
-	].join('\n'));
14
-}
15
-
16
-if (process.argv.indexOf('--help') !== -1) {
17
-	help();
18
-	return;
19
-}
20
-
21
-if (process.argv.indexOf('--version') !== -1) {
22
-	console.log(pkg.version);
23
-	return;
24
-}
25
-
26
-process.stdout.write(userHome);

+ 0
- 52
node_modules/.bin/which 查看文件

@@ -1,52 +0,0 @@
1
-#!/usr/bin/env node
2
-var which = require("../")
3
-if (process.argv.length < 3)
4
-  usage()
5
-
6
-function usage () {
7
-  console.error('usage: which [-as] program ...')
8
-  process.exit(1)
9
-}
10
-
11
-var all = false
12
-var silent = false
13
-var dashdash = false
14
-var args = process.argv.slice(2).filter(function (arg) {
15
-  if (dashdash || !/^-/.test(arg))
16
-    return true
17
-
18
-  if (arg === '--') {
19
-    dashdash = true
20
-    return false
21
-  }
22
-
23
-  var flags = arg.substr(1).split('')
24
-  for (var f = 0; f < flags.length; f++) {
25
-    var flag = flags[f]
26
-    switch (flag) {
27
-      case 's':
28
-        silent = true
29
-        break
30
-      case 'a':
31
-        all = true
32
-        break
33
-      default:
34
-        console.error('which: illegal option -- ' + flag)
35
-        usage()
36
-    }
37
-  }
38
-  return false
39
-})
40
-
41
-process.exit(args.reduce(function (pv, current) {
42
-  try {
43
-    var f = which.sync(current, { all: all })
44
-    if (all)
45
-      f = f.join('\n')
46
-    if (!silent)
47
-      console.log(f)
48
-    return pv;
49
-  } catch (e) {
50
-    return 1;
51
-  }
52
-}, 0))

+ 0
- 12
node_modules/.bin/win-spawn 查看文件

@@ -1,12 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-var spawn = require('../index.js');
4
-
5
-var args = process.argv.slice(2);
6
-var cmd = '';
7
-while (/^[A-Z_]+\=[^ \=]+$/.test(args[0])) {
8
-  cmd += args.shift() + ' ';
9
-}
10
-cmd += args.shift();
11
-
12
-spawn(cmd, args, { stdio: 'inherit' });

+ 0
- 489
node_modules/.yarn-integrity 查看文件

@@ -1,489 +0,0 @@
1
-{
2
-  "nodeVersion": "v6.13.0",
3
-  "modulesFolders": [
4
-    "node_modules"
5
-  ],
6
-  "flags": [],
7
-  "linkedModules": [],
8
-  "topLevelPatterns": [
9
-    "bootstrap-select@^1.12.4",
10
-    "grunt-autoprefixer@^2.0.0",
11
-    "grunt-contrib-clean@^0.6.0",
12
-    "grunt-contrib-concat@^0.5.0",
13
-    "grunt-contrib-cssmin@^0.10.0",
14
-    "grunt-contrib-htmlmin@^0.3.0",
15
-    "grunt-contrib-jshint@^0.10.0",
16
-    "grunt-contrib-sass@^0.8.1",
17
-    "grunt-contrib-uglify@^0.6.0",
18
-    "grunt-contrib-watch@^0.6.1",
19
-    "grunt@^0.4.5",
20
-    "gulp@^3.8.10",
21
-    "jit-grunt@^0.9.0"
22
-  ],
23
-  "lockfileEntries": {
24
-    "abbrev@1": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8",
25
-    "align-text@^0.1.1": "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117",
26
-    "align-text@^0.1.3": "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117",
27
-    "amdefine@>=0.0.4": "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5",
28
-    "ansi-gray@^0.1.1": "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251",
29
-    "ansi-regex@^0.2.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9",
30
-    "ansi-regex@^0.2.1": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9",
31
-    "ansi-regex@^2.0.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
32
-    "ansi-styles@^1.1.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de",
33
-    "ansi-styles@^2.2.1": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe",
34
-    "ansi-styles@~1.0.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178",
35
-    "ansi-wrap@0.1.0": "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf",
36
-    "archy@^1.0.0": "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
37
-    "argparse@~ 0.1.11": "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c",
38
-    "arr-diff@^4.0.0": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520",
39
-    "arr-flatten@^1.1.0": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1",
40
-    "arr-union@^3.1.0": "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4",
41
-    "array-differ@^1.0.0": "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031",
42
-    "array-each@^1.0.1": "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f",
43
-    "array-find-index@^1.0.1": "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1",
44
-    "array-slice@^1.0.0": "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4",
45
-    "array-uniq@^1.0.2": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6",
46
-    "array-unique@^0.3.2": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428",
47
-    "assign-symbols@^1.0.0": "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367",
48
-    "async@^0.9.0": "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d",
49
-    "async@~0.1.22": "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061",
50
-    "async@~0.2.6": "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1",
51
-    "async@~0.2.9": "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1",
52
-    "atob@^2.0.0": "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d",
53
-    "autoprefixer-core@^5.0.0": "https://registry.yarnpkg.com/autoprefixer-core/-/autoprefixer-core-5.2.1.tgz#e640c414ae419aae21c1ad43c8ea0f3db82a566d",
54
-    "balanced-match@^1.0.0": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767",
55
-    "base@^0.11.1": "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f",
56
-    "beeper@^1.0.0": "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809",
57
-    "bootstrap-select@^1.12.4": "https://registry.yarnpkg.com/bootstrap-select/-/bootstrap-select-1.12.4.tgz#7f15d3c0ce978868d9c09c70f96624f55fa02ee1",
58
-    "brace-expansion@^1.0.0": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd",
59
-    "braces@^2.3.0": "https://registry.yarnpkg.com/braces/-/braces-2.3.0.tgz#a46941cb5fb492156b3d6a656e06c35364e3e66e",
60
-    "browserify-zlib@^0.1.4": "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d",
61
-    "browserslist@~0.4.0": "https://registry.yarnpkg.com/browserslist/-/browserslist-0.4.0.tgz#3bd4ab9199dc1b9150d4d6dba4d9d3aabbc86dd4",
62
-    "builtin-modules@^1.0.0": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f",
63
-    "cache-base@^1.0.1": "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2",
64
-    "camel-case@^1.0.0": "https://registry.yarnpkg.com/camel-case/-/camel-case-1.2.2.tgz#1aca7c4d195359a2ce9955793433c6e5542511f2",
65
-    "camel-case@^1.1.1": "https://registry.yarnpkg.com/camel-case/-/camel-case-1.2.2.tgz#1aca7c4d195359a2ce9955793433c6e5542511f2",
66
-    "camelcase-keys@^2.0.0": "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7",
67
-    "camelcase@^1.0.2": "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39",
68
-    "camelcase@^2.0.0": "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f",
69
-    "caniuse-db@^1.0.30000153": "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000808.tgz#30dfd83009d5704f02dffb37725068ed12a366bb",
70
-    "caniuse-db@^1.0.30000214": "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000808.tgz#30dfd83009d5704f02dffb37725068ed12a366bb",
71
-    "center-align@^0.1.1": "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad",
72
-    "chalk@^0.5.0": "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174",
73
-    "chalk@^0.5.1": "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174",
74
-    "chalk@^1.0.0": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98",
75
-    "chalk@~0.4.0": "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f",
76
-    "chalk@~0.5.0": "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174",
77
-    "change-case@2.1.x": "https://registry.yarnpkg.com/change-case/-/change-case-2.1.6.tgz#514af20513158a68fe7f00dff4c332d6c298d2f9",
78
-    "class-utils@^0.3.5": "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463",
79
-    "clean-css@2.2.x": "https://registry.yarnpkg.com/clean-css/-/clean-css-2.2.23.tgz#0590b5478b516c4903edc2d89bd3fdbdd286328c",
80
-    "clean-css@~2.2.0": "https://registry.yarnpkg.com/clean-css/-/clean-css-2.2.23.tgz#0590b5478b516c4903edc2d89bd3fdbdd286328c",
81
-    "cli@0.6.x": "https://registry.yarnpkg.com/cli/-/cli-0.6.6.tgz#02ad44a380abf27adac5e6f0cdd7b043d74c53e3",
82
-    "cliui@^2.1.0": "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1",
83
-    "clone-stats@^0.0.1": "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1",
84
-    "clone@^0.2.0": "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f",
85
-    "clone@^1.0.0": "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f",
86
-    "clone@^1.0.2": "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f",
87
-    "coffee-script@~1.3.3": "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.3.3.tgz#150d6b4cb522894369efed6a2101c20bc7f4a4f4",
88
-    "collection-visit@^1.0.0": "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0",
89
-    "color-support@^1.1.3": "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2",
90
-    "colors@~0.6.2": "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc",
91
-    "commander@2.2.x": "https://registry.yarnpkg.com/commander/-/commander-2.2.0.tgz#175ad4b9317f3ff615f201c1e57224f55a3e91df",
92
-    "component-emitter@^1.2.1": "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6",
93
-    "concat-map@0.0.1": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b",
94
-    "concat-stream@^1.4.1": "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7",
95
-    "console-browserify@1.1.x": "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10",
96
-    "constant-case@^1.0.0": "https://registry.yarnpkg.com/constant-case/-/constant-case-1.1.2.tgz#8ec2ca5ba343e00aa38dbf4e200fd5ac907efd63",
97
-    "copy-descriptor@^0.1.0": "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d",
98
-    "core-util-is@~1.0.0": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7",
99
-    "currently-unhandled@^0.4.1": "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea",
100
-    "dargs@^2.0.0": "https://registry.yarnpkg.com/dargs/-/dargs-2.1.0.tgz#46c27ffab1ffb1378ef212597213719fe602bc93",
101
-    "date-now@^0.1.4": "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b",
102
-    "dateformat@1.0.2-1.2.3": "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9",
103
-    "dateformat@^2.0.0": "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062",
104
-    "debug@^2.2.0": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f",
105
-    "debug@^2.3.3": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f",
106
-    "debug@~0.7.0": "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39",
107
-    "decamelize@^1.0.0": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290",
108
-    "decamelize@^1.1.2": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290",
109
-    "decode-uri-component@^0.2.0": "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545",
110
-    "defaults@^1.0.0": "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d",
111
-    "define-property@^0.2.5": "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116",
112
-    "define-property@^1.0.0": "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6",
113
-    "deprecated@^0.0.1": "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19",
114
-    "detect-file@^1.0.0": "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7",
115
-    "diff@~1.2.1": "https://registry.yarnpkg.com/diff/-/diff-1.2.2.tgz#27f936a1f5831581024e9ac78fbda7330ce79e85",
116
-    "dom-serializer@0": "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82",
117
-    "domelementtype@1": "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2",
118
-    "domelementtype@~1.1.1": "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b",
119
-    "domhandler@2.3": "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738",
120
-    "domutils@1.5": "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf",
121
-    "dot-case@^1.0.0": "https://registry.yarnpkg.com/dot-case/-/dot-case-1.1.2.tgz#1e73826900de28d6de5480bc1de31d0842b06bec",
122
-    "duplexer2@0.0.2": "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db",
123
-    "end-of-stream@~0.1.5": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf",
124
-    "entities@1.0": "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26",
125
-    "entities@~1.1.1": "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0",
126
-    "error-ex@^1.2.0": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc",
127
-    "es6-promise@~2.3.0": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-2.3.0.tgz#96edb9f2fdb01995822b263dd8aadab6748181bc",
128
-    "escape-string-regexp@^1.0.0": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
129
-    "escape-string-regexp@^1.0.2": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
130
-    "escape-string-regexp@^1.0.5": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
131
-    "esprima@~ 1.0.2": "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad",
132
-    "eventemitter2@~0.4.13": "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab",
133
-    "exit@0.1.2": "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c",
134
-    "exit@0.1.x": "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c",
135
-    "exit@~0.1.1": "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c",
136
-    "expand-brackets@^2.1.4": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622",
137
-    "expand-tilde@^2.0.0": "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502",
138
-    "expand-tilde@^2.0.2": "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502",
139
-    "extend-shallow@^2.0.1": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f",
140
-    "extend-shallow@^3.0.0": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8",
141
-    "extend@^3.0.0": "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444",
142
-    "extglob@^2.0.2": "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543",
143
-    "fancy-log@^1.1.0": "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1",
144
-    "faye-websocket@~0.4.3": "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.4.4.tgz#c14c5b3bf14d7417ffbfd990c0a7495cd9f337bc",
145
-    "figures@^1.0.1": "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e",
146
-    "fill-range@^4.0.0": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7",
147
-    "find-index@^0.1.1": "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4",
148
-    "find-up@^1.0.0": "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
149
-    "findup-sync@^2.0.0": "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc",
150
-    "findup-sync@~0.1.2": "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683",
151
-    "fined@^1.0.1": "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476",
152
-    "first-chunk-stream@^1.0.0": "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e",
153
-    "flagged-respawn@^1.0.0": "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7",
154
-    "for-in@^1.0.1": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80",
155
-    "for-in@^1.0.2": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80",
156
-    "for-own@^1.0.0": "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b",
157
-    "fragment-cache@^0.2.1": "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19",
158
-    "gaze@^0.5.1": "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f",
159
-    "gaze@~0.5.1": "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f",
160
-    "get-stdin@^4.0.1": "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe",
161
-    "get-value@^2.0.3": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28",
162
-    "get-value@^2.0.6": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28",
163
-    "getobject@~0.1.0": "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c",
164
-    "glob-stream@^3.1.5": "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b",
165
-    "glob-watcher@^0.0.6": "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b",
166
-    "glob2base@^0.0.12": "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56",
167
-    "glob@^4.3.1": "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f",
168
-    "glob@~ 3.2.1": "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d",
169
-    "glob@~3.1.21": "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd",
170
-    "glob@~3.2.9": "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d",
171
-    "global-modules@^1.0.0": "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea",
172
-    "global-prefix@^1.0.1": "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe",
173
-    "globule@~0.1.0": "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5",
174
-    "glogg@^1.0.0": "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810",
175
-    "graceful-fs@^3.0.0": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818",
176
-    "graceful-fs@^4.1.2": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
177
-    "graceful-fs@~1.2.0": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364",
178
-    "grunt-autoprefixer@^2.0.0": "https://registry.yarnpkg.com/grunt-autoprefixer/-/grunt-autoprefixer-2.2.0.tgz#cc56d9faf83fb9a7231ab3c618a385ce2b84e11b",
179
-    "grunt-contrib-clean@^0.6.0": "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz#f532dba4b8212674c7c013e146bda6638b9048f6",
180
-    "grunt-contrib-concat@^0.5.0": "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-0.5.1.tgz#953c6efdfdfd2c107ab9c85077f2d4b24d31cd49",
181
-    "grunt-contrib-cssmin@^0.10.0": "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.10.0.tgz#e05f341e753a9674b2b1070220fdcbac22079418",
182
-    "grunt-contrib-htmlmin@^0.3.0": "https://registry.yarnpkg.com/grunt-contrib-htmlmin/-/grunt-contrib-htmlmin-0.3.0.tgz#c960802048f609925e9d0ef1b0670904b4c5a3fd",
183
-    "grunt-contrib-jshint@^0.10.0": "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-0.10.0.tgz#57ebccca87e8f327af6645d8a3c586d4845e4d81",
184
-    "grunt-contrib-sass@^0.8.1": "https://registry.yarnpkg.com/grunt-contrib-sass/-/grunt-contrib-sass-0.8.1.tgz#8de924480dc12a51d35abe96a721682afc88d800",
185
-    "grunt-contrib-uglify@^0.6.0": "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-0.6.0.tgz#3a271d4dc4daba64691d0d0d08550ec54a7ec0ab",
186
-    "grunt-contrib-watch@^0.6.1": "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-0.6.1.tgz#64fdcba25a635f5b4da1b6ce6f90da0aeb6e3f15",
187
-    "grunt-legacy-log-utils@~0.1.1": "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz#c0706b9dd9064e116f36f23fe4e6b048672c0f7e",
188
-    "grunt-legacy-log@~0.1.0": "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz#ec29426e803021af59029f87d2f9cd7335a05531",
189
-    "grunt-legacy-util@~0.2.0": "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz#93324884dbf7e37a9ff7c026dff451d94a9e554b",
190
-    "grunt@^0.4.5": "https://registry.yarnpkg.com/grunt/-/grunt-0.4.5.tgz#56937cd5194324adff6d207631832a9d6ba4e7f0",
191
-    "gulp-util@^3.0.0": "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f",
192
-    "gulp@^3.8.10": "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4",
193
-    "gulplog@^1.0.0": "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5",
194
-    "gzip-size@^0.2.0": "https://registry.yarnpkg.com/gzip-size/-/gzip-size-0.2.0.tgz#e3a2a191205fe56ee326f5c271435dfaecfb3e1c",
195
-    "gzip-size@^1.0.0": "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f",
196
-    "has-ansi@^0.1.0": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e",
197
-    "has-ansi@^2.0.0": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91",
198
-    "has-color@~0.1.0": "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f",
199
-    "has-gulplog@^0.1.0": "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce",
200
-    "has-value@^0.3.1": "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f",
201
-    "has-value@^1.0.0": "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177",
202
-    "has-values@^0.1.4": "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771",
203
-    "has-values@^1.0.0": "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f",
204
-    "homedir-polyfill@^1.0.1": "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc",
205
-    "hooker@~0.2.3": "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959",
206
-    "hosted-git-info@^2.1.4": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c",
207
-    "html-minifier@~0.6.0": "https://registry.yarnpkg.com/html-minifier/-/html-minifier-0.6.9.tgz#5105dc236f5e7e1a8ba651d4ab981386fc7abe53",
208
-    "htmlparser2@3.8.x": "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068",
209
-    "iconv-lite@~0.2.11": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8",
210
-    "indent-string@^2.1.0": "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80",
211
-    "inflight@^1.0.4": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9",
212
-    "inherits@1": "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b",
213
-    "inherits@2": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de",
214
-    "inherits@^2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de",
215
-    "inherits@~2.0.1": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de",
216
-    "inherits@~2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de",
217
-    "ini@^1.3.4": "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927",
218
-    "interpret@^1.0.0": "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614",
219
-    "is-absolute@^1.0.0": "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576",
220
-    "is-accessor-descriptor@^0.1.6": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6",
221
-    "is-accessor-descriptor@^1.0.0": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656",
222
-    "is-arrayish@^0.2.1": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d",
223
-    "is-buffer@^1.1.5": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be",
224
-    "is-builtin-module@^1.0.0": "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe",
225
-    "is-data-descriptor@^0.1.4": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56",
226
-    "is-data-descriptor@^1.0.0": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7",
227
-    "is-descriptor@^0.1.0": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca",
228
-    "is-descriptor@^1.0.0": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec",
229
-    "is-extendable@^0.1.0": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89",
230
-    "is-extendable@^0.1.1": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89",
231
-    "is-extendable@^1.0.1": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4",
232
-    "is-extglob@^2.1.0": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2",
233
-    "is-finite@^1.0.0": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa",
234
-    "is-glob@^3.1.0": "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a",
235
-    "is-lower-case@^1.0.0": "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393",
236
-    "is-number@^3.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195",
237
-    "is-odd@^1.0.0": "https://registry.yarnpkg.com/is-odd/-/is-odd-1.0.0.tgz#3b8a932eb028b3775c39bb09e91767accdb69088",
238
-    "is-plain-object@^2.0.1": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677",
239
-    "is-plain-object@^2.0.3": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677",
240
-    "is-plain-object@^2.0.4": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677",
241
-    "is-relative@^1.0.0": "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d",
242
-    "is-unc-path@^1.0.0": "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d",
243
-    "is-upper-case@^1.0.0": "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f",
244
-    "is-utf8@^0.2.0": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72",
245
-    "is-windows@^1.0.1": "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d",
246
-    "isarray@0.0.1": "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf",
247
-    "isarray@1.0.0": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11",
248
-    "isarray@~1.0.0": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11",
249
-    "isexe@^2.0.0": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
250
-    "isobject@^2.0.0": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89",
251
-    "isobject@^3.0.0": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df",
252
-    "isobject@^3.0.1": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df",
253
-    "jit-grunt@^0.9.0": "https://registry.yarnpkg.com/jit-grunt/-/jit-grunt-0.9.1.tgz#f66293df57fe373eec03d6954d19661663406193",
254
-    "jquery@>=1.8": "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca",
255
-    "js-base64@~2.1.8": "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce",
256
-    "js-yaml@~2.0.5": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-2.0.5.tgz#a25ae6509999e97df278c6719da11bd0687743a8",
257
-    "jshint@~2.5.0": "https://registry.yarnpkg.com/jshint/-/jshint-2.5.11.tgz#e2d95858bbb1aa78300108a2e81099fb095622e0",
258
-    "kind-of@^3.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64",
259
-    "kind-of@^3.0.3": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64",
260
-    "kind-of@^3.1.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64",
261
-    "kind-of@^3.2.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64",
262
-    "kind-of@^4.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57",
263
-    "kind-of@^5.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d",
264
-    "kind-of@^5.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d",
265
-    "kind-of@^6.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051",
266
-    "kind-of@^6.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051",
267
-    "lazy-cache@^1.0.3": "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e",
268
-    "lazy-cache@^2.0.2": "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264",
269
-    "liftoff@^2.1.0": "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec",
270
-    "load-json-file@^1.0.0": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0",
271
-    "lodash._basecopy@^3.0.0": "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36",
272
-    "lodash._basetostring@^3.0.0": "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5",
273
-    "lodash._basevalues@^3.0.0": "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7",
274
-    "lodash._getnative@^3.0.0": "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5",
275
-    "lodash._isiterateecall@^3.0.0": "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c",
276
-    "lodash._reescape@^3.0.0": "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a",
277
-    "lodash._reevaluate@^3.0.0": "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed",
278
-    "lodash._reinterpolate@^3.0.0": "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d",
279
-    "lodash._root@^3.0.0": "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692",
280
-    "lodash.escape@^3.0.0": "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698",
281
-    "lodash.isarguments@^3.0.0": "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a",
282
-    "lodash.isarray@^3.0.0": "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55",
283
-    "lodash.keys@^3.0.0": "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a",
284
-    "lodash.restparam@^3.0.0": "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805",
285
-    "lodash.template@^3.0.0": "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f",
286
-    "lodash.templatesettings@^3.0.0": "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5",
287
-    "lodash@^2.4.1": "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e",
288
-    "lodash@~0.9.2": "https://registry.yarnpkg.com/lodash/-/lodash-0.9.2.tgz#8f3499c5245d346d682e5b0d3b40767e09f1a92c",
289
-    "lodash@~1.0.1": "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551",
290
-    "lodash@~2.4.1": "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e",
291
-    "longest@^1.0.1": "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097",
292
-    "loud-rejection@^1.0.0": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f",
293
-    "lower-case@^1.0.0": "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac",
294
-    "lower-case@^1.1.0": "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac",
295
-    "lower-case@^1.1.1": "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac",
296
-    "lru-cache@2": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952",
297
-    "make-iterator@^1.0.0": "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b",
298
-    "map-cache@^0.2.0": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf",
299
-    "map-cache@^0.2.2": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf",
300
-    "map-obj@^1.0.0": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d",
301
-    "map-obj@^1.0.1": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d",
302
-    "map-visit@^1.0.0": "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f",
303
-    "maxmin@^1.0.0": "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61",
304
-    "maxmin@~0.2.0": "https://registry.yarnpkg.com/maxmin/-/maxmin-0.2.2.tgz#a36ced8cc22e3abcd108cfb797a3a4b40275593f",
305
-    "meow@^3.1.0": "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb",
306
-    "micromatch@^3.0.4": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.5.tgz#d05e168c206472dfbca985bfef4f57797b4cd4ba",
307
-    "minimatch@0.3": "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd",
308
-    "minimatch@1.0.x": "https://registry.yarnpkg.com/minimatch/-/minimatch-1.0.0.tgz#e0dd2120b49e1b724ce8d714c520822a9438576d",
309
-    "minimatch@^2.0.1": "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7",
310
-    "minimatch@~0.2.11": "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a",
311
-    "minimatch@~0.2.12": "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a",
312
-    "minimist@0.0.8": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d",
313
-    "minimist@^1.1.0": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284",
314
-    "minimist@^1.1.3": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284",
315
-    "mixin-deep@^1.2.0": "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe",
316
-    "mkdirp@^0.5.0": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903",
317
-    "ms@2.0.0": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8",
318
-    "multipipe@^0.1.2": "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b",
319
-    "nanomatch@^1.2.5": "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.7.tgz#53cd4aa109ff68b7f869591fdc9d10daeeea3e79",
320
-    "natives@^1.1.0": "https://registry.yarnpkg.com/natives/-/natives-1.1.1.tgz#011acce1f7cbd87f7ba6b3093d6cd9392be1c574",
321
-    "nopt@~1.0.10": "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee",
322
-    "nopt@~2.0.0": "https://registry.yarnpkg.com/nopt/-/nopt-2.0.0.tgz#ca7416f20a5e3f9c3b86180f96295fa3d0b52e0d",
323
-    "noptify@~0.0.3": "https://registry.yarnpkg.com/noptify/-/noptify-0.0.3.tgz#58f654a73d9753df0c51d9686dc92104a67f4bbb",
324
-    "normalize-package-data@^2.3.2": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f",
325
-    "normalize-package-data@^2.3.4": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f",
326
-    "num2fraction@^1.1.0": "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede",
327
-    "number-is-nan@^1.0.0": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d",
328
-    "object-assign@^3.0.0": "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2",
329
-    "object-assign@^4.0.1": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863",
330
-    "object-assign@^4.1.0": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863",
331
-    "object-copy@^0.1.0": "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c",
332
-    "object-visit@^1.0.0": "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb",
333
-    "object.defaults@^1.1.0": "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf",
334
-    "object.map@^1.0.0": "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37",
335
-    "object.pick@^1.2.0": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747",
336
-    "object.pick@^1.3.0": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747",
337
-    "once@^1.3.0": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1",
338
-    "once@~1.3.0": "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20",
339
-    "orchestrator@^0.3.0": "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e",
340
-    "ordered-read-streams@^0.1.0": "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126",
341
-    "os-homedir@^1.0.0": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3",
342
-    "pako@~0.2.0": "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75",
343
-    "param-case@^1.0.0": "https://registry.yarnpkg.com/param-case/-/param-case-1.1.2.tgz#dcb091a43c259b9228f1c341e7b6a44ea0bf9743",
344
-    "parse-filepath@^1.0.1": "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891",
345
-    "parse-json@^2.2.0": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9",
346
-    "parse-passwd@^1.0.0": "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6",
347
-    "pascal-case@^1.0.0": "https://registry.yarnpkg.com/pascal-case/-/pascal-case-1.1.2.tgz#3e5d64a20043830a7c49344c2d74b41be0c9c99b",
348
-    "pascalcase@^0.1.1": "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14",
349
-    "path-case@^1.0.0": "https://registry.yarnpkg.com/path-case/-/path-case-1.1.2.tgz#50ce6ba0d3bed3dd0b5c2a9c4553697434409514",
350
-    "path-exists@^2.0.0": "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b",
351
-    "path-parse@^1.0.5": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1",
352
-    "path-root-regex@^0.1.0": "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d",
353
-    "path-root@^0.1.1": "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7",
354
-    "path-type@^1.0.0": "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441",
355
-    "pify@^2.0.0": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c",
356
-    "pinkie-promise@^2.0.0": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa",
357
-    "pinkie@^2.0.0": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870",
358
-    "posix-character-classes@^0.1.0": "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab",
359
-    "postcss@~4.1.12": "https://registry.yarnpkg.com/postcss/-/postcss-4.1.16.tgz#4c449b4c8af9df3caf6d37f8e1e575d0361758dc",
360
-    "pretty-bytes@^0.1.0": "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-0.1.2.tgz#cd90294d58a1ca4e8a5d0fb9c8225998881acf00",
361
-    "pretty-bytes@^1.0.0": "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84",
362
-    "pretty-bytes@~0.1.0": "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-0.1.2.tgz#cd90294d58a1ca4e8a5d0fb9c8225998881acf00",
363
-    "pretty-hrtime@^1.0.0": "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1",
364
-    "process-nextick-args@~2.0.0": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa",
365
-    "qs@~0.5.2": "https://registry.yarnpkg.com/qs/-/qs-0.5.6.tgz#31b1ad058567651c526921506b9a8793911a0384",
366
-    "read-pkg-up@^1.0.1": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02",
367
-    "read-pkg@^1.0.0": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28",
368
-    "readable-stream@1.1": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e",
369
-    "readable-stream@>=1.0.33-1 <1.1.0-0": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c",
370
-    "readable-stream@^2.1.5": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071",
371
-    "readable-stream@^2.2.2": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071",
372
-    "readable-stream@~1.1.9": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9",
373
-    "rechoir@^0.6.2": "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384",
374
-    "redent@^1.0.0": "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde",
375
-    "regex-not@^1.0.0": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9",
376
-    "relateurl@0.2.x": "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9",
377
-    "repeat-element@^1.1.2": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a",
378
-    "repeat-string@^1.5.2": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637",
379
-    "repeat-string@^1.6.1": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637",
380
-    "repeating@^2.0.0": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda",
381
-    "replace-ext@0.0.1": "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924",
382
-    "resolve-dir@^1.0.0": "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43",
383
-    "resolve-dir@^1.0.1": "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43",
384
-    "resolve-url@^0.2.1": "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a",
385
-    "resolve@^1.1.6": "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36",
386
-    "resolve@^1.1.7": "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36",
387
-    "right-align@^0.1.1": "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef",
388
-    "rimraf@~2.2.1": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582",
389
-    "rimraf@~2.2.8": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582",
390
-    "safe-buffer@~5.1.0": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853",
391
-    "safe-buffer@~5.1.1": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853",
392
-    "semver@2 || 3 || 4 || 5": "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab",
393
-    "semver@^4.1.0": "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da",
394
-    "sentence-case@^1.0.0": "https://registry.yarnpkg.com/sentence-case/-/sentence-case-1.1.3.tgz#8034aafc2145772d3abe1509aa42c9e1042dc139",
395
-    "sentence-case@^1.1.1": "https://registry.yarnpkg.com/sentence-case/-/sentence-case-1.1.3.tgz#8034aafc2145772d3abe1509aa42c9e1042dc139",
396
-    "sentence-case@^1.1.2": "https://registry.yarnpkg.com/sentence-case/-/sentence-case-1.1.3.tgz#8034aafc2145772d3abe1509aa42c9e1042dc139",
397
-    "sequencify@~0.0.7": "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c",
398
-    "set-getter@^0.1.0": "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376",
399
-    "set-value@^0.4.3": "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1",
400
-    "set-value@^2.0.0": "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274",
401
-    "shelljs@0.3.x": "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1",
402
-    "sigmund@~1.0.0": "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590",
403
-    "signal-exit@^3.0.0": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d",
404
-    "snake-case@^1.0.0": "https://registry.yarnpkg.com/snake-case/-/snake-case-1.1.2.tgz#0c2f25e305158d9a18d3d977066187fef8a5a66a",
405
-    "snake-case@^1.1.0": "https://registry.yarnpkg.com/snake-case/-/snake-case-1.1.2.tgz#0c2f25e305158d9a18d3d977066187fef8a5a66a",
406
-    "snapdragon-node@^2.0.1": "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b",
407
-    "snapdragon-util@^3.0.1": "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2",
408
-    "snapdragon@^0.8.1": "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370",
409
-    "source-map-resolve@^0.5.0": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a",
410
-    "source-map-url@^0.4.0": "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3",
411
-    "source-map@0.1.34": "https://registry.yarnpkg.com/source-map/-/source-map-0.1.34.tgz#a7cfe89aec7b1682c3b198d0acfb47d7d090566b",
412
-    "source-map@^0.3.0": "https://registry.yarnpkg.com/source-map/-/source-map-0.3.0.tgz#8586fb9a5a005e5b501e21cd18b6f21b457ad1f9",
413
-    "source-map@^0.5.6": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc",
414
-    "source-map@~0.4.2": "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b",
415
-    "source-map@~0.5.1": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc",
416
-    "sparkles@^1.0.0": "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3",
417
-    "spdx-correct@~1.0.0": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40",
418
-    "spdx-expression-parse@~1.0.0": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c",
419
-    "spdx-license-ids@^1.0.2": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57",
420
-    "split-string@^3.0.1": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2",
421
-    "split-string@^3.0.2": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2",
422
-    "static-extend@^0.1.1": "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6",
423
-    "stream-consume@~0.1.0": "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f",
424
-    "string_decoder@~0.10.x": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94",
425
-    "string_decoder@~1.0.3": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab",
426
-    "strip-ansi@^0.3.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220",
427
-    "strip-ansi@^3.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
428
-    "strip-ansi@~0.1.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991",
429
-    "strip-bom@^1.0.0": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794",
430
-    "strip-bom@^2.0.0": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e",
431
-    "strip-indent@^1.0.1": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2",
432
-    "strip-json-comments@1.0.x": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91",
433
-    "supports-color@^0.2.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a",
434
-    "supports-color@^2.0.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7",
435
-    "swap-case@^1.0.0": "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3",
436
-    "through2@^0.6.1": "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48",
437
-    "through2@^2.0.0": "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be",
438
-    "tildify@^1.0.0": "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a",
439
-    "time-stamp@^1.0.0": "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3",
440
-    "tiny-lr-fork@0.0.5": "https://registry.yarnpkg.com/tiny-lr-fork/-/tiny-lr-fork-0.0.5.tgz#1e99e1e2a8469b736ab97d97eefa98c71f76ed0a",
441
-    "title-case@^1.0.0": "https://registry.yarnpkg.com/title-case/-/title-case-1.1.2.tgz#fae4a6ae546bfa22d083a0eea910a40d12ed4f5a",
442
-    "to-object-path@^0.3.0": "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af",
443
-    "to-regex-range@^2.1.0": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38",
444
-    "to-regex@^3.0.1": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae",
445
-    "trim-newlines@^1.0.0": "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613",
446
-    "typedarray@^0.0.6": "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777",
447
-    "uglify-js@2.4.x": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.4.24.tgz#fad5755c1e1577658bb06ff9ab6e548c95bebd6e",
448
-    "uglify-js@^2.4.0": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd",
449
-    "uglify-to-browserify@~1.0.0": "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7",
450
-    "unc-path-regex@^0.1.2": "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa",
451
-    "underscore.string@~2.2.1": "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19",
452
-    "underscore.string@~2.3.3": "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d",
453
-    "underscore.string@~2.4.0": "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b",
454
-    "underscore@1.6.x": "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8",
455
-    "underscore@~1.7.0": "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209",
456
-    "union-value@^1.0.0": "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4",
457
-    "unique-stream@^1.0.0": "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b",
458
-    "unset-value@^1.0.0": "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559",
459
-    "upper-case-first@^1.0.0": "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115",
460
-    "upper-case-first@^1.1.0": "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115",
461
-    "upper-case@^1.0.0": "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598",
462
-    "upper-case@^1.0.3": "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598",
463
-    "upper-case@^1.1.0": "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598",
464
-    "upper-case@^1.1.1": "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598",
465
-    "uri-path@0.0.2": "https://registry.yarnpkg.com/uri-path/-/uri-path-0.0.2.tgz#803eb01f2feb17927dcce0f6187e72b75f53f554",
466
-    "urix@^0.1.0": "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72",
467
-    "use@^2.0.0": "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8",
468
-    "user-home@^1.1.1": "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190",
469
-    "util-deprecate@~1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf",
470
-    "v8flags@^2.0.2": "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4",
471
-    "validate-npm-package-license@^3.0.1": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc",
472
-    "vinyl-fs@^0.3.0": "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6",
473
-    "vinyl@^0.4.0": "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847",
474
-    "vinyl@^0.5.0": "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde",
475
-    "which@^1.0.5": "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a",
476
-    "which@^1.2.14": "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a",
477
-    "which@~1.0.5": "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f",
478
-    "win-spawn@^2.0.0": "https://registry.yarnpkg.com/win-spawn/-/win-spawn-2.0.0.tgz#397a29130ec98d0aa0bc86baa4621393effd0b07",
479
-    "window-size@0.1.0": "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d",
480
-    "wordwrap@0.0.2": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f",
481
-    "wrappy@1": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
482
-    "xtend@>=4.0.0 <4.1.0-0": "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af",
483
-    "xtend@~4.0.1": "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af",
484
-    "yargs@~3.10.0": "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1",
485
-    "yargs@~3.5.4": "https://registry.yarnpkg.com/yargs/-/yargs-3.5.4.tgz#d8aff8f665e94c34bd259bdebd1bfaf0ddd35361"
486
-  },
487
-  "files": [],
488
-  "artifacts": {}
489
-}

+ 0
- 46
node_modules/abbrev/LICENSE 查看文件

@@ -1,46 +0,0 @@
1
-This software is dual-licensed under the ISC and MIT licenses.
2
-You may use this software under EITHER of the following licenses.
3
-
4
-----------
5
-
6
-The ISC License
7
-
8
-Copyright (c) Isaac Z. Schlueter and Contributors
9
-
10
-Permission to use, copy, modify, and/or distribute this software for any
11
-purpose with or without fee is hereby granted, provided that the above
12
-copyright notice and this permission notice appear in all copies.
13
-
14
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
15
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
17
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
20
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21
-
22
-----------
23
-
24
-Copyright Isaac Z. Schlueter and Contributors
25
-All rights reserved.
26
-
27
-Permission is hereby granted, free of charge, to any person
28
-obtaining a copy of this software and associated documentation
29
-files (the "Software"), to deal in the Software without
30
-restriction, including without limitation the rights to use,
31
-copy, modify, merge, publish, distribute, sublicense, and/or sell
32
-copies of the Software, and to permit persons to whom the
33
-Software is furnished to do so, subject to the following
34
-conditions:
35
-
36
-The above copyright notice and this permission notice shall be
37
-included in all copies or substantial portions of the Software.
38
-
39
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46
-OTHER DEALINGS IN THE SOFTWARE.

+ 0
- 23
node_modules/abbrev/README.md 查看文件

@@ -1,23 +0,0 @@
1
-# abbrev-js
2
-
3
-Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
4
-
5
-Usage:
6
-
7
-    var abbrev = require("abbrev");
8
-    abbrev("foo", "fool", "folding", "flop");
9
-    
10
-    // returns:
11
-    { fl: 'flop'
12
-    , flo: 'flop'
13
-    , flop: 'flop'
14
-    , fol: 'folding'
15
-    , fold: 'folding'
16
-    , foldi: 'folding'
17
-    , foldin: 'folding'
18
-    , folding: 'folding'
19
-    , foo: 'foo'
20
-    , fool: 'fool'
21
-    }
22
-
23
-This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.

+ 0
- 61
node_modules/abbrev/abbrev.js 查看文件

@@ -1,61 +0,0 @@
1
-module.exports = exports = abbrev.abbrev = abbrev
2
-
3
-abbrev.monkeyPatch = monkeyPatch
4
-
5
-function monkeyPatch () {
6
-  Object.defineProperty(Array.prototype, 'abbrev', {
7
-    value: function () { return abbrev(this) },
8
-    enumerable: false, configurable: true, writable: true
9
-  })
10
-
11
-  Object.defineProperty(Object.prototype, 'abbrev', {
12
-    value: function () { return abbrev(Object.keys(this)) },
13
-    enumerable: false, configurable: true, writable: true
14
-  })
15
-}
16
-
17
-function abbrev (list) {
18
-  if (arguments.length !== 1 || !Array.isArray(list)) {
19
-    list = Array.prototype.slice.call(arguments, 0)
20
-  }
21
-  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
22
-    args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
23
-  }
24
-
25
-  // sort them lexicographically, so that they're next to their nearest kin
26
-  args = args.sort(lexSort)
27
-
28
-  // walk through each, seeing how much it has in common with the next and previous
29
-  var abbrevs = {}
30
-    , prev = ""
31
-  for (var i = 0, l = args.length ; i < l ; i ++) {
32
-    var current = args[i]
33
-      , next = args[i + 1] || ""
34
-      , nextMatches = true
35
-      , prevMatches = true
36
-    if (current === next) continue
37
-    for (var j = 0, cl = current.length ; j < cl ; j ++) {
38
-      var curChar = current.charAt(j)
39
-      nextMatches = nextMatches && curChar === next.charAt(j)
40
-      prevMatches = prevMatches && curChar === prev.charAt(j)
41
-      if (!nextMatches && !prevMatches) {
42
-        j ++
43
-        break
44
-      }
45
-    }
46
-    prev = current
47
-    if (j === cl) {
48
-      abbrevs[current] = current
49
-      continue
50
-    }
51
-    for (var a = current.substr(0, j) ; j <= cl ; j ++) {
52
-      abbrevs[a] = current
53
-      a += current.charAt(j)
54
-    }
55
-  }
56
-  return abbrevs
57
-}
58
-
59
-function lexSort (a, b) {
60
-  return a === b ? 0 : a > b ? 1 : -1
61
-}

+ 0
- 21
node_modules/abbrev/package.json 查看文件

@@ -1,21 +0,0 @@
1
-{
2
-  "name": "abbrev",
3
-  "version": "1.1.1",
4
-  "description": "Like ruby's abbrev module, but in js",
5
-  "author": "Isaac Z. Schlueter <i@izs.me>",
6
-  "main": "abbrev.js",
7
-  "scripts": {
8
-    "test": "tap test.js --100",
9
-    "preversion": "npm test",
10
-    "postversion": "npm publish",
11
-    "postpublish": "git push origin --all; git push origin --tags"
12
-  },
13
-  "repository": "http://github.com/isaacs/abbrev-js",
14
-  "license": "ISC",
15
-  "devDependencies": {
16
-    "tap": "^10.1"
17
-  },
18
-  "files": [
19
-    "abbrev.js"
20
-  ]
21
-}

+ 0
- 21
node_modules/align-text/LICENSE 查看文件

@@ -1,21 +0,0 @@
1
-The MIT License (MIT)
2
-
3
-Copyright (c) 2015, Jon Schlinkert.
4
-
5
-Permission is hereby granted, free of charge, to any person obtaining a copy
6
-of this software and associated documentation files (the "Software"), to deal
7
-in the Software without restriction, including without limitation the rights
8
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
-copies of the Software, and to permit persons to whom the Software is
10
-furnished to do so, subject to the following conditions:
11
-
12
-The above copyright notice and this permission notice shall be included in
13
-all copies or substantial portions of the Software.
14
-
15
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
-THE SOFTWARE.

+ 0
- 236
node_modules/align-text/README.md 查看文件

@@ -1,236 +0,0 @@
1
-# align-text [![NPM version](https://badge.fury.io/js/align-text.svg)](http://badge.fury.io/js/align-text)  [![Build Status](https://travis-ci.org/jonschlinkert/align-text.svg)](https://travis-ci.org/jonschlinkert/align-text)
2
-
3
-> Align the text in a string.
4
-
5
-**Examples**
6
-
7
-Align text values in an array:
8
-
9
-```js
10
-align([1, 2, 3, 100]);
11
-//=> ['  1', '  2', '  3', '100']
12
-```
13
-
14
-Or [do stuff like this](./example.js):
15
-
16
-[![screen shot 2015-06-09 at 2 08 34 am](https://cloud.githubusercontent.com/assets/383994/8051597/7b716fbc-0e4c-11e5-9aef-4493fd22db58.png)](./example.js)
17
-
18
-Visit [the example](./example.js) to see how this works.
19
-
20
-## Install
21
-
22
-Install with [npm](https://www.npmjs.com/)
23
-
24
-```sh
25
-$ npm i align-text --save
26
-```
27
-
28
-## Usage
29
-
30
-```js
31
-var align = require('align-text');
32
-align(text, callback_function_or_integer);
33
-```
34
-
35
-**Params**
36
-
37
-* `text` can be a **string or array**. If a string is passed, a string will be returned. If an array is passed, an array will be returned.
38
-* `callback|integer`: if an integer, the text will be indented by that amount. If a function, it must return an integer representing the amount of leading indentation to use as `align` loops over each line.
39
-
40
-**Example**
41
-
42
-```js
43
-align(text, 4);
44
-```
45
-
46
-Would align:
47
-
48
-```
49
-abc
50
-abc
51
-abc
52
-```
53
-
54
-To:
55
-
56
-```
57
-    abc
58
-    abc
59
-    abc
60
-```
61
-
62
-## callback
63
-
64
-### params
65
-
66
-The callback is used to determine the indentation of each line and gets the following params:
67
-
68
-* `len` the length of the "current" line
69
-* `longest` the length of the longest line
70
-* `line` the current line (string) being aligned
71
-* `lines` the array of all lines
72
-
73
-### return
74
-
75
-The callback may return:
76
-
77
-* an integer that represents the number of spaces to use for padding,
78
-* or an object with the following properties:
79
-  - `indent`: **{Number}** the amount of indentation to use. Default is `0` when an object is returned.
80
-  - `character`: **{String}** the character to use for indentation. Default is `''` (empty string) when an object is returned.
81
-  - `prefix`: **{String}** leading characters to use at the beginning of each line. `''` (empty string) when an object is returned.
82
-
83
-**Integer example:**
84
-
85
-```js
86
-// calculate half the difference between the length
87
-// of the current line and the longest line
88
-function centerAlign(len, longest, line, lines) {
89
-  return Math.floor((longest - len) / 2);
90
-}
91
-```
92
-
93
-**Object example:**
94
-
95
-```js
96
-function centerAlign(len, longest, line, lines) {
97
-  return {
98
-    character: '\t',
99
-    indent: Math.floor((longest - len) / 2),
100
-    prefix: '~ ',
101
-  }
102
-}
103
-```
104
-
105
-## Usage examples
106
-
107
-### Center align
108
-
109
-Using the `centerAlign` function from above:
110
-
111
-```js
112
-align(text, centerAlign);
113
-```
114
-
115
-Would align this text:
116
-
117
-```js
118
-Lorem ipsum dolor sit amet
119
-consectetur adipiscin
120
-elit, sed do eiusmod tempor incididun
121
-ut labore et dolor
122
-magna aliqua. Ut enim ad mini
123
-veniam, quis
124
-```
125
-
126
-Resulting in this:
127
-
128
-```
129
-     Lorem ipsum dolor sit amet,
130
-        consectetur adipiscing
131
-elit, sed do eiusmod tempor incididunt
132
-         ut labore et dolore
133
-    magna aliqua. Ut enim ad minim
134
-             veniam, quis
135
-```
136
-
137
-**Customize**
138
-
139
-If you wanted to add more padding on the left, just pass the number in the callback.
140
-
141
-For example, to add 4 spaces before every line:
142
-
143
-```js
144
-function centerAlign(len, longest, line, lines) {
145
-  return 4 + Math.floor((longest - len) / 2);
146
-}
147
-```
148
-
149
-Would result in:
150
-
151
-```
152
-         Lorem ipsum dolor sit amet,
153
-            consectetur adipiscing
154
-    elit, sed do eiusmod tempor incididunt
155
-             ut labore et dolore
156
-        magna aliqua. Ut enim ad minim
157
-                 veniam, quis
158
-```
159
-
160
-### Bullets
161
-
162
-```js
163
-align(text, function (len, max, line, lines) {
164
-  return {prefix: ' - '};
165
-});
166
-```
167
-
168
-Would return:
169
-
170
-```
171
-- Lorem ipsum dolor sit amet,
172
-- consectetur adipiscing
173
-- elit, sed do eiusmod tempor incididunt
174
-- ut labore et dolore
175
-- magna aliqua. Ut enim ad minim
176
-- veniam, quis
177
-```
178
-
179
-### Different indent character
180
-
181
-```js
182
-align(text, function (len, max, line, lines) {
183
-  return { 
184
-    indent: Math.floor((max - len) / 2), 
185
-    character: '~', 
186
-  };
187
-});
188
-```
189
-
190
-Would return
191
-
192
-```
193
-~~~~~Lorem ipsum dolor sit amet,
194
-~~~~~~~~consectetur adipiscing
195
-elit, sed do eiusmod tempor incididunt
196
-~~~~~~~~~ut labore et dolore
197
-~~~~magna aliqua. Ut enim ad minim
198
-~~~~~~~~~~~~~veniam, quis
199
-```
200
-
201
-## Related projects
202
-
203
-* [center-align](https://github.com/jonschlinkert/center-align): Center-align the text in a string.
204
-* [justify](https://github.com/bahamas10/node-justify): Left or right (or both) justify text using a custom width and character
205
-* [longest](https://github.com/jonschlinkert/longest): Get the longest item in an array.
206
-* [right-align](https://github.com/jonschlinkert/right-align): Right-align the text in a string.
207
-* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.
208
-* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length.
209
-
210
-## Running tests
211
-
212
-Install dev dependencies:
213
-
214
-```sh
215
-$ npm i -d && npm test
216
-```
217
-
218
-## Contributing
219
-
220
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/align-text/issues/new)
221
-
222
-## Author
223
-
224
-**Jon Schlinkert**
225
-
226
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
227
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
228
-
229
-## License
230
-
231
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
232
-Released under the MIT license.
233
-
234
-***
235
-
236
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 09, 2015._

+ 0
- 52
node_modules/align-text/index.js 查看文件

@@ -1,52 +0,0 @@
1
-/*!
2
- * align-text <https://github.com/jonschlinkert/align-text>
3
- *
4
- * Copyright (c) 2015, Jon Schlinkert.
5
- * Licensed under the MIT License.
6
- */
7
-
8
-'use strict';
9
-
10
-var typeOf = require('kind-of');
11
-var repeat = require('repeat-string');
12
-var longest = require('longest');
13
-
14
-module.exports = function alignText(val, fn) {
15
-  var lines, type = typeOf(val);
16
-
17
-  if (type === 'array') {
18
-    lines = val;
19
-  } else if (type === 'string') {
20
-    lines = val.split(/(?:\r\n|\n)/);
21
-  } else {
22
-    throw new TypeError('align-text expects a string or array.');
23
-  }
24
-
25
-  var fnType = typeOf(fn);
26
-  var len = lines.length;
27
-  var max = longest(lines);
28
-  var res = [], i = 0;
29
-
30
-  while (len--) {
31
-    var line = String(lines[i++]);
32
-    var diff;
33
-
34
-    if (fnType === 'function') {
35
-      diff = fn(line.length, max.length, line, lines, i);
36
-    } else if (fnType === 'number') {
37
-      diff = fn;
38
-    } else {
39
-      diff = max.length - line.length;
40
-    }
41
-
42
-    if (typeOf(diff) === 'number') {
43
-      res.push(repeat(' ', diff) + line);
44
-    } else if (typeOf(diff) === 'object') {
45
-      var result = repeat(diff.character || ' ', diff.indent || 0);
46
-      res.push((diff.prefix || '') + result + line);
47
-    }
48
-  }
49
-
50
-  if (type === 'array') return res;
51
-  return res.join('\n');
52
-};

+ 0
- 52
node_modules/align-text/package.json 查看文件

@@ -1,52 +0,0 @@
1
-{
2
-  "name": "align-text",
3
-  "description": "Align the text in a string.",
4
-  "version": "0.1.4",
5
-  "homepage": "https://github.com/jonschlinkert/align-text",
6
-  "author": {
7
-    "name": "Jon Schlinkert",
8
-    "url": "https://github.com/jonschlinkert"
9
-  },
10
-  "repository": {
11
-    "type": "git",
12
-    "url": "git://github.com/jonschlinkert/align-text.git"
13
-  },
14
-  "bugs": {
15
-    "url": "https://github.com/jonschlinkert/align-text/issues"
16
-  },
17
-  "license": "MIT",
18
-  "files": [
19
-    "index.js"
20
-  ],
21
-  "main": "index.js",
22
-  "engines": {
23
-    "node": ">=0.10.0"
24
-  },
25
-  "scripts": {
26
-    "test": "mocha"
27
-  },
28
-  "dependencies": {
29
-    "kind-of": "^3.0.2",
30
-    "longest": "^1.0.1",
31
-    "repeat-string": "^1.5.2"
32
-  },
33
-  "devDependencies": {
34
-    "mocha": "*",
35
-    "should": "*",
36
-    "word-wrap": "^1.0.3"
37
-  },
38
-  "keywords": [
39
-    "align",
40
-    "align-center",
41
-    "alignment",
42
-    "center",
43
-    "center-align",
44
-    "indent",
45
-    "pad",
46
-    "padding",
47
-    "right",
48
-    "right-align",
49
-    "text",
50
-    "typography"
51
-  ]
52
-}

+ 0
- 58
node_modules/amdefine/LICENSE 查看文件

@@ -1,58 +0,0 @@
1
-amdefine is released under two licenses: new BSD, and MIT. You may pick the
2
-license that best suits your development needs. The text of both licenses are
3
-provided below.
4
-
5
-
6
-The "New" BSD License:
7
-----------------------
8
-
9
-Copyright (c) 2011-2016, The Dojo Foundation
10
-All rights reserved.
11
-
12
-Redistribution and use in source and binary forms, with or without
13
-modification, are permitted provided that the following conditions are met:
14
-
15
-  * Redistributions of source code must retain the above copyright notice, this
16
-    list of conditions and the following disclaimer.
17
-  * Redistributions in binary form must reproduce the above copyright notice,
18
-    this list of conditions and the following disclaimer in the documentation
19
-    and/or other materials provided with the distribution.
20
-  * Neither the name of the Dojo Foundation nor the names of its contributors
21
-    may be used to endorse or promote products derived from this software
22
-    without specific prior written permission.
23
-
24
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
-DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
28
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
-
35
-
36
-
37
-MIT License
38
------------
39
-
40
-Copyright (c) 2011-2016, The Dojo Foundation
41
-
42
-Permission is hereby granted, free of charge, to any person obtaining a copy
43
-of this software and associated documentation files (the "Software"), to deal
44
-in the Software without restriction, including without limitation the rights
45
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
46
-copies of the Software, and to permit persons to whom the Software is
47
-furnished to do so, subject to the following conditions:
48
-
49
-The above copyright notice and this permission notice shall be included in
50
-all copies or substantial portions of the Software.
51
-
52
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
53
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
54
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
55
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
56
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
57
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
58
-THE SOFTWARE.

+ 0
- 171
node_modules/amdefine/README.md 查看文件

@@ -1,171 +0,0 @@
1
-# amdefine
2
-
3
-A module that can be used to implement AMD's define() in Node. This allows you
4
-to code to the AMD API and have the module work in node programs without
5
-requiring those other programs to use AMD.
6
-
7
-## Usage
8
-
9
-**1)** Update your package.json to indicate amdefine as a dependency:
10
-
11
-```javascript
12
-    "dependencies": {
13
-        "amdefine": ">=0.1.0"
14
-    }
15
-```
16
-
17
-Then run `npm install` to get amdefine into your project.
18
-
19
-**2)** At the top of each module that uses define(), place this code:
20
-
21
-```javascript
22
-if (typeof define !== 'function') { var define = require('amdefine')(module) }
23
-```
24
-
25
-**Only use these snippets** when loading amdefine. If you preserve the basic structure,
26
-with the braces, it will be stripped out when using the [RequireJS optimizer](#optimizer).
27
-
28
-You can add spaces, line breaks and even require amdefine with a local path, but
29
-keep the rest of the structure to get the stripping behavior.
30
-
31
-As you may know, because `if` statements in JavaScript don't have their own scope, the var
32
-declaration in the above snippet is made whether the `if` expression is truthy or not. If
33
-RequireJS is loaded then the declaration is superfluous because `define` is already already
34
-declared in the same scope in RequireJS. Fortunately JavaScript handles multiple `var`
35
-declarations of the same variable in the same scope gracefully.
36
-
37
-If you want to deliver amdefine.js with your code rather than specifying it as a dependency
38
-with npm, then just download the latest release and refer to it using a relative path:
39
-
40
-[Latest Version](https://github.com/jrburke/amdefine/raw/latest/amdefine.js)
41
-
42
-### amdefine/intercept
43
-
44
-Consider this very experimental.
45
-
46
-Instead of pasting the piece of text for the amdefine setup of a `define`
47
-variable in each module you create or consume, you can use `amdefine/intercept`
48
-instead. It will automatically insert the above snippet in each .js file loaded
49
-by Node.
50
-
51
-**Warning**: you should only use this if you are creating an application that
52
-is consuming AMD style defined()'d modules that are distributed via npm and want
53
-to run that code in Node.
54
-
55
-For library code where you are not sure if it will be used by others in Node or
56
-in the browser, then explicitly depending on amdefine and placing the code
57
-snippet above is suggested path, instead of using `amdefine/intercept`. The
58
-intercept module affects all .js files loaded in the Node app, and it is
59
-inconsiderate to modify global state like that unless you are also controlling
60
-the top level app.
61
-
62
-#### Why distribute AMD-style modules via npm?
63
-
64
-npm has a lot of weaknesses for front-end use (installed layout is not great,
65
-should have better support for the `baseUrl + moduleID + '.js' style of loading,
66
-single file JS installs), but some people want a JS package manager and are
67
-willing to live with those constraints. If that is you, but still want to author
68
-in AMD style modules to get dynamic require([]), better direct source usage and
69
-powerful loader plugin support in the browser, then this tool can help.
70
-
71
-#### amdefine/intercept usage
72
-
73
-Just require it in your top level app module (for example index.js, server.js):
74
-
75
-```javascript
76
-require('amdefine/intercept');
77
-```
78
-
79
-The module does not return a value, so no need to assign the result to a local
80
-variable.
81
-
82
-Then just require() code as you normally would with Node's require(). Any .js
83
-loaded after the intercept require will have the amdefine check injected in
84
-the .js source as it is loaded. It does not modify the source on disk, just
85
-prepends some content to the text of the module as it is loaded by Node.
86
-
87
-#### How amdefine/intercept works
88
-
89
-It overrides the `Module._extensions['.js']` in Node to automatically prepend
90
-the amdefine snippet above. So, it will affect any .js file loaded by your
91
-app.
92
-
93
-## define() usage
94
-
95
-It is best if you use the anonymous forms of define() in your module:
96
-
97
-```javascript
98
-define(function (require) {
99
-    var dependency = require('dependency');
100
-});
101
-```
102
-
103
-or
104
-
105
-```javascript
106
-define(['dependency'], function (dependency) {
107
-
108
-});
109
-```
110
-
111
-## RequireJS optimizer integration. <a name="optimizer"></name>
112
-
113
-Version 1.0.3 of the [RequireJS optimizer](http://requirejs.org/docs/optimization.html)
114
-will have support for stripping the `if (typeof define !== 'function')` check
115
-mentioned above, so you can include this snippet for code that runs in the
116
-browser, but avoid taking the cost of the if() statement once the code is
117
-optimized for deployment.
118
-
119
-## Node 0.4 Support
120
-
121
-If you want to support Node 0.4, then add `require` as the second parameter to amdefine:
122
-
123
-```javascript
124
-//Only if you want Node 0.4. If using 0.5 or later, use the above snippet.
125
-if (typeof define !== 'function') { var define = require('amdefine')(module, require) }
126
-```
127
-
128
-## Limitations
129
-
130
-### Synchronous vs Asynchronous
131
-
132
-amdefine creates a define() function that is callable by your code. It will
133
-execute and trace dependencies and call the factory function *synchronously*,
134
-to keep the behavior in line with Node's synchronous dependency tracing.
135
-
136
-The exception: calling AMD's callback-style require() from inside a factory
137
-function. The require callback is called on process.nextTick():
138
-
139
-```javascript
140
-define(function (require) {
141
-    require(['a'], function(a) {
142
-        //'a' is loaded synchronously, but
143
-        //this callback is called on process.nextTick().
144
-    });
145
-});
146
-```
147
-
148
-### Loader Plugins
149
-
150
-Loader plugins are supported as long as they call their load() callbacks
151
-synchronously. So ones that do network requests will not work. However plugins
152
-like [text](http://requirejs.org/docs/api.html#text) can load text files locally.
153
-
154
-The plugin API's `load.fromText()` is **not supported** in amdefine, so this means
155
-transpiler plugins like the [CoffeeScript loader plugin](https://github.com/jrburke/require-cs)
156
-will not work. This may be fixable, but it is a bit complex, and I do not have
157
-enough node-fu to figure it out yet. See the source for amdefine.js if you want
158
-to get an idea of the issues involved.
159
-
160
-## Tests
161
-
162
-To run the tests, cd to **tests** and run:
163
-
164
-```
165
-node all.js
166
-node all-intercept.js
167
-```
168
-
169
-## License
170
-
171
-New BSD and MIT. Check the LICENSE file for all the details.

+ 0
- 301
node_modules/amdefine/amdefine.js 查看文件

@@ -1,301 +0,0 @@
1
-/** vim: et:ts=4:sw=4:sts=4
2
- * @license amdefine 1.0.1 Copyright (c) 2011-2016, The Dojo Foundation All Rights Reserved.
3
- * Available via the MIT or new BSD license.
4
- * see: http://github.com/jrburke/amdefine for details
5
- */
6
-
7
-/*jslint node: true */
8
-/*global module, process */
9
-'use strict';
10
-
11
-/**
12
- * Creates a define for node.
13
- * @param {Object} module the "module" object that is defined by Node for the
14
- * current module.
15
- * @param {Function} [requireFn]. Node's require function for the current module.
16
- * It only needs to be passed in Node versions before 0.5, when module.require
17
- * did not exist.
18
- * @returns {Function} a define function that is usable for the current node
19
- * module.
20
- */
21
-function amdefine(module, requireFn) {
22
-    'use strict';
23
-    var defineCache = {},
24
-        loaderCache = {},
25
-        alreadyCalled = false,
26
-        path = require('path'),
27
-        makeRequire, stringRequire;
28
-
29
-    /**
30
-     * Trims the . and .. from an array of path segments.
31
-     * It will keep a leading path segment if a .. will become
32
-     * the first path segment, to help with module name lookups,
33
-     * which act like paths, but can be remapped. But the end result,
34
-     * all paths that use this function should look normalized.
35
-     * NOTE: this method MODIFIES the input array.
36
-     * @param {Array} ary the array of path segments.
37
-     */
38
-    function trimDots(ary) {
39
-        var i, part;
40
-        for (i = 0; ary[i]; i+= 1) {
41
-            part = ary[i];
42
-            if (part === '.') {
43
-                ary.splice(i, 1);
44
-                i -= 1;
45
-            } else if (part === '..') {
46
-                if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
47
-                    //End of the line. Keep at least one non-dot
48
-                    //path segment at the front so it can be mapped
49
-                    //correctly to disk. Otherwise, there is likely
50
-                    //no path mapping for a path starting with '..'.
51
-                    //This can still fail, but catches the most reasonable
52
-                    //uses of ..
53
-                    break;
54
-                } else if (i > 0) {
55
-                    ary.splice(i - 1, 2);
56
-                    i -= 2;
57
-                }
58
-            }
59
-        }
60
-    }
61
-
62
-    function normalize(name, baseName) {
63
-        var baseParts;
64
-
65
-        //Adjust any relative paths.
66
-        if (name && name.charAt(0) === '.') {
67
-            //If have a base name, try to normalize against it,
68
-            //otherwise, assume it is a top-level require that will
69
-            //be relative to baseUrl in the end.
70
-            if (baseName) {
71
-                baseParts = baseName.split('/');
72
-                baseParts = baseParts.slice(0, baseParts.length - 1);
73
-                baseParts = baseParts.concat(name.split('/'));
74
-                trimDots(baseParts);
75
-                name = baseParts.join('/');
76
-            }
77
-        }
78
-
79
-        return name;
80
-    }
81
-
82
-    /**
83
-     * Create the normalize() function passed to a loader plugin's
84
-     * normalize method.
85
-     */
86
-    function makeNormalize(relName) {
87
-        return function (name) {
88
-            return normalize(name, relName);
89
-        };
90
-    }
91
-
92
-    function makeLoad(id) {
93
-        function load(value) {
94
-            loaderCache[id] = value;
95
-        }
96
-
97
-        load.fromText = function (id, text) {
98
-            //This one is difficult because the text can/probably uses
99
-            //define, and any relative paths and requires should be relative
100
-            //to that id was it would be found on disk. But this would require
101
-            //bootstrapping a module/require fairly deeply from node core.
102
-            //Not sure how best to go about that yet.
103
-            throw new Error('amdefine does not implement load.fromText');
104
-        };
105
-
106
-        return load;
107
-    }
108
-
109
-    makeRequire = function (systemRequire, exports, module, relId) {
110
-        function amdRequire(deps, callback) {
111
-            if (typeof deps === 'string') {
112
-                //Synchronous, single module require('')
113
-                return stringRequire(systemRequire, exports, module, deps, relId);
114
-            } else {
115
-                //Array of dependencies with a callback.
116
-
117
-                //Convert the dependencies to modules.
118
-                deps = deps.map(function (depName) {
119
-                    return stringRequire(systemRequire, exports, module, depName, relId);
120
-                });
121
-
122
-                //Wait for next tick to call back the require call.
123
-                if (callback) {
124
-                    process.nextTick(function () {
125
-                        callback.apply(null, deps);
126
-                    });
127
-                }
128
-            }
129
-        }
130
-
131
-        amdRequire.toUrl = function (filePath) {
132
-            if (filePath.indexOf('.') === 0) {
133
-                return normalize(filePath, path.dirname(module.filename));
134
-            } else {
135
-                return filePath;
136
-            }
137
-        };
138
-
139
-        return amdRequire;
140
-    };
141
-
142
-    //Favor explicit value, passed in if the module wants to support Node 0.4.
143
-    requireFn = requireFn || function req() {
144
-        return module.require.apply(module, arguments);
145
-    };
146
-
147
-    function runFactory(id, deps, factory) {
148
-        var r, e, m, result;
149
-
150
-        if (id) {
151
-            e = loaderCache[id] = {};
152
-            m = {
153
-                id: id,
154
-                uri: __filename,
155
-                exports: e
156
-            };
157
-            r = makeRequire(requireFn, e, m, id);
158
-        } else {
159
-            //Only support one define call per file
160
-            if (alreadyCalled) {
161
-                throw new Error('amdefine with no module ID cannot be called more than once per file.');
162
-            }
163
-            alreadyCalled = true;
164
-
165
-            //Use the real variables from node
166
-            //Use module.exports for exports, since
167
-            //the exports in here is amdefine exports.
168
-            e = module.exports;
169
-            m = module;
170
-            r = makeRequire(requireFn, e, m, module.id);
171
-        }
172
-
173
-        //If there are dependencies, they are strings, so need
174
-        //to convert them to dependency values.
175
-        if (deps) {
176
-            deps = deps.map(function (depName) {
177
-                return r(depName);
178
-            });
179
-        }
180
-
181
-        //Call the factory with the right dependencies.
182
-        if (typeof factory === 'function') {
183
-            result = factory.apply(m.exports, deps);
184
-        } else {
185
-            result = factory;
186
-        }
187
-
188
-        if (result !== undefined) {
189
-            m.exports = result;
190
-            if (id) {
191
-                loaderCache[id] = m.exports;
192
-            }
193
-        }
194
-    }
195
-
196
-    stringRequire = function (systemRequire, exports, module, id, relId) {
197
-        //Split the ID by a ! so that
198
-        var index = id.indexOf('!'),
199
-            originalId = id,
200
-            prefix, plugin;
201
-
202
-        if (index === -1) {
203
-            id = normalize(id, relId);
204
-
205
-            //Straight module lookup. If it is one of the special dependencies,
206
-            //deal with it, otherwise, delegate to node.
207
-            if (id === 'require') {
208
-                return makeRequire(systemRequire, exports, module, relId);
209
-            } else if (id === 'exports') {
210
-                return exports;
211
-            } else if (id === 'module') {
212
-                return module;
213
-            } else if (loaderCache.hasOwnProperty(id)) {
214
-                return loaderCache[id];
215
-            } else if (defineCache[id]) {
216
-                runFactory.apply(null, defineCache[id]);
217
-                return loaderCache[id];
218
-            } else {
219
-                if(systemRequire) {
220
-                    return systemRequire(originalId);
221
-                } else {
222
-                    throw new Error('No module with ID: ' + id);
223
-                }
224
-            }
225
-        } else {
226
-            //There is a plugin in play.
227
-            prefix = id.substring(0, index);
228
-            id = id.substring(index + 1, id.length);
229
-
230
-            plugin = stringRequire(systemRequire, exports, module, prefix, relId);
231
-
232
-            if (plugin.normalize) {
233
-                id = plugin.normalize(id, makeNormalize(relId));
234
-            } else {
235
-                //Normalize the ID normally.
236
-                id = normalize(id, relId);
237
-            }
238
-
239
-            if (loaderCache[id]) {
240
-                return loaderCache[id];
241
-            } else {
242
-                plugin.load(id, makeRequire(systemRequire, exports, module, relId), makeLoad(id), {});
243
-
244
-                return loaderCache[id];
245
-            }
246
-        }
247
-    };
248
-
249
-    //Create a define function specific to the module asking for amdefine.
250
-    function define(id, deps, factory) {
251
-        if (Array.isArray(id)) {
252
-            factory = deps;
253
-            deps = id;
254
-            id = undefined;
255
-        } else if (typeof id !== 'string') {
256
-            factory = id;
257
-            id = deps = undefined;
258
-        }
259
-
260
-        if (deps && !Array.isArray(deps)) {
261
-            factory = deps;
262
-            deps = undefined;
263
-        }
264
-
265
-        if (!deps) {
266
-            deps = ['require', 'exports', 'module'];
267
-        }
268
-
269
-        //Set up properties for this module. If an ID, then use
270
-        //internal cache. If no ID, then use the external variables
271
-        //for this node module.
272
-        if (id) {
273
-            //Put the module in deep freeze until there is a
274
-            //require call for it.
275
-            defineCache[id] = [id, deps, factory];
276
-        } else {
277
-            runFactory(id, deps, factory);
278
-        }
279
-    }
280
-
281
-    //define.require, which has access to all the values in the
282
-    //cache. Useful for AMD modules that all have IDs in the file,
283
-    //but need to finally export a value to node based on one of those
284
-    //IDs.
285
-    define.require = function (id) {
286
-        if (loaderCache[id]) {
287
-            return loaderCache[id];
288
-        }
289
-
290
-        if (defineCache[id]) {
291
-            runFactory.apply(null, defineCache[id]);
292
-            return loaderCache[id];
293
-        }
294
-    };
295
-
296
-    define.amd = {};
297
-
298
-    return define;
299
-}
300
-
301
-module.exports = amdefine;

+ 0
- 36
node_modules/amdefine/intercept.js 查看文件

@@ -1,36 +0,0 @@
1
-/*jshint node: true */
2
-var inserted,
3
-    Module = require('module'),
4
-    fs = require('fs'),
5
-    existingExtFn = Module._extensions['.js'],
6
-    amdefineRegExp = /amdefine\.js/;
7
-
8
-inserted  = "if (typeof define !== 'function') {var define = require('amdefine')(module)}";
9
-
10
-//From the node/lib/module.js source:
11
-function stripBOM(content) {
12
-    // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
13
-    // because the buffer-to-string conversion in `fs.readFileSync()`
14
-    // translates it to FEFF, the UTF-16 BOM.
15
-    if (content.charCodeAt(0) === 0xFEFF) {
16
-        content = content.slice(1);
17
-    }
18
-    return content;
19
-}
20
-
21
-//Also adapted from the node/lib/module.js source:
22
-function intercept(module, filename) {
23
-    var content = stripBOM(fs.readFileSync(filename, 'utf8'));
24
-
25
-    if (!amdefineRegExp.test(module.id)) {
26
-        content = inserted + content;
27
-    }
28
-
29
-    module._compile(content, filename);
30
-}
31
-
32
-intercept._id = 'amdefine/intercept';
33
-
34
-if (!existingExtFn._id || existingExtFn._id !== intercept._id) {
35
-    Module._extensions['.js'] = intercept;
36
-}

+ 0
- 16
node_modules/amdefine/package.json 查看文件

@@ -1,16 +0,0 @@
1
-{
2
-    "name": "amdefine",
3
-    "description": "Provide AMD's define() API for declaring modules in the AMD format",
4
-    "version": "1.0.1",
5
-    "homepage": "http://github.com/jrburke/amdefine",
6
-    "author": "James Burke <jrburke@gmail.com> (http://github.com/jrburke)",
7
-    "license": "BSD-3-Clause OR MIT",
8
-    "repository": {
9
-        "type": "git",
10
-        "url": "https://github.com/jrburke/amdefine.git"
11
-    },
12
-    "main": "./amdefine.js",
13
-    "engines": {
14
-        "node": ">=0.4.2"
15
-    }
16
-}

+ 0
- 21
node_modules/ansi-gray/LICENSE 查看文件

@@ -1,21 +0,0 @@
1
-The MIT License (MIT)
2
-
3
-Copyright (c) <%= year() %>, Jon Schlinkert.
4
-
5
-Permission is hereby granted, free of charge, to any person obtaining a copy
6
-of this software and associated documentation files (the "Software"), to deal
7
-in the Software without restriction, including without limitation the rights
8
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
-copies of the Software, and to permit persons to whom the Software is
10
-furnished to do so, subject to the following conditions:
11
-
12
-The above copyright notice and this permission notice shall be included in
13
-all copies or substantial portions of the Software.
14
-
15
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
-THE SOFTWARE.

+ 0
- 14
node_modules/ansi-gray/index.js 查看文件

@@ -1,14 +0,0 @@
1
-/*!
2
- * ansi-gray <https://github.com/jonschlinkert/ansi-gray>
3
- *
4
- * Copyright (c) 2015, Jon Schlinkert.
5
- * Licensed under the MIT License.
6
- */
7
-
8
-'use strict';
9
-
10
-var wrap = require('ansi-wrap');
11
-
12
-module.exports = function gray(message) {
13
-  return wrap(90, 39, message);
14
-};

+ 0
- 55
node_modules/ansi-gray/package.json 查看文件

@@ -1,55 +0,0 @@
1
-{
2
-  "name": "ansi-gray",
3
-  "description": "The color gray, in ansi.",
4
-  "version": "0.1.1",
5
-  "homepage": "https://github.com/jonschlinkert/ansi-gray",
6
-  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
7
-  "repository": "jonschlinkert/ansi-gray",
8
-  "bugs": {
9
-    "url": "https://github.com/jonschlinkert/ansi-gray/issues"
10
-  },
11
-  "license": "MIT",
12
-  "files": [
13
-    "index.js"
14
-  ],
15
-  "main": "index.js",
16
-  "engines": {
17
-    "node": ">=0.10.0"
18
-  },
19
-  "scripts": {
20
-    "test": "mocha"
21
-  },
22
-  "dependencies": {
23
-    "ansi-wrap": "0.1.0"
24
-  },
25
-  "devDependencies": {
26
-    "mocha": "*"
27
-  },
28
-  "keywords": [
29
-    "gray",
30
-    "256",
31
-    "ansi",
32
-    "cli",
33
-    "color",
34
-    "colors",
35
-    "colour",
36
-    "command",
37
-    "command-line",
38
-    "console",
39
-    "format",
40
-    "formatting",
41
-    "iterm",
42
-    "log",
43
-    "logging",
44
-    "rgb",
45
-    "shell",
46
-    "string",
47
-    "style",
48
-    "styles",
49
-    "styling",
50
-    "terminal",
51
-    "text",
52
-    "tty",
53
-    "xterm"
54
-  ]
55
-}

+ 0
- 74
node_modules/ansi-gray/readme.md 查看文件

@@ -1,74 +0,0 @@
1
-# ansi-gray [![NPM version](https://badge.fury.io/js/ansi-gray.svg)](http://badge.fury.io/js/ansi-gray)
2
-
3
-> The color gray, in ansi.
4
-
5
-## Install
6
-
7
-Install with [npm](https://www.npmjs.com/)
8
-
9
-```sh
10
-$ npm i ansi-gray --save
11
-```
12
-
13
-## Usage
14
-
15
-```js
16
-var gray = require('ansi-gray');
17
-```
18
-
19
-## Related projects
20
-
21
-* [ansi-reset](https://github.com/jonschlinkert/ansi-reset)
22
-* [ansi-bold](https://github.com/jonschlinkert/ansi-bold)
23
-* [ansi-dim](https://github.com/jonschlinkert/ansi-dim)
24
-* [ansi-italic](https://github.com/jonschlinkert/ansi-italic)
25
-* [ansi-underline](https://github.com/jonschlinkert/ansi-underline)
26
-* [ansi-inverse](https://github.com/jonschlinkert/ansi-inverse)
27
-* [ansi-hidden](https://github.com/jonschlinkert/ansi-hidden)
28
-* [ansi-strikethrough](https://github.com/jonschlinkert/ansi-strikethrough)
29
-* [ansi-black](https://github.com/jonschlinkert/ansi-black)
30
-* [ansi-red](https://github.com/jonschlinkert/ansi-red)
31
-* [ansi-green](https://github.com/jonschlinkert/ansi-green)
32
-* [ansi-yellow](https://github.com/jonschlinkert/ansi-yellow)
33
-* [ansi-blue](https://github.com/jonschlinkert/ansi-blue)
34
-* [ansi-magenta](https://github.com/jonschlinkert/ansi-magenta)
35
-* [ansi-cyan](https://github.com/jonschlinkert/ansi-cyan)
36
-* [ansi-white](https://github.com/jonschlinkert/ansi-white)
37
-* [ansi-gray](https://github.com/jonschlinkert/ansi-gray)
38
-* [ansi-grey](https://github.com/jonschlinkert/ansi-grey)
39
-* [ansi-bgblack](https://github.com/jonschlinkert/ansi-bgblack)
40
-* [ansi-bgred](https://github.com/jonschlinkert/ansi-bgred)
41
-* [ansi-bggreen](https://github.com/jonschlinkert/ansi-bggreen)
42
-* [ansi-bgyellow](https://github.com/jonschlinkert/ansi-bgyellow)
43
-* [ansi-bgblue](https://github.com/jonschlinkert/ansi-bgblue)
44
-* [ansi-bgmagenta](https://github.com/jonschlinkert/ansi-bgmagenta)
45
-* [ansi-bgcyan](https://github.com/jonschlinkert/ansi-bgcyan)
46
-* [ansi-bgwhite](https://github.com/jonschlinkert/ansi-bgwhite)
47
-
48
-## Running tests
49
-
50
-Install dev dependencies:
51
-
52
-```sh
53
-$ npm i -d && npm test
54
-```
55
-
56
-## Contributing
57
-
58
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/ansi-gray/issues/new)
59
-
60
-## Author
61
-
62
-**Jon Schlinkert**
63
-
64
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
65
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
66
-
67
-## License
68
-
69
-Copyright © 2015 Jon Schlinkert
70
-Released under the MIT license.
71
-
72
-***
73
-
74
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on May 21, 2015._

+ 0
- 4
node_modules/ansi-regex/index.js 查看文件

@@ -1,4 +0,0 @@
1
-'use strict';
2
-module.exports = function () {
3
-	return /\u001b\[(?:[0-9]{1,3}(?:;[0-9]{1,3})*)?[m|K]/g;
4
-};

+ 0
- 51
node_modules/ansi-regex/package.json 查看文件

@@ -1,51 +0,0 @@
1
-{
2
-  "name": "ansi-regex",
3
-  "version": "0.2.1",
4
-  "description": "Regular expression for matching ANSI escape codes",
5
-  "license": "MIT",
6
-  "repository": "sindresorhus/ansi-regex",
7
-  "author": {
8
-    "name": "Sindre Sorhus",
9
-    "email": "sindresorhus@gmail.com",
10
-    "url": "http://sindresorhus.com"
11
-  },
12
-  "engines": {
13
-    "node": ">=0.10.0"
14
-  },
15
-  "scripts": {
16
-    "test": "mocha"
17
-  },
18
-  "files": [
19
-    "index.js"
20
-  ],
21
-  "keywords": [
22
-    "ansi",
23
-    "styles",
24
-    "color",
25
-    "colour",
26
-    "colors",
27
-    "terminal",
28
-    "console",
29
-    "cli",
30
-    "string",
31
-    "tty",
32
-    "escape",
33
-    "formatting",
34
-    "rgb",
35
-    "256",
36
-    "shell",
37
-    "xterm",
38
-    "command-line",
39
-    "text",
40
-    "regex",
41
-    "regexp",
42
-    "re",
43
-    "match",
44
-    "test",
45
-    "find",
46
-    "pattern"
47
-  ],
48
-  "devDependencies": {
49
-    "mocha": "*"
50
-  }
51
-}

+ 0
- 33
node_modules/ansi-regex/readme.md 查看文件

@@ -1,33 +0,0 @@
1
-# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex)
2
-
3
-> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
4
-
5
-
6
-## Install
7
-
8
-```sh
9
-$ npm install --save ansi-regex
10
-```
11
-
12
-
13
-## Usage
14
-
15
-```js
16
-var ansiRegex = require('ansi-regex');
17
-
18
-ansiRegex().test('\u001b[4mcake\u001b[0m');
19
-//=> true
20
-
21
-ansiRegex().test('cake');
22
-//=> false
23
-
24
-'\u001b[4mcake\u001b[0m'.match(ansiRegex());
25
-//=> ['\u001b[4m', '\u001b[0m']
26
-```
27
-
28
-*It's a function so you can create multiple instances. Regexes with the global flag will have the `.lastIndex` property changed for each call to methods on the instance. Therefore reusing the instance with multiple calls will not work as expected for `.test()`.*
29
-
30
-
31
-## License
32
-
33
-MIT © [Sindre Sorhus](http://sindresorhus.com)

+ 0
- 40
node_modules/ansi-styles/index.js 查看文件

@@ -1,40 +0,0 @@
1
-'use strict';
2
-var styles = module.exports;
3
-
4
-var codes = {
5
-	reset: [0, 0],
6
-
7
-	bold: [1, 22], // 21 isn't widely supported and 22 does the same thing
8
-	dim: [2, 22],
9
-	italic: [3, 23],
10
-	underline: [4, 24],
11
-	inverse: [7, 27],
12
-	hidden: [8, 28],
13
-	strikethrough: [9, 29],
14
-
15
-	black: [30, 39],
16
-	red: [31, 39],
17
-	green: [32, 39],
18
-	yellow: [33, 39],
19
-	blue: [34, 39],
20
-	magenta: [35, 39],
21
-	cyan: [36, 39],
22
-	white: [37, 39],
23
-	gray: [90, 39],
24
-
25
-	bgBlack: [40, 49],
26
-	bgRed: [41, 49],
27
-	bgGreen: [42, 49],
28
-	bgYellow: [43, 49],
29
-	bgBlue: [44, 49],
30
-	bgMagenta: [45, 49],
31
-	bgCyan: [46, 49],
32
-	bgWhite: [47, 49]
33
-};
34
-
35
-Object.keys(codes).forEach(function (key) {
36
-	var val = codes[key];
37
-	var style = styles[key] = {};
38
-	style.open = '\u001b[' + val[0] + 'm';
39
-	style.close = '\u001b[' + val[1] + 'm';
40
-});

+ 0
- 46
node_modules/ansi-styles/package.json 查看文件

@@ -1,46 +0,0 @@
1
-{
2
-  "name": "ansi-styles",
3
-  "version": "1.1.0",
4
-  "description": "ANSI escape codes for styling strings in the terminal",
5
-  "license": "MIT",
6
-  "repository": "sindresorhus/ansi-styles",
7
-  "author": {
8
-    "name": "Sindre Sorhus",
9
-    "email": "sindresorhus@gmail.com",
10
-    "url": "http://sindresorhus.com"
11
-  },
12
-  "engines": {
13
-    "node": ">=0.10.0"
14
-  },
15
-  "scripts": {
16
-    "test": "mocha"
17
-  },
18
-  "files": [
19
-    "index.js"
20
-  ],
21
-  "keywords": [
22
-    "ansi",
23
-    "styles",
24
-    "color",
25
-    "colour",
26
-    "colors",
27
-    "terminal",
28
-    "console",
29
-    "cli",
30
-    "string",
31
-    "tty",
32
-    "escape",
33
-    "formatting",
34
-    "rgb",
35
-    "256",
36
-    "shell",
37
-    "xterm",
38
-    "log",
39
-    "logging",
40
-    "command-line",
41
-    "text"
42
-  ],
43
-  "devDependencies": {
44
-    "mocha": "*"
45
-  }
46
-}

+ 0
- 70
node_modules/ansi-styles/readme.md 查看文件

@@ -1,70 +0,0 @@
1
-# ansi-styles [![Build Status](https://travis-ci.org/sindresorhus/ansi-styles.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-styles)
2
-
3
-> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
4
-
5
-You probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings.
6
-
7
-![screenshot](screenshot.png)
8
-
9
-
10
-## Install
11
-
12
-```sh
13
-$ npm install --save ansi-styles
14
-```
15
-
16
-
17
-## Usage
18
-
19
-```js
20
-var ansi = require('ansi-styles');
21
-
22
-console.log(ansi.green.open + 'Hello world!' + ansi.green.close);
23
-```
24
-
25
-
26
-## API
27
-
28
-Each style has an `open` and `close` property.
29
-
30
-
31
-## Styles
32
-
33
-### General
34
-
35
-- `reset`
36
-- `bold`
37
-- `dim`
38
-- `italic` *(not widely supported)*
39
-- `underline`
40
-- `inverse`
41
-- `hidden`
42
-- `strikethrough` *(not widely supported)*
43
-
44
-### Text colors
45
-
46
-- `black`
47
-- `red`
48
-- `green`
49
-- `yellow`
50
-- `blue`
51
-- `magenta`
52
-- `cyan`
53
-- `white`
54
-- `gray`
55
-
56
-### Background colors
57
-
58
-- `bgBlack`
59
-- `bgRed`
60
-- `bgGreen`
61
-- `bgYellow`
62
-- `bgBlue`
63
-- `bgMagenta`
64
-- `bgCyan`
65
-- `bgWhite`
66
-
67
-
68
-## License
69
-
70
-MIT © [Sindre Sorhus](http://sindresorhus.com)

+ 0
- 21
node_modules/ansi-wrap/LICENSE 查看文件

@@ -1,21 +0,0 @@
1
-The MIT License (MIT)
2
-
3
-Copyright (c) 2015, Jon Schlinkert.
4
-
5
-Permission is hereby granted, free of charge, to any person obtaining a copy
6
-of this software and associated documentation files (the "Software"), to deal
7
-in the Software without restriction, including without limitation the rights
8
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
-copies of the Software, and to permit persons to whom the Software is
10
-furnished to do so, subject to the following conditions:
11
-
12
-The above copyright notice and this permission notice shall be included in
13
-all copies or substantial portions of the Software.
14
-
15
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
-THE SOFTWARE.

+ 0
- 89
node_modules/ansi-wrap/README.md 查看文件

@@ -1,89 +0,0 @@
1
-# ansi-wrap [![NPM version](https://badge.fury.io/js/ansi-wrap.svg)](http://badge.fury.io/js/ansi-wrap)
2
-
3
-> Create ansi colors by passing the open and close codes.
4
-
5
-## Install
6
-
7
-Install with [npm](https://www.npmjs.com/)
8
-
9
-```sh
10
-$ npm i ansi-wrap --save
11
-```
12
-
13
-## Usage
14
-
15
-```js
16
-var wrap = require('ansi-wrap');
17
-```
18
-
19
-**Example**
20
-
21
-Pass codes for [ansi magenta background](https://github.com/jonschlinkert/ansi-bgmagenta):
22
-
23
-```js
24
-console.log(wrap(45, 49, 'This is a message...'));
25
-//=> '\u001b[45mfoo\u001b[49m'
26
-```
27
-
28
-Which prints out...
29
-
30
-[![screen shot 2015-05-21 at 8 28 32 pm](https://cloud.githubusercontent.com/assets/383994/7761769/12488afa-fff8-11e4-9cc1-71a8a6ec14a4.png)](https://www.npmjs.com/)
31
-
32
-## Related projects
33
-
34
-This is used in these projects:
35
-
36
-* [ansi-reset](https://github.com/jonschlinkert/ansi-reset)
37
-* [ansi-bold](https://github.com/jonschlinkert/ansi-bold)
38
-* [ansi-dim](https://github.com/jonschlinkert/ansi-dim)
39
-* [ansi-italic](https://github.com/jonschlinkert/ansi-italic)
40
-* [ansi-underline](https://github.com/jonschlinkert/ansi-underline)
41
-* [ansi-inverse](https://github.com/jonschlinkert/ansi-inverse)
42
-* [ansi-hidden](https://github.com/jonschlinkert/ansi-hidden)
43
-* [ansi-strikethrough](https://github.com/jonschlinkert/ansi-strikethrough)
44
-* [ansi-black](https://github.com/jonschlinkert/ansi-black)
45
-* [ansi-red](https://github.com/jonschlinkert/ansi-red)
46
-* [ansi-green](https://github.com/jonschlinkert/ansi-green)
47
-* [ansi-yellow](https://github.com/jonschlinkert/ansi-yellow)
48
-* [ansi-blue](https://github.com/jonschlinkert/ansi-blue)
49
-* [ansi-magenta](https://github.com/jonschlinkert/ansi-magenta)
50
-* [ansi-cyan](https://github.com/jonschlinkert/ansi-cyan)
51
-* [ansi-white](https://github.com/jonschlinkert/ansi-white)
52
-* [ansi-gray](https://github.com/jonschlinkert/ansi-gray)
53
-* [ansi-grey](https://github.com/jonschlinkert/ansi-grey)
54
-* [ansi-bgblack](https://github.com/jonschlinkert/ansi-bgblack)
55
-* [ansi-bgred](https://github.com/jonschlinkert/ansi-bgred)
56
-* [ansi-bggreen](https://github.com/jonschlinkert/ansi-bggreen)
57
-* [ansi-bgyellow](https://github.com/jonschlinkert/ansi-bgyellow)
58
-* [ansi-bgblue](https://github.com/jonschlinkert/ansi-bgblue)
59
-* [ansi-bgmagenta](https://github.com/jonschlinkert/ansi-bgmagenta)
60
-* [ansi-bgcyan](https://github.com/jonschlinkert/ansi-bgcyan)
61
-* [ansi-bgwhite](https://github.com/jonschlinkert/ansi-bgwhite)
62
-
63
-## Running tests
64
-
65
-Install dev dependencies:
66
-
67
-```sh
68
-$ npm i -d && npm test
69
-```
70
-
71
-## Contributing
72
-
73
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/ansi-wrap/issues/new)
74
-
75
-## Author
76
-
77
-**Jon Schlinkert**
78
-
79
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
80
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
81
-
82
-## License
83
-
84
-Copyright © 2015 Jon Schlinkert
85
-Released under the MIT license.
86
-
87
-***
88
-
89
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on May 21, 2015._

+ 0
- 5
node_modules/ansi-wrap/index.js 查看文件

@@ -1,5 +0,0 @@
1
-'use strict';
2
-
3
-module.exports = function(a, b, msg) {
4
-  return '\u001b['+ a + 'm' + msg + '\u001b[' + b + 'm';
5
-};

+ 0
- 34
node_modules/ansi-wrap/package.json 查看文件

@@ -1,34 +0,0 @@
1
-{
2
-  "name": "ansi-wrap",
3
-  "description": "Create ansi colors by passing the open and close codes.",
4
-  "version": "0.1.0",
5
-  "homepage": "https://github.com/jonschlinkert/ansi-wrap",
6
-  "author": {
7
-    "name": "Jon Schlinkert",
8
-    "url": "https://github.com/jonschlinkert"
9
-  },
10
-  "repository": {
11
-    "type": "git",
12
-    "url": "https://github.com/jonschlinkert/ansi-wrap.git"
13
-  },
14
-  "bugs": {
15
-    "url": "https://github.com/jonschlinkert/ansi-wrap/issues"
16
-  },
17
-  "license": {
18
-    "type": "MIT",
19
-    "url": "https://github.com/jonschlinkert/ansi-wrap/blob/master/LICENSE"
20
-  },
21
-  "files": [
22
-    "index.js"
23
-  ],
24
-  "main": "index.js",
25
-  "engines": {
26
-    "node": ">=0.10.0"
27
-  },
28
-  "scripts": {
29
-    "test": "mocha"
30
-  },
31
-  "dependencies": {},
32
-  "devDependencies": {},
33
-  "keywords": []
34
-}

+ 0
- 4
node_modules/archy/.travis.yml 查看文件

@@ -1,4 +0,0 @@
1
-language: node_js
2
-node_js:
3
-  - 0.6
4
-  - 0.8

+ 0
- 18
node_modules/archy/LICENSE 查看文件

@@ -1,18 +0,0 @@
1
-This software is released under the MIT license:
2
-
3
-Permission is hereby granted, free of charge, to any person obtaining a copy of
4
-this software and associated documentation files (the "Software"), to deal in
5
-the Software without restriction, including without limitation the rights to
6
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7
-the Software, and to permit persons to whom the Software is furnished to do so,
8
-subject to the following conditions:
9
-
10
-The above copyright notice and this permission notice shall be included in all
11
-copies or substantial portions of the Software.
12
-
13
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 0
- 24
node_modules/archy/examples/beep.js 查看文件

@@ -1,24 +0,0 @@
1
-var archy = require('../');
2
-var s = archy({
3
-  label : 'beep',
4
-  nodes : [
5
-    'ity',
6
-    {
7
-      label : 'boop',
8
-      nodes : [
9
-        {
10
-          label : 'o_O',
11
-          nodes : [
12
-            {
13
-              label : 'oh',
14
-              nodes : [ 'hello', 'puny' ]
15
-            },
16
-            'human'
17
-          ]
18
-        },
19
-        'party\ntime!'
20
-      ]
21
-    }
22
-  ]
23
-});
24
-console.log(s);

+ 0
- 25
node_modules/archy/examples/multi_line.js 查看文件

@@ -1,25 +0,0 @@
1
-var archy = require('../');
2
-
3
-var s = archy({
4
-  label : 'beep\none\ntwo',
5
-  nodes : [
6
-    'ity',
7
-    {
8
-      label : 'boop',
9
-      nodes : [
10
-        {
11
-          label : 'o_O\nwheee',
12
-          nodes : [
13
-            {
14
-              label : 'oh',
15
-              nodes : [ 'hello', 'puny\nmeat' ]
16
-            },
17
-            'creature'
18
-          ]
19
-        },
20
-        'party\ntime!'
21
-      ]
22
-    }
23
-  ]
24
-});
25
-console.log(s);

+ 0
- 35
node_modules/archy/index.js 查看文件

@@ -1,35 +0,0 @@
1
-module.exports = function archy (obj, prefix, opts) {
2
-    if (prefix === undefined) prefix = '';
3
-    if (!opts) opts = {};
4
-    var chr = function (s) {
5
-        var chars = {
6
-            '│' : '|',
7
-            '└' : '`',
8
-            '├' : '+',
9
-            '─' : '-',
10
-            '┬' : '-'
11
-        };
12
-        return opts.unicode === false ? chars[s] : s;
13
-    };
14
-    
15
-    if (typeof obj === 'string') obj = { label : obj };
16
-    
17
-    var nodes = obj.nodes || [];
18
-    var lines = (obj.label || '').split('\n');
19
-    var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' ';
20
-    
21
-    return prefix
22
-        + lines.join(splitter) + '\n'
23
-        + nodes.map(function (node, ix) {
24
-            var last = ix === nodes.length - 1;
25
-            var more = node.nodes && node.nodes.length;
26
-            var prefix_ = prefix + (last ? ' ' : chr('│')) + ' ';
27
-            
28
-            return prefix
29
-                + (last ? chr('└') : chr('├')) + chr('─')
30
-                + (more ? chr('┬') : chr('─')) + ' '
31
-                + archy(node, prefix_, opts).slice(prefix.length + 2)
32
-            ;
33
-        }).join('')
34
-    ;
35
-};

+ 0
- 40
node_modules/archy/package.json 查看文件

@@ -1,40 +0,0 @@
1
-{
2
-    "name" : "archy",
3
-    "version" : "1.0.0",
4
-    "description" : "render nested hierarchies `npm ls` style with unicode pipes",
5
-    "main" : "index.js",
6
-    "devDependencies" : {
7
-        "tap" : "~0.3.3",
8
-        "tape" : "~0.1.1"
9
-    },
10
-    "scripts" : {
11
-        "test" : "tap test"
12
-    },
13
-    "testling" : {
14
-        "files" : "test/*.js",
15
-        "browsers" : {
16
-            "iexplore" : [ "6.0", "7.0", "8.0", "9.0" ],
17
-            "chrome" : [ "20.0" ],
18
-            "firefox" : [ "10.0", "15.0" ],
19
-            "safari" : [ "5.1" ],
20
-            "opera" : [ "12.0" ]
21
-        }
22
-    },
23
-    "repository" : {
24
-        "type" : "git",
25
-        "url" : "http://github.com/substack/node-archy.git"
26
-    },
27
-    "keywords" : [
28
-        "hierarchy",
29
-        "npm ls",
30
-        "unicode",
31
-        "pretty",
32
-        "print"
33
-    ],
34
-    "author" : {
35
-        "name" : "James Halliday",
36
-        "email" : "mail@substack.net",
37
-        "url" : "http://substack.net"
38
-    },
39
-    "license" : "MIT"
40
-}

+ 0
- 88
node_modules/archy/readme.markdown 查看文件

@@ -1,88 +0,0 @@
1
-# archy
2
-
3
-Render nested hierarchies `npm ls` style with unicode pipes.
4
-
5
-[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy)
6
-
7
-[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy)
8
-
9
-# example
10
-
11
-``` js
12
-var archy = require('archy');
13
-var s = archy({
14
-  label : 'beep',
15
-  nodes : [
16
-    'ity',
17
-    {
18
-      label : 'boop',
19
-      nodes : [
20
-        {
21
-          label : 'o_O',
22
-          nodes : [
23
-            {
24
-              label : 'oh',
25
-              nodes : [ 'hello', 'puny' ]
26
-            },
27
-            'human'
28
-          ]
29
-        },
30
-        'party\ntime!'
31
-      ]
32
-    }
33
-  ]
34
-});
35
-console.log(s);
36
-```
37
-
38
-output
39
-
40
-```
41
-beep
42
-├── ity
43
-└─┬ boop
44
-  ├─┬ o_O
45
-  │ ├─┬ oh
46
-  │ │ ├── hello
47
-  │ │ └── puny
48
-  │ └── human
49
-  └── party
50
-      time!
51
-```
52
-
53
-# methods
54
-
55
-var archy = require('archy')
56
-
57
-## archy(obj, prefix='', opts={})
58
-
59
-Return a string representation of `obj` with unicode pipe characters like how
60
-`npm ls` looks.
61
-
62
-`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields.
63
-`'label'` is a string of text to display at a node level and `'nodes'` is an
64
-array of the descendents of the current node.
65
-
66
-If a node is a string, that string will be used as the `'label'` and an empty
67
-array of `'nodes'` will be used.
68
-
69
-`prefix` gets prepended to all the lines and is used by the algorithm to
70
-recursively update.
71
-
72
-If `'label'` has newlines they will be indented at the present indentation level
73
-with the current prefix.
74
-
75
-To disable unicode results in favor of all-ansi output set `opts.unicode` to
76
-`false`.
77
-
78
-# install
79
-
80
-With [npm](http://npmjs.org) do:
81
-
82
-```
83
-npm install archy
84
-```
85
-
86
-# license
87
-
88
-MIT

+ 0
- 40
node_modules/archy/test/beep.js 查看文件

@@ -1,40 +0,0 @@
1
-var test = require('tape');
2
-var archy = require('../');
3
-
4
-test('beep', function (t) {
5
-    var s = archy({
6
-      label : 'beep',
7
-      nodes : [
8
-        'ity',
9
-        {
10
-          label : 'boop',
11
-          nodes : [
12
-            {
13
-              label : 'o_O',
14
-              nodes : [
15
-                {
16
-                  label : 'oh',
17
-                  nodes : [ 'hello', 'puny' ]
18
-                },
19
-                'human'
20
-              ]
21
-            },
22
-            'party!'
23
-          ]
24
-        }
25
-      ]
26
-    });
27
-    t.equal(s, [
28
-        'beep',
29
-        '├── ity',
30
-        '└─┬ boop',
31
-        '  ├─┬ o_O',
32
-        '  │ ├─┬ oh',
33
-        '  │ │ ├── hello',
34
-        '  │ │ └── puny',
35
-        '  │ └── human',
36
-        '  └── party!',
37
-        ''
38
-    ].join('\n'));
39
-    t.end();
40
-});

+ 0
- 45
node_modules/archy/test/multi_line.js 查看文件

@@ -1,45 +0,0 @@
1
-var test = require('tape');
2
-var archy = require('../');
3
-
4
-test('multi-line', function (t) {
5
-    var s = archy({
6
-      label : 'beep\none\ntwo',
7
-      nodes : [
8
-        'ity',
9
-        {
10
-          label : 'boop',
11
-          nodes : [
12
-            {
13
-              label : 'o_O\nwheee',
14
-              nodes : [
15
-                {
16
-                  label : 'oh',
17
-                  nodes : [ 'hello', 'puny\nmeat' ]
18
-                },
19
-                'creature'
20
-              ]
21
-            },
22
-            'party\ntime!'
23
-          ]
24
-        }
25
-      ]
26
-    });
27
-    t.equal(s, [
28
-        'beep',
29
-        '│ one',
30
-        '│ two',
31
-        '├── ity',
32
-        '└─┬ boop',
33
-        '  ├─┬ o_O',
34
-        '  │ │ wheee',
35
-        '  │ ├─┬ oh',
36
-        '  │ │ ├── hello',
37
-        '  │ │ └── puny',
38
-        '  │ │     meat',
39
-        '  │ └── creature',
40
-        '  └── party',
41
-        '      time!',
42
-        ''
43
-    ].join('\n'));
44
-    t.end();
45
-});

+ 0
- 40
node_modules/archy/test/non_unicode.js 查看文件

@@ -1,40 +0,0 @@
1
-var test = require('tape');
2
-var archy = require('../');
3
-
4
-test('beep', function (t) {
5
-    var s = archy({
6
-      label : 'beep',
7
-      nodes : [
8
-        'ity',
9
-        {
10
-          label : 'boop',
11
-          nodes : [
12
-            {
13
-              label : 'o_O',
14
-              nodes : [
15
-                {
16
-                  label : 'oh',
17
-                  nodes : [ 'hello', 'puny' ]
18
-                },
19
-                'human'
20
-              ]
21
-            },
22
-            'party!'
23
-          ]
24
-        }
25
-      ]
26
-    }, '', { unicode : false });
27
-    t.equal(s, [
28
-        'beep',
29
-        '+-- ity',
30
-        '`-- boop',
31
-        '  +-- o_O',
32
-        '  | +-- oh',
33
-        '  | | +-- hello',
34
-        '  | | `-- puny',
35
-        '  | `-- human',
36
-        '  `-- party!',
37
-        ''
38
-    ].join('\n'));
39
-    t.end();
40
-});

+ 0
- 115
node_modules/argparse/HISTORY.md 查看文件

@@ -1,115 +0,0 @@
1
-0.1.16 / 2013-12-01
2
--------------------
3
-
4
-* Maintenance release. Updated dependencies and docs.
5
-
6
-
7
-0.1.15 / 2013-05-13
8
--------------------
9
-
10
-* Fixed #55, @trebor89
11
-
12
-
13
-0.1.14 / 2013-05-12
14
--------------------
15
-
16
-* Fixed #62, @maxtaco
17
-
18
-
19
-0.1.13 / 2013-04-08
20
--------------------
21
-
22
-* Added `.npmignore` to reduce package size
23
-
24
-
25
-0.1.12 / 2013-02-10
26
--------------------
27
-
28
-* Fixed conflictHandler (#46), @hpaulj
29
-
30
-
31
-0.1.11 / 2013-02-07
32
--------------------
33
-
34
-* Multiple bugfixes, @hpaulj
35
-* Added 70+ tests (ported from python), @hpaulj
36
-* Added conflictHandler, @applepicke
37
-* Added fromfilePrefixChar, @hpaulj
38
-
39
-
40
-0.1.10 / 2012-12-30
41
--------------------
42
-
43
-* Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion)
44
-  support, thanks to @hpaulj
45
-* Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj
46
-
47
-
48
-0.1.9 / 2012-12-27
49
-------------------
50
-
51
-* Fixed option dest interferens with other options (issue #23), thanks to @hpaulj
52
-* Fixed default value behavior with `*` positionals, thanks to @hpaulj
53
-* Improve `getDefault()` behavior, thanks to @hpaulj
54
-* Imrove negative argument parsing, thanks to @hpaulj
55
-
56
-
57
-0.1.8 / 2012-12-01
58
-------------------
59
-
60
-* Fixed parser parents (issue #19), thanks to @hpaulj
61
-* Fixed negative argument parse (issue #20), thanks to @hpaulj
62
-
63
-
64
-0.1.7 / 2012-10-14
65
-------------------
66
-
67
-* Fixed 'choices' argument parse (issue #16)
68
-* Fixed stderr output (issue #15)
69
-
70
-
71
-0.1.6 / 2012-09-09
72
-------------------
73
-
74
-* Fixed check for conflict of options (thanks to @tomxtobin)
75
-
76
-
77
-0.1.5 / 2012-09-03
78
-------------------
79
-
80
-* Fix parser #setDefaults method (thanks to @tomxtobin)
81
-
82
-
83
-0.1.4 / 2012-07-30
84
-------------------
85
-
86
-* Fixed pseudo-argument support (thanks to @CGamesPlay)
87
-* Fixed addHelp default (should be true), if not set (thanks to @benblank)
88
-
89
-
90
-0.1.3 / 2012-06-27
91
-------------------
92
-
93
-* Fixed formatter api name: Formatter -> HelpFormatter
94
-
95
-
96
-0.1.2 / 2012-05-29
97
-------------------
98
-
99
-* Added basic tests
100
-* Removed excess whitespace in help
101
-* Fixed error reporting, when parcer with subcommands
102
-  called with empty arguments
103
-
104
-
105
-0.1.1 / 2012-05-23
106
-------------------
107
-
108
-* Fixed line wrapping in help formatter
109
-* Added better error reporting on invalid arguments
110
-
111
-
112
-0.1.0 / 2012-05-16
113
-------------------
114
-
115
-* First release.

+ 0
- 21
node_modules/argparse/LICENSE 查看文件

@@ -1,21 +0,0 @@
1
-(The MIT License)
2
-
3
-Copyright (C) 2012 by Vitaly Puzrin
4
-
5
-Permission is hereby granted, free of charge, to any person obtaining a copy
6
-of this software and associated documentation files (the "Software"), to deal
7
-in the Software without restriction, including without limitation the rights
8
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
-copies of the Software, and to permit persons to whom the Software is
10
-furnished to do so, subject to the following conditions:
11
-
12
-The above copyright notice and this permission notice shall be included in
13
-all copies or substantial portions of the Software.
14
-
15
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
-THE SOFTWARE.

+ 0
- 239
node_modules/argparse/README.md 查看文件

@@ -1,239 +0,0 @@
1
-argparse
2
-========
3
-
4
-[![Build Status](https://secure.travis-ci.org/nodeca/argparse.png?branch=master)](http://travis-ci.org/nodeca/argparse)
5
-
6
-CLI arguments parser for node.js. Javascript port of python's
7
-[argparse](http://docs.python.org/dev/library/argparse.html) module
8
-(original version 3.2). That's a full port, except some very rare options,
9
-recorded in issue tracker.
10
-
11
-**NB.** Method names changed to camelCase. See [generated docs](http://nodeca.github.com/argparse/).
12
-
13
-
14
-Example
15
-=======
16
-
17
-test.js file:
18
-
19
-```javascript
20
-#!/usr/bin/env node
21
-'use strict';
22
-
23
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
24
-var parser = new ArgumentParser({
25
-  version: '0.0.1',
26
-  addHelp:true,
27
-  description: 'Argparse example'
28
-});
29
-parser.addArgument(
30
-  [ '-f', '--foo' ],
31
-  {
32
-    help: 'foo bar'
33
-  }
34
-);
35
-parser.addArgument(
36
-  [ '-b', '--bar' ],
37
-  {
38
-    help: 'bar foo'
39
-  }
40
-);
41
-var args = parser.parseArgs();
42
-console.dir(args);
43
-```
44
-
45
-Display help:
46
-
47
-```
48
-$ ./test.js -h
49
-usage: example.js [-h] [-v] [-f FOO] [-b BAR]
50
-
51
-Argparse example
52
-
53
-Optional arguments:
54
-  -h, --help         Show this help message and exit.
55
-  -v, --version      Show program's version number and exit.
56
-  -f FOO, --foo FOO  foo bar
57
-  -b BAR, --bar BAR  bar foo
58
-```
59
-
60
-Parse arguments:
61
-
62
-```
63
-$ ./test.js -f=3 --bar=4
64
-{ foo: '3', bar: '4' }
65
-```
66
-
67
-More [examples](https://github.com/nodeca/argparse/tree/master/examples).
68
-
69
-
70
-ArgumentParser objects
71
-======================
72
-
73
-```
74
-new ArgumentParser({paramters hash});
75
-```
76
-
77
-Creates a new ArgumentParser object.
78
-
79
-**Supported params:**
80
-
81
-- ```description``` - Text to display before the argument help.
82
-- ```epilog``` - Text to display after the argument help.
83
-- ```addHelp``` - Add a -h/–help option to the parser. (default: true)
84
-- ```argumentDefault``` - Set the global default value for arguments. (default: null)
85
-- ```parents``` - A list of ArgumentParser objects whose arguments should also be included.
86
-- ```prefixChars``` - The set of characters that prefix optional arguments. (default: ‘-‘)
87
-- ```formatterClass``` - A class for customizing the help output.
88
-- ```prog``` - The name of the program (default: `path.basename(process.argv[1])`)
89
-- ```usage``` - The string describing the program usage (default: generated)
90
-- ```conflictHandler``` - Usually unnecessary, defines strategy for resolving conflicting optionals.
91
-
92
-**Not supportied yet**
93
-
94
-- ```fromfilePrefixChars``` - The set of characters that prefix files from which additional arguments should be read.
95
-
96
-
97
-Details in [original ArgumentParser guide](http://docs.python.org/dev/library/argparse.html#argumentparser-objects)
98
-
99
-
100
-addArgument() method
101
-====================
102
-
103
-```
104
-ArgumentParser.addArgument([names or flags], {options})
105
-```
106
-
107
-Defines how a single command-line argument should be parsed.
108
-
109
-- ```name or flags``` - Either a name or a list of option strings, e.g. foo or -f, --foo.
110
-
111
-Options:
112
-
113
-- ```action``` - The basic type of action to be taken when this argument is encountered at the command line.
114
-- ```nargs```- The number of command-line arguments that should be consumed.
115
-- ```constant``` - A constant value required by some action and nargs selections.
116
-- ```defaultValue``` - The value produced if the argument is absent from the command line.
117
-- ```type``` - The type to which the command-line argument should be converted.
118
-- ```choices``` - A container of the allowable values for the argument.
119
-- ```required``` - Whether or not the command-line option may be omitted (optionals only).
120
-- ```help``` - A brief description of what the argument does.
121
-- ```metavar``` - A name for the argument in usage messages.
122
-- ```dest``` - The name of the attribute to be added to the object returned by parseArgs().
123
-
124
-Details in [original add_argument guide](http://docs.python.org/dev/library/argparse.html#the-add-argument-method)
125
-
126
-
127
-Action (some details)
128
-================
129
-
130
-ArgumentParser objects associate command-line arguments with actions.
131
-These actions can do just about anything with the command-line arguments associated
132
-with them, though most actions simply add an attribute to the object returned by
133
-parseArgs(). The action keyword argument specifies how the command-line arguments
134
-should be handled. The supported actions are:
135
-
136
-- ```store``` - Just stores the argument’s value. This is the default action.
137
-- ```storeConst``` - Stores value, specified by the const keyword argument.
138
-  (Note that the const keyword argument defaults to the rather unhelpful None.)
139
-  The 'storeConst' action is most commonly used with optional arguments, that
140
-  specify some sort of flag.
141
-- ```storeTrue``` and ```storeFalse``` - Stores values True and False
142
-  respectively. These are special cases of 'storeConst'.
143
-- ```append``` - Stores a list, and appends each argument value to the list.
144
-  This is useful to allow an option to be specified multiple times.
145
-- ```appendConst``` - Stores a list, and appends value, specified by the
146
-  const keyword argument to the list. (Note, that the const keyword argument defaults
147
-  is None.) The 'appendConst' action is typically used when multiple arguments need
148
-  to store constants to the same list.
149
-- ```count``` - Counts the number of times a keyword argument occurs. For example,
150
-  used for increasing verbosity levels.
151
-- ```help``` - Prints a complete help message for all the options in the current
152
-  parser and then exits. By default a help action is automatically added to the parser.
153
-  See ArgumentParser for details of how the output is created.
154
-- ```version``` - Prints version information and exit. Expects a `version=`
155
-  keyword argument in the addArgument() call.
156
-
157
-Details in [original action guide](http://docs.python.org/dev/library/argparse.html#action)
158
-
159
-
160
-Sub-commands
161
-============
162
-
163
-ArgumentParser.addSubparsers()
164
-
165
-Many programs split their functionality into a number of sub-commands, for
166
-example, the svn program can invoke sub-commands like `svn checkout`, `svn update`,
167
-and `svn commit`. Splitting up functionality this way can be a particularly good
168
-idea when a program performs several different functions which require different
169
-kinds of command-line arguments. `ArgumentParser` supports creation of such
170
-sub-commands with `addSubparsers()` method. The `addSubparsers()` method is
171
-normally called with no arguments and returns an special action object.
172
-This object has a single method `addParser()`, which takes a command name and
173
-any `ArgumentParser` constructor arguments, and returns an `ArgumentParser` object
174
-that can be modified as usual.
175
-
176
-Example:
177
-
178
-sub_commands.js
179
-```javascript
180
-#!/usr/bin/env node
181
-'use strict';
182
-
183
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
184
-var parser = new ArgumentParser({
185
-  version: '0.0.1',
186
-  addHelp:true,
187
-  description: 'Argparse examples: sub-commands',
188
-});
189
-
190
-var subparsers = parser.addSubparsers({
191
-  title:'subcommands',
192
-  dest:"subcommand_name"
193
-});
194
-
195
-var bar = subparsers.addParser('c1', {addHelp:true});
196
-bar.addArgument(
197
-  [ '-f', '--foo' ],
198
-  {
199
-    action: 'store',
200
-    help: 'foo3 bar3'
201
-  }
202
-);
203
-var bar = subparsers.addParser(
204
-  'c2',
205
-  {aliases:['co'], addHelp:true}
206
-);
207
-bar.addArgument(
208
-  [ '-b', '--bar' ],
209
-  {
210
-    action: 'store',
211
-    type: 'int',
212
-    help: 'foo3 bar3'
213
-  }
214
-);
215
-
216
-var args = parser.parseArgs();
217
-console.dir(args);
218
-
219
-```
220
-
221
-Details in [original sub-commands guide](http://docs.python.org/dev/library/argparse.html#sub-commands)
222
-
223
-
224
-Contributors
225
-============
226
-
227
-- [Eugene Shkuropat](https://github.com/shkuropat)
228
-- [Paul Jacobson](https://github.com/hpaulj)
229
-
230
-[others](https://github.com/nodeca/argparse/graphs/contributors)
231
-
232
-License
233
-=======
234
-
235
-Copyright (c) 2012 [Vitaly Puzrin](https://github.com/puzrin).
236
-Released under the MIT license. See
237
-[LICENSE](https://github.com/nodeca/argparse/blob/master/LICENSE) for details.
238
-
239
-

+ 0
- 36
node_modules/argparse/examples/arguments.js 查看文件

@@ -1,36 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: arguments'
9
-});
10
-parser.addArgument(
11
-  [ '-f', '--foo' ],
12
-  {
13
-    help: 'foo bar'
14
-  }
15
-);
16
-parser.addArgument(
17
-  [ '-b', '--bar' ],
18
-  {
19
-    help: 'bar foo'
20
-  }
21
-);
22
-
23
-
24
-parser.printHelp();
25
-console.log('-----------');
26
-
27
-var args;
28
-args = parser.parseArgs('-f 1 -b2'.split(' '));
29
-console.dir(args);
30
-console.log('-----------');
31
-args = parser.parseArgs('-f=3 --bar=4'.split(' '));
32
-console.dir(args);
33
-console.log('-----------');
34
-args = parser.parseArgs('--foo 5 --bar 6'.split(' '));
35
-console.dir(args);
36
-console.log('-----------');

+ 0
- 22
node_modules/argparse/examples/choice.js 查看文件

@@ -1,22 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: choice'
9
-});
10
-
11
-parser.addArgument(['foo'], {choices: 'abc'});
12
-
13
-parser.printHelp();
14
-console.log('-----------');
15
-
16
-var args;
17
-args = parser.parseArgs(['c']);
18
-console.dir(args);
19
-console.log('-----------');
20
-parser.parseArgs(['X']);
21
-console.dir(args);
22
-

+ 0
- 59
node_modules/argparse/examples/constants.js 查看文件

@@ -1,59 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: constant'
9
-});
10
-
11
-parser.addArgument(
12
-  [ '-a'],
13
-  {
14
-    action: 'storeConst',
15
-    dest:   'answer',
16
-    help:   'store constant',
17
-    constant: 42
18
-  }
19
-);
20
-parser.addArgument(
21
-  [ '--str' ],
22
-  {
23
-    action: 'appendConst',
24
-    dest:   'types',
25
-    help:   'append constant "str" to types',
26
-    constant: 'str'
27
-  }
28
-);
29
-parser.addArgument(
30
-  [ '--int' ],
31
-  {
32
-    action: 'appendConst',
33
-    dest:   'types',
34
-    help:   'append constant "int" to types',
35
-    constant: 'int'
36
-  }
37
-);
38
-
39
-parser.addArgument(
40
-  [ '--true' ],
41
-  {
42
-    action: 'storeTrue',
43
-    help: 'store true constant'
44
-  }
45
-);
46
-parser.addArgument(
47
-  [ '--false' ],
48
-  {
49
-    action: 'storeFalse',
50
-    help: 'store false constant'
51
-  }
52
-);
53
-
54
-parser.printHelp();
55
-console.log('-----------');
56
-
57
-var args;
58
-args = parser.parseArgs('-a --str --int --true'.split(' '));
59
-console.dir(args);

+ 0
- 13
node_modules/argparse/examples/help.js 查看文件

@@ -1,13 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: help',
9
-  epilog: 'help epilog',
10
-  prog: 'help_example_prog',
11
-  usage: 'Usage %(prog)s <agrs>'
12
-});
13
-parser.printHelp();

+ 0
- 33
node_modules/argparse/examples/nargs.js 查看文件

@@ -1,33 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: nargs'
9
-});
10
-parser.addArgument(
11
-  [ '-f', '--foo' ],
12
-  {
13
-    help: 'foo bar',
14
-    nargs: 1
15
-  }
16
-);
17
-parser.addArgument(
18
-  [ '-b', '--bar' ],
19
-  {
20
-    help: 'bar foo',
21
-    nargs: '*'
22
-  }
23
-);
24
-
25
-parser.printHelp();
26
-console.log('-----------');
27
-
28
-var args;
29
-args = parser.parseArgs('--foo a --bar c d'.split(' '));
30
-console.dir(args);
31
-console.log('-----------');
32
-args = parser.parseArgs('--bar b c f --foo a'.split(' '));
33
-console.dir(args);

+ 0
- 28
node_modules/argparse/examples/parents.js 查看文件

@@ -1,28 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-
6
-var args;
7
-var parent_parser = new ArgumentParser({ addHelp: false });
8
-// note addHelp:false to prevent duplication of the -h option
9
-parent_parser.addArgument(
10
-  ['--parent'],
11
-  { type: 'int', description: 'parent' }
12
-);
13
-
14
-var foo_parser = new ArgumentParser({
15
-  parents: [ parent_parser ],
16
-  description: 'child1'
17
-});
18
-foo_parser.addArgument(['foo']);
19
-args = foo_parser.parseArgs(['--parent', '2', 'XXX']);
20
-console.log(args);
21
-
22
-var bar_parser = new ArgumentParser({
23
-  parents: [ parent_parser ],
24
-  description: 'child2'
25
-});
26
-bar_parser.addArgument(['--bar']);
27
-args = bar_parser.parseArgs(['--bar', 'YYY']);
28
-console.log(args);

+ 0
- 23
node_modules/argparse/examples/prefix_chars.js 查看文件

@@ -1,23 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: prefix_chars',
9
-  prefixChars: '-+'
10
-});
11
-parser.addArgument(['+f', '++foo']);
12
-parser.addArgument(['++bar'], {action: 'storeTrue'});
13
-
14
-parser.printHelp();
15
-console.log('-----------');
16
-
17
-var args;
18
-args = parser.parseArgs(['+f', '1']);
19
-console.dir(args);
20
-args = parser.parseArgs(['++bar']);
21
-console.dir(args);
22
-args = parser.parseArgs(['++foo', '2', '++bar']);
23
-console.dir(args);

+ 0
- 49
node_modules/argparse/examples/sub_commands.js 查看文件

@@ -1,49 +0,0 @@
1
-#!/usr/bin/env node
2
-'use strict';
3
-
4
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
5
-var parser = new ArgumentParser({
6
-  version: '0.0.1',
7
-  addHelp: true,
8
-  description: 'Argparse examples: sub-commands'
9
-});
10
-
11
-var subparsers = parser.addSubparsers({
12
-  title: 'subcommands',
13
-  dest: "subcommand_name"
14
-});
15
-
16
-var bar = subparsers.addParser('c1', {addHelp: true, help: 'c1 help'});
17
-bar.addArgument(
18
-  [ '-f', '--foo' ],
19
-  {
20
-    action: 'store',
21
-    help: 'foo3 bar3'
22
-  }
23
-);
24
-var bar = subparsers.addParser(
25
-  'c2',
26
-  {aliases: ['co'], addHelp: true, help: 'c2 help'}
27
-);
28
-bar.addArgument(
29
-  [ '-b', '--bar' ],
30
-  {
31
-    action: 'store',
32
-    type: 'int',
33
-    help: 'foo3 bar3'
34
-  }
35
-);
36
-parser.printHelp();
37
-console.log('-----------');
38
-
39
-var args;
40
-args = parser.parseArgs('c1 -f 2'.split(' '));
41
-console.dir(args);
42
-console.log('-----------');
43
-args = parser.parseArgs('c2 -b 1'.split(' '));
44
-console.dir(args);
45
-console.log('-----------');
46
-args = parser.parseArgs('co -b 1'.split(' '));
47
-console.dir(args);
48
-console.log('-----------');
49
-parser.parseArgs(['c1', '-h']);

+ 0
- 35
node_modules/argparse/examples/sum.js 查看文件

@@ -1,35 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-'use strict';
4
-
5
-
6
-var ArgumentParser  = require('../lib/argparse').ArgumentParser;
7
-var parser = new ArgumentParser({ description: 'Process some integers.' });
8
-
9
-
10
-function sum(arr) {
11
-  return arr.reduce(function (a, b) {
12
-    return a + b;
13
-  }, 0);
14
-}
15
-function max(arr) {
16
-  return Math.max.apply(Math, arr);
17
-}
18
-
19
-
20
-parser.addArgument(['integers'], {
21
-  metavar:      'N',
22
-  type:         'int',
23
-  nargs:        '+',
24
-  help:         'an integer for the accumulator'
25
-});
26
-parser.addArgument(['--sum'], {
27
-  dest:         'accumulate',
28
-  action:       'storeConst',
29
-  constant:     sum,
30
-  defaultValue: max,
31
-  help:         'sum the integers (default: find the max)'
32
-});
33
-
34
-var args = parser.parseArgs('--sum 1 2 -1'.split(' '));
35
-console.log(args.accumulate(args.integers));

+ 0
- 270
node_modules/argparse/examples/testformatters.js 查看文件

@@ -1,270 +0,0 @@
1
-'use strict';
2
-
3
-var a, group, parser, helptext;
4
-
5
-var assert = require('assert');
6
-var _ = require('underscore');
7
-_.str = require('underscore.string');
8
-var print = function () {
9
-    return console.log.apply(console, arguments);
10
-  };
11
-// print = function () {};
12
-
13
-var argparse = require('argparse');
14
-
15
-print("TEST argparse.ArgumentDefaultsHelpFormatter");
16
-
17
-parser = new argparse.ArgumentParser({
18
-  debug: true,
19
-  formatterClass: argparse.ArgumentDefaultsHelpFormatter,
20
-  description: 'description'
21
-});
22
-
23
-parser.addArgument(['--foo'], {
24
-  help: 'foo help - oh and by the way, %(defaultValue)s'
25
-});
26
-
27
-parser.addArgument(['--bar'], {
28
-  action: 'storeTrue',
29
-  help: 'bar help'
30
-});
31
-
32
-parser.addArgument(['spam'], {
33
-  help: 'spam help'
34
-});
35
-
36
-parser.addArgument(['badger'], {
37
-  nargs: '?',
38
-  defaultValue: 'wooden',
39
-  help: 'badger help'
40
-});
41
-
42
-group = parser.addArgumentGroup({
43
-  title: 'title',
44
-  description: 'group description'
45
-});
46
-
47
-group.addArgument(['--baz'], {
48
-  type: 'int',
49
-  defaultValue: 42,
50
-  help: 'baz help'
51
-});
52
-
53
-helptext = parser.formatHelp();
54
-print(helptext);
55
-// test selected clips
56
-assert(helptext.match(/badger help \(default: wooden\)/));
57
-assert(helptext.match(/foo help - oh and by the way, null/));
58
-assert(helptext.match(/bar help \(default: false\)/));
59
-assert(helptext.match(/title:\n {2}group description/)); // test indent
60
-assert(helptext.match(/baz help \(default: 42\)/im));
61
-
62
-/*
63
-usage: PROG [-h] [--foo FOO] [--bar] [--baz BAZ] spam [badger]
64
-
65
-description
66
-
67
-positional arguments:
68
-  spam        spam help
69
-  badger      badger help (default: wooden)
70
-
71
-optional arguments:
72
-  -h, --help  show this help message and exit
73
-  --foo FOO   foo help - oh and by the way, null
74
-  --bar       bar help (default: false)
75
-
76
-title:
77
-  group description
78
-
79
-  --baz BAZ   baz help (default: 42)
80
-*/
81
-
82
-print("TEST argparse.RawDescriptionHelpFormatter");
83
-
84
-parser = new argparse.ArgumentParser({
85
-  debug: true,
86
-  prog: 'PROG',
87
-  formatterClass: argparse.RawDescriptionHelpFormatter,
88
-  description: 'Keep the formatting\n' +
89
-               '    exactly as it is written\n' +
90
-               '\n' +
91
-               'here\n'
92
-});
93
-
94
-a = parser.addArgument(['--foo'], {
95
-  help: '  foo help should not\n' +
96
-        '    retain this odd formatting'
97
-});
98
-
99
-parser.addArgument(['spam'], {
100
-  'help': 'spam help'
101
-});
102
-
103
-group = parser.addArgumentGroup({
104
-  title: 'title',
105
-  description: '    This text\n' +
106
-               '  should be indented\n' +
107
-               '    exactly like it is here\n'
108
-});
109
-
110
-group.addArgument(['--bar'], {
111
-  help: 'bar help'
112
-});
113
-
114
-helptext = parser.formatHelp();
115
-print(helptext);
116
-// test selected clips
117
-assert(helptext.match(parser.description));
118
-assert.equal(helptext.match(a.help), null);
119
-assert(helptext.match(/foo help should not retain this odd formatting/));
120
-
121
-/*
122
-class TestHelpRawDescription(HelpTestCase):
123
-    """Test the RawTextHelpFormatter"""
124
-....
125
-
126
-usage: PROG [-h] [--foo FOO] [--bar BAR] spam
127
-
128
-Keep the formatting
129
-    exactly as it is written
130
-
131
-here
132
-
133
-positional arguments:
134
-  spam        spam help
135
-
136
-optional arguments:
137
-  -h, --help  show this help message and exit
138
-  --foo FOO   foo help should not retain this odd formatting
139
-
140
-title:
141
-      This text
142
-    should be indented
143
-      exactly like it is here
144
-
145
-  --bar BAR   bar help
146
-*/
147
-
148
-
149
-print("TEST argparse.RawTextHelpFormatter");
150
-
151
-parser = new argparse.ArgumentParser({
152
-  debug: true,
153
-  prog: 'PROG',
154
-  formatterClass: argparse.RawTextHelpFormatter,
155
-  description: 'Keep the formatting\n' +
156
-               '    exactly as it is written\n' +
157
-               '\n' +
158
-               'here\n'
159
-});
160
-
161
-parser.addArgument(['--baz'], {
162
-  help: '    baz help should also\n' +
163
-        'appear as given here'
164
-});
165
-
166
-a = parser.addArgument(['--foo'], {
167
-  help: '  foo help should also\n' +
168
-        'appear as given here'
169
-});
170
-
171
-parser.addArgument(['spam'], {
172
-  'help': 'spam help'
173
-});
174
-
175
-group = parser.addArgumentGroup({
176
-  title: 'title',
177
-  description: '    This text\n' +
178
-               '  should be indented\n' +
179
-               '    exactly like it is here\n'
180
-});
181
-
182
-group.addArgument(['--bar'], {
183
-  help: 'bar help'
184
-});
185
-
186
-helptext = parser.formatHelp();
187
-print(helptext);
188
-// test selected clips
189
-assert(helptext.match(parser.description));
190
-assert(helptext.match(/( {14})appear as given here/gm));
191
-
192
-/*
193
-class TestHelpRawText(HelpTestCase):
194
-    """Test the RawTextHelpFormatter"""
195
-
196
-usage: PROG [-h] [--foo FOO] [--bar BAR] spam
197
-
198
-Keep the formatting
199
-    exactly as it is written
200
-
201
-here
202
-
203
-positional arguments:
204
-  spam        spam help
205
-
206
-optional arguments:
207
-  -h, --help  show this help message and exit
208
-  --foo FOO       foo help should also
209
-              appear as given here
210
-
211
-title:
212
-      This text
213
-    should be indented
214
-      exactly like it is here
215
-
216
-  --bar BAR   bar help
217
-*/
218
-
219
-
220
-print("TEST metavar as a tuple");
221
-
222
-parser = new argparse.ArgumentParser({
223
-  prog: 'PROG'
224
-});
225
-
226
-parser.addArgument(['-w'], {
227
-  help: 'w',
228
-  nargs: '+',
229
-  metavar: ['W1', 'W2']
230
-});
231
-
232
-parser.addArgument(['-x'], {
233
-  help: 'x',
234
-  nargs: '*',
235
-  metavar: ['X1', 'X2']
236
-});
237
-
238
-parser.addArgument(['-y'], {
239
-  help: 'y',
240
-  nargs: 3,
241
-  metavar: ['Y1', 'Y2', 'Y3']
242
-});
243
-
244
-parser.addArgument(['-z'], {
245
-  help: 'z',
246
-  nargs: '?',
247
-  metavar: ['Z1']
248
-});
249
-
250
-helptext = parser.formatHelp();
251
-print(helptext);
252
-var ustring = 'PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]';
253
-ustring = ustring.replace(/\[/g, '\\[').replace(/\]/g, '\\]');
254
-// print(ustring)
255
-assert(helptext.match(new RegExp(ustring)));
256
-
257
-/*
258
-class TestHelpTupleMetavar(HelpTestCase):
259
-    """Test specifying metavar as a tuple"""
260
-
261
-usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]
262
-
263
-optional arguments:
264
-  -h, --help        show this help message and exit
265
-  -w W1 [W2 ...]    w
266
-  -x [X1 [X2 ...]]  x
267
-  -y Y1 Y2 Y3       y
268
-  -z [Z1]           z
269
-*/
270
-

+ 0
- 0
node_modules/argparse/index.js 查看文件


部分文件因文件數量過多而無法顯示