Projet

Général

Profil

Révision 38c269d5

Ajouté par Assos Assos il y a presque 7 ans

Weekly update of contrib modules

Voir les différences:

drupal7/sites/all/modules/cas/README.txt
3 3

  
4 4
Central Authentication Services (CAS) is a commonly used Single Sign-On
5 5
protocol used by many universities and large organizations. For a brief
6
introduction, please see the Jasig website: http://www.jasig.org/cas/about
6
introduction, please see the CAS website: https://www.apereo.org/projects/cas
7 7

  
8 8
The Drupal CAS project has two modules:
9 9

  
......
33 33

  
34 34
* Download phpCAS from https://wiki.jasig.org/display/CASC/phpCAS. You will
35 35
  need version 1.3.2 or later (1.3.3 for CAS 3.0 support). The most recent
36
  release is available at http://downloads.jasig.org/cas-clients/php/current.tgz
36
  release is available at https://developer.jasig.org/cas-clients/php/current.tgz
37 37

  
38 38
* There are several locations you can install the phpCAS library.
39 39

  
......
48 48
     available at http://drupal.org/project/libraries. Then extract phpCAS so
49 49
     that sites/<site>/libraries/CAS/CAS.php exists. For example:
50 50
       $ cd sites/all/libraries
51
       $ curl http://downloads.jasig.org/cas-clients/php/current.tgz | tar xz
51
       $ curl https://developer.jasig.org/cas-clients/php/current.tgz | tar xz
52 52
       $ mv CAS-* CAS
53 53

  
54 54
* Go to Administer > Modules and enable this module.
......
129 129
creating and removing CAS usernames. The "Create CAS username" option will
130 130
assign a CAS username to each selected account that matches their Drupal name.
131 131
The "Remove CAS usernames" option will remove all CAS usernames from the
132
selected accounts.
132
selected accounts.  (Note: This will not appear if the Admin_Views module is used,
133
as it replaces the built-in People administration screen with a View)
133 134

  
134 135
API Changes Since 6.x-2.x
135 136
=========================
drupal7/sites/all/modules/cas/README_SERVER.txt
17 17

  
18 18
Configuration
19 19
=============
20
There is no configuration for the CAS server. Simply enable the module.
20
Configuration can be found at /admin/config/people/cas_server, but the module
21
will start working right away without any configuration.
21 22

  
22 23
If your Drupal site is https://site.example.com/, other CAS enabled
23 24
applications should be configured to use https://site.example.com/cas as the
24 25
CAS server.
25

  
26
Caveats & Limitations
27
=====================
28

  
29
Single Sign-Out is not currently supported.
drupal7/sites/all/modules/cas/cas.admin.inc
63 63
    '#size' => 30,
64 64
    // Hostnames can be 255 characters long.
65 65
    '#maxlength' => 255,
66
    '#description' => t('Hostname or IP Address of the CAS server.'),
66
    '#description' => t('Hostname or IP Address of the CAS server. CAS logins will not work until this hostname is entered.'),
67 67
  );
68 68

  
69 69
  $form['server']['cas_port'] = array(
......
89 89
    '#title' => t('Certificate Authority PEM Certificate'),
90 90
    '#default_value' => variable_get('cas_cert', ''),
91 91
    '#maxlength' => 255,
92
    '#description' => t('The PEM certificate of the Certificate Authority that issued the certificate of the CAS server. If omitted, the certificate authority will not be verified.'),
92
    '#description' => t('The path to the certificate (in PEM format) of the Certificate Authority that issued the SSL certificate of the CAS server. If omitted, the SSL cert of your CAS server will NOT be verified for authenticity. Most operating systems provide a standard CA cert bundle that can be provided here that would work for certificates signed by a well-known authority.'),
93 93
  );
94 94

  
95 95
  $form['login'] = array(
......
296 296
    '#description' => t('The URL users should use for changing registering.  Leave blank to use the standard Drupal page.'),
297 297
  );
298 298

  
299

  
300 299
  $form['advanced'] = array(
301 300
    '#type' => 'fieldset',
302 301
    '#title' => t('Miscellaneous & Experimental Settings'),
......
351 350
    '#description' => "<p>" . t("A file system path and filename where the CAS debug log will be written. May be either a full path or a path relative to the Drupal installation root. The directory and file must be writable by Drupal.") . "</p> <p>" . t("Leave blank to disable logging.") . "</p> <p><strong>" . t("Debugging should not be enabled on production systems.") . "</strong></p>",
352 351
  );
353 352

  
353
  $form['advanced']['cas_single_logout_session_lifetime'] = array(
354
    '#type' => 'textfield',
355
    '#title' => t('Max lifetime of session mapping data'),
356
    '#description' => t('This module stores a mapping of Drupal session IDs ' .
357
      'to CAS server session IDs to support single logout. Normally this data is ' .
358
      'cleared automatically when a user is logged out, but not always. ' .
359
      'To make sure this storage does not grow out of control, session mapping ' .
360
      'data older than the specified amount of days is cleared during cron. ' .
361
      'This should be a length of time slightly longer than the session ' .
362
      'lifetime of your Drupal site or CAS server.'),
363
    '#default_value' => variable_get('cas_single_logout_session_lifetime', 25),
364
    '#field_suffix' => t('days'),
365
    '#size' => 4,
366
    '#required' => TRUE,
367
    '#element_validate' => array('element_validate_number'),
368
  );
369

  
354 370
  return system_settings_form($form);
355 371
}
356 372

  
drupal7/sites/all/modules/cas/cas.api.php
13 13
 *
14 14
 * Modules implementing this hook may wish to alter 'name' if the CAS server
15 15
 * returns user names which contain excess information or are not directly
16
 * machine readable. This field is not the Drupal name of the user. Instead,
17
 * this is used to load a Drupal user via the mapping in the {cas_user} table.
16
 * machine readable. This name is used to lookup existing local Drupal
17
 * CAS accounts via the {cas_user} mapping table. If the user does not exist
18
 * locally, and automatic registration is enabled, this name will be also 
19
 * be as the local Drupal user account name that's created.
18 20
 *
19 21
 * The 'login' parameter controls whether the user is able to login. By
20 22
 * default this will be set to TRUE, but modules may set this flag to FALSE
drupal7/sites/all/modules/cas/cas.batch.inc
24 24

  
25 25
  if ($existing_account == TRUE){
26 26
    $uri = entity_uri('user', $existing_account);
27
    $context['results']['messages']['already_exist'][] = t('<a href="@url">%name</a>', array('@url' => url($uri['path'], $uri['options']), '%name' => $existing_account->name));;
27
    $context['results']['messages']['already_exist'][] = t('<a href="@url">%name</a>', array('@url' => url($uri['path'], $uri['options']), '%name' => format_username($existing_account)));;
28 28
    return;
29 29
  }
30 30

  
......
36 36
  }
37 37
  else {
38 38
    $uri = entity_uri('user', $account);
39
    $context['results']['messages']['newly_created'][] = t('<a href="@url">%name</a>', array('@url' => url($uri['path'], $uri['options']), '%name' => $account->name));
39
    $context['results']['messages']['newly_created'][] = t('<a href="@url">%name</a>', array('@url' => url($uri['path'], $uri['options']), '%name' => format_username($account)));
40 40
    return $account;
41 41
  }
42 42
}
drupal7/sites/all/modules/cas/cas.info
7 7
files[] = cas.test
8 8
files[] = includes/views/handlers/cas_handler_field_cas_name.inc
9 9

  
10
; Information added by Drupal.org packaging script on 2016-02-09
11
version = "7.x-1.5"
10
; Information added by Drupal.org packaging script on 2017-12-02
11
version = "7.x-1.6"
12 12
core = "7.x"
13 13
project = "cas"
14
datestamp = "1455051844"
14
datestamp = "1512242294"
15 15

  
drupal7/sites/all/modules/cas/cas.install
27 27
        'unsigned' => TRUE,
28 28
        'not null' => TRUE,
29 29
      ),
30
      'created' => array(
31
        'type' => 'int',
32
        'not null' => TRUE,
33
        'default' => 0,
34
        'description' => 'Timestamp when this record was created.',
35
      ),
30 36
    ),
31 37
    'primary key' => array('cas_session_id'),
32 38
  );
......
107 113
  variable_del('cas_uri');
108 114
  variable_del('cas_user_register');
109 115
  variable_del('cas_version');
116
  variable_del('cas_single_logout_session_lifetime');
110 117

  
111 118
  // And old (un-used) variables.
112 119
  variable_del('cas_cert_verify');
......
144 151
      $requirements['phpcas']['severity'] = REQUIREMENT_ERROR;
145 152
      $requirements['phpcas']['description'] = $t('phpCAS could not be loaded. Please <a href="@phpcas_url">download phpCAS</a> and <a href="@cas_url">configure its location</a>.', array('@phpcas_url' => $phpcas_url, '@cas_url' => url('admin/config/people/cas')));
146 153
    }
154

  
155
    $cert = variable_get('cas_cert');
156
    if (empty($cert)) {
157
      $requirements['cas_cert'] = array(
158
        'title' => $t('CAS SSL certificate bundle'),
159
        'severity' => REQUIREMENT_ERROR,
160
        'value' => $t('Not set'),
161
        'description' => $t('The CAS authentication process is not completely secure. Please <a href="@settings_url">visit the CAS settings page</a> and provide the path to the certificate authority bundle.'),
162
      );
163
    }
147 164
  }
148 165
  return $requirements;
149 166
}
150 167

  
168
/**
169
 * Implements hook_enable().
170
 */
171
function cas_enable() {
172
  drupal_set_message(t('CAS has been enabled. Please <a href="@url">configure</a> it.', array('@url' => url('admin/config/people/cas'))), 'warning');
173
}
174

  
151 175
/**
152 176
 * Creates CAS login data table for Single-Sign-Out.
153 177
 */
......
381 405
    db_add_index('cas_user', 'cas_user', array('uid'));
382 406
  }
383 407
}
408

  
409
/**
410
 * Add created column to cas_login_data table.
411
 */
412
function cas_update_7103() {
413
  db_add_field('cas_login_data', 'created', array(
414
    'type' => 'int',
415
    'not null' => TRUE,
416
    'default' => 0,
417
    'description' => 'Timestamp when this record was created.',
418
  ));
419
  $now = time();
420
  // Assume that all data was inserted today. This is obviously not true, but
421
  // it will prevent us from deleting the existing data for some time, since
422
  // the cron task will only delete data older than X days.
423
  db_update('cas_login_data')
424
    ->fields(array('created' => $now))
425
    ->execute();
426
}
427

  
428
/**
429
 * Hash all existing CAS session IDs in cas_login_data.
430
 */
431
function cas_update_7104() {
432
  $result = db_query('SELECT cas_session_id FROM {cas_login_data}');
433
  foreach ($result as $data) {
434
    db_update('cas_login_data')
435
      ->fields(array('cas_session_id' => hash('sha256', $data->cas_session_id)))
436
      ->condition('cas_session_id', $data->cas_session_id)
437
      ->execute();
438
  }
439
}
drupal7/sites/all/modules/cas/cas.module
79 79
  drupal_session_start();
80 80
  _cas_single_sign_out_save_ticket();  // We use this later for CAS 3 logoutRequests
81 81

  
82
  // Initialize phpCAS.
83
  cas_phpcas_init();
82
  // Initialize phpCAS if possible, otherwise just back out.
83
  if (cas_phpcas_init() === FALSE) {
84
    return;
85
  }
84 86

  
85 87
  // We're going to try phpCAS auth test
86 88
  if ($force_authentication) {
87
    phpCAS::forceAuthentication();
89
    try {
90
      phpCAS::forceAuthentication();
91
    }
92
    catch (CAS_AuthenticationException $e) {
93
      drupal_set_message(t('Error authenticating with CAS. Please try again or contact your website administrator if the problem persists.'), 'error');
94
      watchdog_exception('cas', $e);
95
      // We have to redirect the user somewhere else because the CAS exception
96
      // will have written error details directly to stdout, and we don't want
97
      // to show anything like that to the user.
98
      // This bring users to the homepage or to the page set in destination
99
      // param.
100
      drupal_goto('');
101
    }
88 102
  }
89 103
  else {
90 104
    $logged_in = phpCAS::checkAuthentication();
......
178 192
    $user = user_save($account, $edit);
179 193
    user_login_finalize($edit);
180 194

  
181
    drupal_set_message(t(variable_get('cas_login_message', 'Logged in via CAS as %cas_username.'), array('%cas_username' => $user->name)));
195
    drupal_set_message(t(variable_get('cas_login_message', 'Logged in via CAS as %cas_username.'), array('%cas_username' => format_username($user))));
182 196
    if (!empty($edit['persistent_login'])) {
183 197
      drupal_set_message(t('You will remain logged in on this computer even after you close your browser.'));
184 198
    }
......
252 266

  
253 267
  // Variable set
254 268
  $server_version    = (string)variable_get('cas_version', '3.0');
255
  $server_cas_server = (string)variable_get('cas_server', 'sso-cas.univ-rennes1.fr');
269
  $server_cas_server = (string)variable_get('cas_server', '');
256 270
  $server_port       = (int)variable_get('cas_port', '443');
257 271
  $server_uri        = (string)variable_get('cas_uri', '');
258 272
  $cas_cert          = (string)variable_get('cas_cert', '');
259 273
  $debug_file        = (string)variable_get('cas_debugfile', '');
274

  
275
  // Back out if there's no configured CAS server hostname. This is the
276
  // minimum required configuration to initialize phpCAS.
277
  if (empty($server_cas_server)) {
278
    watchdog('cas', 'Unable to initialize phpCAS because no CAS server hostname has been configured.', array(), WATCHDOG_ERROR);
279
    return FALSE;
280
  }
281

  
260 282
  if ($debug_file != '') {
261 283
    phpCAS::setDebug($debug_file);
262 284
  }
......
389 411
  return $items;
390 412
}
391 413

  
414
/**
415
 * Implements hook_cron().
416
 */
417
function cas_cron() {
418
  // Clear old single logout session mapping data.
419
  $max_days = (int) variable_get('cas_single_logout_session_lifetime', 25);
420
  $seconds_in_day = 86400;
421
  $seconds = $max_days * $seconds_in_day;
422
  if ($seconds > 0) {
423
    db_delete('cas_login_data')
424
      ->condition('created', time() - $seconds, '<=')
425
      ->execute();
426
  }
427
}
428

  
392 429
function cas_user_is_logged_in() {
393 430
  return user_is_logged_in() || !empty($_SESSION['phpCAS']['user']);
394 431
}
......
689 726

  
690 727
  // Mimic user_logout().
691 728
  if ($invoke_hook) {
692
    watchdog('user', 'Session closed for %name.', array('%name' => $user->name));
729
    watchdog('user', 'Session closed for %name.', array('%name' => format_username($user)));
693 730
    module_invoke_all('user_logout', $user);
694 731
  }
695 732

  
......
917 954
          '#theme' => 'item_list',
918 955
          '#items' => $items,
919 956
          '#attributes' => array('class' => array('cas-links')),
920
          '#weight' => 1,
957
          '#weight' => 101,
921 958
        );
922 959

  
923 960
        $form['links']['#weight'] = 2;
......
1082 1119
        // Log them out now.
1083 1120
        // first lets find out who we want to log off
1084 1121

  
1085

  
1086
        $record = db_query_range("SELECT cld.uid, u.name FROM {users} u JOIN {cas_login_data} cld ON u.uid = cld.uid WHERE cld.cas_session_id = :ticket", 0, 1, array(':ticket' => $cas_session_index))->fetchObject();
1122
        $hashed_ticket = hash('sha256', $cas_session_index);
1123
        $record = db_query_range("SELECT cld.uid, u.name FROM {users} u JOIN {cas_login_data} cld ON u.uid = cld.uid WHERE cld.cas_session_id = :ticket", 0, 1, array(':ticket' => $hashed_ticket))->fetchObject();
1087 1124
        if ($record) {
1088 1125
          watchdog('user', 'Session closed for %name by CAS logout request.', array('%name' => $record->name));
1089 1126
          //remove all entry for user id in cas_login_data
......
1134 1171
  // Ok lets save the CAS service ticket to DB so
1135 1172
  // we can handle CAS logoutRequests when they come
1136 1173
  if ($user->uid && $user->uid > 0 && !empty($_SESSION['cas_ticket'])) {
1137
    db_insert('cas_login_data')
1174
    $hashed_ticket = hash('sha256', $_SESSION['cas_ticket']);
1175
    db_merge('cas_login_data')
1176
      ->key(array('cas_session_id' => $hashed_ticket))
1138 1177
      ->fields(array(
1139
        'cas_session_id' => $_SESSION['cas_ticket'],
1178
        'cas_session_id' => $hashed_ticket,
1140 1179
        'uid' => $user->uid,
1141
        ))
1180
        'created' => time(),
1181
      ))
1142 1182
      ->execute();
1143 1183
    unset($_SESSION['cas_ticket']);
1144 1184
  }
......
1231 1271

  
1232 1272
  // Create the user account.
1233 1273
  $account = user_save(drupal_anonymous_user(), $edit);
1234
  watchdog("user", 'new user: %n (CAS)', array('%n' => $account->name), WATCHDOG_NOTICE, l(t("edit user"), "admin/user/edit/$account->uid"));
1274
  watchdog("user", 'new user: %n (CAS)', array('%n' => format_username($account)), WATCHDOG_NOTICE, l(t("edit user"), "user/edit/$account->uid"));
1235 1275

  
1236 1276
  if (!empty($options['invoke_cas_user_presave'])) {
1237 1277
    // Populate $edit with some basic properties.
drupal7/sites/all/modules/cas/cas.test
31 31
    // in phpCAS.
32 32
    variable_set('clean_url', TRUE);
33 33

  
34
    // Set CAS server url (will be altered).
35
    variable_set('cas_server', 'example.com');
36

  
34 37
    // Create admin user.
35 38
    $this->admin_user = $this->drupalCreateUser(array('administer users', 'administer cas'));
36 39

  
......
51 54
    // Find the most URL of the most recent phpCAS version.
52 55
    $directory = 'CAS-' . $version;
53 56
    $filename = 'CAS-' . $version . '.tgz';
54
    $url = 'http://downloads.jasig.org/cas-clients/php/' . $version . '/' . $filename;
57
    $url = 'https://developer.jasig.org/cas-clients/php/' . $version . '/' . $filename;
55 58

  
56 59
    // Avoid downloading the file dozens of times
57 60
    $simpletest_cache = $this->originalFileDirectory . '/simpletest/cas';
drupal7/sites/all/modules/cas/cas_server.admin.inc
43 43
    '#default_value' => variable_get('cas_server_whitelist_failure', t('You do not have permission to login to CAS from this service.')),
44 44
  );
45 45

  
46
  $form['single_logout'] = array(
47
    '#type' => 'fieldset',
48
    '#title' => t('Single Logout Settings'),
49
    '#description' => t('When a user logs out, this module will send a logout request (via HTTP POST request) to each service that the user authenticated with. These settings are related to that functionality.'),
50
  );
51

  
52
  $form['single_logout']['cas_server_slo_group_timeout'] = array(
53
    '#type' => 'textfield',
54
    '#title' => t('Request timeout (all requests)'),
55
    '#description' => t('If this amount of time (in seconds) has elapsed when sending all logout requests, abort any remaining requests.'),
56
    '#default_value' => variable_get('cas_server_slo_group_timeout', 15),
57
  );
58
  $form['single_logout']['cas_server_slo_individual_timeout'] = array(
59
    '#type' => 'textfield',
60
    '#title' => t('Request timeout (individual requests)'),
61
    '#description' => t('The number of seconds to allow an individual logout request to take before aborting it.'),
62
    '#default_value' => variable_get('cas_server_slo_group_timeout', 5),
63
  );
64

  
46 65
  return system_settings_form($form);
47 66
}
drupal7/sites/all/modules/cas/cas_server.info
4 4
description = "Provides protocol compliant CAS Server"
5 5
configure = admin/config/people/cas_server
6 6

  
7
; Information added by Drupal.org packaging script on 2016-02-09
8
version = "7.x-1.5"
7
; Information added by Drupal.org packaging script on 2017-12-02
8
version = "7.x-1.6"
9 9
core = "7.x"
10 10
project = "cas"
11
datestamp = "1455051844"
11
datestamp = "1512242294"
12 12

  
drupal7/sites/all/modules/cas/cas_server.install
16 16
    'fields' => array(
17 17
      'service' => array(
18 18
        'type' => 'varchar',
19
        'length' => 255,
19
        'length' => 1024,
20 20
        'not null' => TRUE,
21 21
        'default' => '',
22 22
      ),
......
53 53
function cas_server_uninstall() {
54 54
  variable_del('cas_server_service_whitelist');
55 55
  variable_del('cas_server_whitelist_failure');
56
  variable_get('cas_server_slo_individual_timeout');
57
  variable_get('cas_server_slo_group_timeout');
56 58
}
57 59

  
58 60
/**
......
104 106
    db_add_field('cas_server_tickets', 'valid', array('type' => 'int', 'not null' => TRUE, 'default' => 1, ));
105 107
  }
106 108
}
109

  
110
/**
111
 * Increases 'service' field size to 1024.
112
 */
113
function cas_server_update_7102() {
114
  db_change_field('cas_server_tickets', 'service', 'service', array(
115
    'type' => 'varchar',
116
    'length' => 1024,
117
    'not null' => TRUE,
118
    'default' => '',
119
  ));
120
}
drupal7/sites/all/modules/cas/cas_server.module
314 314
 */
315 315
function cas_server_logout() {
316 316
  // Check service against whitelist
317
  if (!_cas_server_check_service_whitelist($_GET['service'])) {
317
  if (isset($_GET['service']) && !_cas_server_check_service_whitelist($_GET['service'])) {
318 318
    return variable_get('cas_server_whitelist_failure', t('You do not have permission to login to CAS from this service.'));
319 319
  }
320 320

  
......
325 325
  // Skip triggering user logout related processes if there is not a valid user in session.
326 326
  if(user_is_logged_in()) {
327 327
    // Log the successful logout process.
328
    watchdog('user', 'Session closed for %name.', array('%name' => $user->name));
328
    watchdog('user', 'Session closed for %name.', array('%name' => format_username($user)));
329 329
    // Tell modules about the logout.
330 330
    module_invoke_all('user_logout', $user);
331 331
  }
......
350 350
   $result = db_query("SELECT service, ticket, valid FROM {cas_server_tickets} WHERE uid= :uid", array(':uid' => $account->uid));
351 351
    if ($result !== FALSE) {
352 352
      $expired_tickets = array();
353
      // Set a time limit for all logout requests. This is useful if a user has
354
      // accumulated a lot of login sessions for services that may be
355
      // unresponsive.
356
      $timelimit = time() + (int) variable_get('cas_server_slo_group_timeout', 15);
353 357
      foreach ($result as $client) {
358
        if (time() > $timelimit) {
359
          break;
360
        }
354 361
        $expired_tickets[] = $client->ticket;
355 362
        if (!$client->valid)  {
356 363
          $id = 'LR-' . user_password();
......
363 370
              'headers' => array('Content-Type' => 'application/x-www-form-urlencoded'),
364 371
              'method' =>  'POST',
365 372
              'data' => 'logoutRequest=' . urlencode($logout_request),
373
              'timeout' => (int) variable_get('cas_server_slo_individual_timeout', 5),
366 374
            )
367 375
          );
368 376
          if (@$response->error) {
drupal7/sites/all/modules/cas/tests/cas_test.info
8 8
; code duplication we use several themes defined by that module.
9 9
dependencies[] = cas_server
10 10

  
11
; Information added by Drupal.org packaging script on 2016-02-09
12
version = "7.x-1.5"
11
; Information added by Drupal.org packaging script on 2017-12-02
12
version = "7.x-1.6"
13 13
core = "7.x"
14 14
project = "cas"
15
datestamp = "1455051844"
15
datestamp = "1512242294"
16 16

  
drupal7/sites/all/themes/bootstrap/bootstrap.info
208 208
multipliers[screen-lg-min][] = 1.5x
209 209
multipliers[screen-lg-min][] = 2x
210 210

  
211
; Information added by Drupal.org packaging script on 2017-09-25
212
version = "7.x-3.15"
211
; Information added by Drupal.org packaging script on 2017-11-30
212
version = "7.x-3.16"
213 213
core = "7.x"
214 214
project = "bootstrap"
215
datestamp = "1506357848"
215
datestamp = "1512079478"
216 216

  
drupal7/sites/all/themes/bootstrap/js/misc/ajax.js
52 52
    }
53 53
    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
54 54
    this.progress.object = progressBar;
55
    $element.closest('.file-widget,.form-item').after(this.progress.element);
55
    if (!$element.closest('.file-widget,.form-item').length) {
56
      $element.before(this.progress.element);
57
    }
58
    else {
59
      $element.closest('.file-widget,.form-item').after(this.progress.element);
60
    }
56 61
  }
57 62
  else if (this.progress.type == 'throbber') {
58 63
    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><i class="glyphicon glyphicon-refresh glyphicon-spin"></i></div>');
drupal7/sites/all/themes/bootstrap/package.json
3 3
  "version": "7.3.0-dev",
4 4
  "private": true,
5 5
  "devDependencies": {
6
    "bower": "~1.3.0",
7
    "glob": "^5.0.14",
8
    "grunt": "^0.4.5",
9
    "grunt-contrib-clean": "^0.6.0",
6
    "bower": "~1.8.2",
7
    "glob": "^7.1.2",
8
    "grunt": "^1.0.1",
9
    "grunt-contrib-clean": "^1.1.0",
10 10
    "grunt-contrib-csslint": "^2.0.0",
11
    "grunt-contrib-watch": "^0.6.1",
12
    "grunt-githooks": "^0.3.1",
13
    "inquirer": "^0.9.0",
11
    "grunt-contrib-watch": "^1.0.0",
12
    "grunt-githooks": "^0.6.0",
13
    "inquirer": "^3.3.0",
14 14
    "less": "^2.5.1",
15 15
    "less-plugin-autoprefix": "^1.4.2",
16 16
    "less-plugin-clean-css": "^1.5.1",
17
    "load-grunt-config": "^0.17.2",
18
    "queue": "^3.1.0",
17
    "load-grunt-config": "^0.19.2",
18
    "queue": "^4.4.1",
19 19
    "request": "^2.60.0",
20 20
    "sync-exec": "^0.6.1",
21 21
    "time-grunt": "^1.2.1"
......
43 43
          ".githooks.js.hbs",
44 44
          "grunt/**/*"
45 45
        ],
46
        "commands": "npm install",
46
        "commands": "yarn",
47 47
        "matchAll": false
48 48
      }
49 49
    ],
......
55 55
          ".githooks.js.hbs",
56 56
          "grunt/**/*"
57 57
        ],
58
        "commands": "npm install",
58
        "commands": "yarn",
59 59
        "matchAll": false
60 60
      }
61 61
    ],
drupal7/sites/all/themes/bootstrap/templates/system/page.vars.php
32 32
    $variables['container_class'] = 'container';
33 33
  }
34 34

  
35
  $i18n = module_exists('i18n_menu');
36

  
35 37
  // Primary nav.
36 38
  $variables['primary_nav'] = FALSE;
37 39
  if ($variables['main_menu']) {
40
    // Load the tree
41
    $tree = menu_tree_all_data(variable_get('menu_main_links_source', 'main-menu'));
42

  
43
    // Localize the tree.
44
    if ($i18n) {
45
      $tree = i18n_menu_localize_tree($tree);
46
    }
47

  
38 48
    // Build links.
39
    $variables['primary_nav'] = menu_tree(variable_get('menu_main_links_source', 'main-menu'));
49
    $variables['primary_nav'] = menu_tree_output($tree);
50

  
40 51
    // Provide default theme wrapper function.
41 52
    $variables['primary_nav']['#theme_wrappers'] = array('menu_tree__primary');
42 53
  }
......
44 55
  // Secondary nav.
45 56
  $variables['secondary_nav'] = FALSE;
46 57
  if ($variables['secondary_menu']) {
58
    // Load the tree
59
    $tree = menu_tree_all_data(variable_get('menu_secondary_links_source', 'user-menu'));
60

  
61
    // Localize the tree.
62
    if ($i18n) {
63
      $tree = i18n_menu_localize_tree($tree);
64
    }
65

  
47 66
    // Build links.
48
    $variables['secondary_nav'] = menu_tree(variable_get('menu_secondary_links_source', 'user-menu'));
67
    $variables['secondary_nav'] = menu_tree_output($tree);
68

  
49 69
    // Provide default theme wrapper function.
50 70
    $variables['secondary_nav']['#theme_wrappers'] = array('menu_tree__secondary');
51 71
  }
drupal7/sites/all/themes/bootstrap/templates/system/status-messages.func.php
56 56

  
57 57
  foreach ($message_list as $type => $messages) {
58 58
    $class = (isset($status_class[$type])) ? ' alert-' . $status_class[$type] : '';
59
    $output .= "<div class=\"alert alert-block$class messages $type\">\n";
59
    $output .= "<div class=\"alert alert-block alert-dismissible$class messages $type\">\n";
60 60
    $output .= "  <a class=\"close\" data-dismiss=\"alert\" href=\"#\">&times;</a>\n";
61 61

  
62 62
    if (!empty($status_heading[$type])) {
drupal7/sites/all/themes/bootstrap/yarn.lock
1
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
# yarn lockfile v1
3

  
4

  
5
abbrev@1:
6
  version "1.1.1"
7
  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
8

  
9
ajv@^5.1.0:
10
  version "5.2.3"
11
  resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
12
  dependencies:
13
    co "^4.6.0"
14
    fast-deep-equal "^1.0.0"
15
    json-schema-traverse "^0.3.0"
16
    json-stable-stringify "^1.0.1"
17

  
18
amdefine@>=0.0.4:
19
  version "1.0.1"
20
  resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
21

  
22
ansi-escapes@^3.0.0:
23
  version "3.0.0"
24
  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
25

  
26
ansi-regex@^2.0.0:
27
  version "2.1.1"
28
  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
29

  
30
ansi-regex@^3.0.0:
31
  version "3.0.0"
32
  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
33

  
34
ansi-styles@^2.2.1:
35
  version "2.2.1"
36
  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
37

  
38
ansi-styles@^3.1.0:
39
  version "3.2.0"
40
  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
41
  dependencies:
42
    color-convert "^1.9.0"
43

  
44
argparse@^1.0.2:
45
  version "1.0.9"
46
  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
47
  dependencies:
48
    sprintf-js "~1.0.2"
49

  
50
array-differ@^1.0.0:
51
  version "1.0.0"
52
  resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
53

  
54
array-find-index@^1.0.1:
55
  version "1.0.2"
56
  resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
57

  
58
array-union@^1.0.1:
59
  version "1.0.2"
60
  resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
61
  dependencies:
62
    array-uniq "^1.0.1"
63

  
64
array-uniq@^1.0.1:
65
  version "1.0.3"
66
  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
67

  
68
arrify@^1.0.0:
69
  version "1.0.1"
70
  resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
71

  
72
asap@~2.0.3:
73
  version "2.0.6"
74
  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
75

  
76
asn1@~0.2.3:
77
  version "0.2.3"
78
  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
79

  
80
assert-plus@1.0.0, assert-plus@^1.0.0:
81
  version "1.0.0"
82
  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
83

  
84
async@^1.5.0, async@^1.5.2, async@~1.5.2:
85
  version "1.5.2"
86
  resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
87

  
88
async@~0.2.6:
89
  version "0.2.10"
90
  resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
91

  
92
asynckit@^0.4.0:
93
  version "0.4.0"
94
  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
95

  
96
autoprefixer@^6.0.0:
97
  version "6.7.7"
98
  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
99
  dependencies:
100
    browserslist "^1.7.6"
101
    caniuse-db "^1.0.30000634"
102
    normalize-range "^0.1.2"
103
    num2fraction "^1.2.2"
104
    postcss "^5.2.16"
105
    postcss-value-parser "^3.2.3"
106

  
107
aws-sign2@~0.7.0:
108
  version "0.7.0"
109
  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
110

  
111
aws4@^1.6.0:
112
  version "1.6.0"
113
  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
114

  
115
balanced-match@^1.0.0:
116
  version "1.0.0"
117
  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
118

  
119
bcrypt-pbkdf@^1.0.0:
120
  version "1.0.1"
121
  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
122
  dependencies:
123
    tweetnacl "^0.14.3"
124

  
125
body-parser@~1.14.0:
126
  version "1.14.2"
127
  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz#1015cb1fe2c443858259581db53332f8d0cf50f9"
128
  dependencies:
129
    bytes "2.2.0"
130
    content-type "~1.0.1"
131
    debug "~2.2.0"
132
    depd "~1.1.0"
133
    http-errors "~1.3.1"
134
    iconv-lite "0.4.13"
135
    on-finished "~2.3.0"
136
    qs "5.2.0"
137
    raw-body "~2.1.5"
138
    type-is "~1.6.10"
139

  
140
boom@4.x.x:
141
  version "4.3.1"
142
  resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
143
  dependencies:
144
    hoek "4.x.x"
145

  
146
boom@5.x.x:
147
  version "5.2.0"
148
  resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
149
  dependencies:
150
    hoek "4.x.x"
151

  
152
bower@~1.8.2:
153
  version "1.8.2"
154
  resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.2.tgz#adf53529c8d4af02ef24fb8d5341c1419d33e2f7"
155

  
156
brace-expansion@^1.1.7:
157
  version "1.1.8"
158
  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
159
  dependencies:
160
    balanced-match "^1.0.0"
161
    concat-map "0.0.1"
162

  
163
browserslist@^1.7.6:
164
  version "1.7.7"
165
  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
166
  dependencies:
167
    caniuse-db "^1.0.30000639"
168
    electron-to-chromium "^1.2.7"
169

  
170
builtin-modules@^1.0.0:
171
  version "1.1.1"
172
  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
173

  
174
bytes@2.2.0:
175
  version "2.2.0"
176
  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz#fd35464a403f6f9117c2de3609ecff9cae000588"
177

  
178
bytes@2.4.0:
179
  version "2.4.0"
180
  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339"
181

  
182
camelcase-keys@^2.0.0:
183
  version "2.1.0"
184
  resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
185
  dependencies:
186
    camelcase "^2.0.0"
187
    map-obj "^1.0.0"
188

  
189
camelcase@^2.0.0:
190
  version "2.1.1"
191
  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
192

  
193
caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
194
  version "1.0.30000744"
195
  resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000744.tgz#00758ff7dd5f7138d34a15608dccf71a59656ffe"
196

  
197
caseless@~0.12.0:
198
  version "0.12.0"
199
  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
200

  
201
chalk@^1.0.0, chalk@^1.1.3, chalk@~1.1.1:
202
  version "1.1.3"
203
  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
204
  dependencies:
205
    ansi-styles "^2.2.1"
206
    escape-string-regexp "^1.0.2"
207
    has-ansi "^2.0.0"
208
    strip-ansi "^3.0.0"
209
    supports-color "^2.0.0"
210

  
211
chalk@^2.0.0:
212
  version "2.1.0"
213
  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
214
  dependencies:
215
    ansi-styles "^3.1.0"
216
    escape-string-regexp "^1.0.5"
217
    supports-color "^4.0.0"
218

  
219
clean-css@^3.0.1:
220
  version "3.4.28"
221
  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff"
222
  dependencies:
223
    commander "2.8.x"
224
    source-map "0.4.x"
225

  
226
cli-cursor@^2.1.0:
227
  version "2.1.0"
228
  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
229
  dependencies:
230
    restore-cursor "^2.0.0"
231

  
232
cli-width@^2.0.0:
233
  version "2.2.0"
234
  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
235

  
236
clone@~2.1.0:
237
  version "2.1.1"
238
  resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
239

  
240
co@^4.6.0:
241
  version "4.6.0"
242
  resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
243

  
244
coffee-script@^1.10.0, coffee-script@^1.9.0:
245
  version "1.12.7"
246
  resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
247

  
248
coffee-script@~1.10.0:
249
  version "1.10.0"
250
  resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz#12938bcf9be1948fa006f92e0c4c9e81705108c0"
251

  
252
color-convert@^1.9.0:
253
  version "1.9.0"
254
  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
255
  dependencies:
256
    color-name "^1.1.1"
257

  
258
color-name@^1.1.1:
259
  version "1.1.3"
260
  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
261

  
262
colors@~1.1.2:
263
  version "1.1.2"
264
  resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
265

  
266
combined-stream@^1.0.5, combined-stream@~1.0.5:
267
  version "1.0.5"
268
  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
269
  dependencies:
270
    delayed-stream "~1.0.0"
271

  
272
commander@2.8.x:
273
  version "2.8.1"
274
  resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
275
  dependencies:
276
    graceful-readlink ">= 1.0.0"
277

  
278
concat-map@0.0.1:
279
  version "0.0.1"
280
  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
281

  
282
content-type@~1.0.1:
283
  version "1.0.4"
284
  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
285

  
286
core-util-is@1.0.2:
287
  version "1.0.2"
288
  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
289

  
290
cryptiles@3.x.x:
291
  version "3.1.2"
292
  resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
293
  dependencies:
294
    boom "5.x.x"
295

  
296
cson-parser@^1.0.6:
297
  version "1.3.5"
298
  resolved "https://registry.yarnpkg.com/cson-parser/-/cson-parser-1.3.5.tgz#7ec675e039145533bf2a6a856073f1599d9c2d24"
299
  dependencies:
300
    coffee-script "^1.10.0"
301

  
302
cson@~3.0.2:
303
  version "3.0.2"
304
  resolved "https://registry.yarnpkg.com/cson/-/cson-3.0.2.tgz#83ee9089db3c254bec1e98e498d9aacf11adcc54"
305
  dependencies:
306
    coffee-script "^1.9.0"
307
    cson-parser "^1.0.6"
308
    extract-opts "^3.0.1"
309
    requirefresh "^2.0.0"
310
    safefs "^4.0.0"
311

  
312
csslint@^1.0.0:
313
  version "1.0.5"
314
  resolved "https://registry.yarnpkg.com/csslint/-/csslint-1.0.5.tgz#19cc3eda322160fd3f7232af1cb2a360e898a2e9"
315
  dependencies:
316
    clone "~2.1.0"
317
    parserlib "~1.1.1"
318

  
319
currently-unhandled@^0.4.1:
320
  version "0.4.1"
321
  resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
322
  dependencies:
323
    array-find-index "^1.0.1"
324

  
325
dashdash@^1.12.0:
326
  version "1.14.1"
327
  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
328
  dependencies:
329
    assert-plus "^1.0.0"
330

  
331
date-time@^1.1.0:
332
  version "1.1.0"
333
  resolved "https://registry.yarnpkg.com/date-time/-/date-time-1.1.0.tgz#18876d0bda4c19fe70dd3bf4b034f281b12a40b6"
334
  dependencies:
335
    time-zone "^0.1.0"
336

  
337
dateformat@~1.0.12:
338
  version "1.0.12"
339
  resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
340
  dependencies:
341
    get-stdin "^4.0.1"
342
    meow "^3.3.0"
343

  
344
debug@~2.2.0:
345
  version "2.2.0"
346
  resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
347
  dependencies:
348
    ms "0.7.1"
349

  
350
decamelize@^1.1.2:
351
  version "1.2.0"
352
  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
353

  
354
delayed-stream@~1.0.0:
355
  version "1.0.0"
356
  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
357

  
358
depd@~1.1.0:
359
  version "1.1.1"
360
  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
361

  
362
eachr@^3.2.0:
363
  version "3.2.0"
364
  resolved "https://registry.yarnpkg.com/eachr/-/eachr-3.2.0.tgz#2c35e43ea086516f7997cf80b7aa64d55a4a4484"
365
  dependencies:
366
    editions "^1.1.1"
367
    typechecker "^4.3.0"
368

  
369
ecc-jsbn@~0.1.1:
370
  version "0.1.1"
371
  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
372
  dependencies:
373
    jsbn "~0.1.0"
374

  
375
editions@^1.1.1, editions@^1.3.3:
376
  version "1.3.3"
377
  resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.3.tgz#0907101bdda20fac3cbe334c27cbd0688dc99a5b"
378

  
379
ee-first@1.1.1:
380
  version "1.1.1"
381
  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
382

  
383
electron-to-chromium@^1.2.7:
384
  version "1.3.24"
385
  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.24.tgz#9b7b88bb05ceb9fa016a177833cc2dde388f21b6"
386

  
387
errno@^0.1.1:
388
  version "0.1.4"
389
  resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
390
  dependencies:
391
    prr "~0.0.0"
392

  
393
error-ex@^1.2.0:
394
  version "1.3.1"
395
  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
396
  dependencies:
397
    is-arrayish "^0.2.1"
398

  
399
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
400
  version "1.0.5"
401
  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
402

  
403
esprima@^2.6.0:
404
  version "2.7.3"
405
  resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
406

  
407
eventemitter2@~0.4.13:
408
  version "0.4.14"
409
  resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab"
410

  
411
exit@~0.1.1:
412
  version "0.1.2"
413
  resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
414

  
415
extend@~3.0.1:
416
  version "3.0.1"
417
  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
418

  
419
external-editor@^2.0.4:
420
  version "2.0.5"
421
  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
422
  dependencies:
423
    iconv-lite "^0.4.17"
424
    jschardet "^1.4.2"
425
    tmp "^0.0.33"
426

  
427
extract-opts@^3.0.1:
428
  version "3.3.1"
429
  resolved "https://registry.yarnpkg.com/extract-opts/-/extract-opts-3.3.1.tgz#5abbedc98c0d5202e3278727f9192d7e086c6be1"
430
  dependencies:
431
    eachr "^3.2.0"
432
    editions "^1.1.1"
433
    typechecker "^4.3.0"
434

  
435
extsprintf@1.3.0, extsprintf@^1.2.0:
436
  version "1.3.0"
437
  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
438

  
439
fast-deep-equal@^1.0.0:
440
  version "1.0.0"
441
  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
442

  
443
faye-websocket@~0.10.0:
444
  version "0.10.0"
445
  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
446
  dependencies:
447
    websocket-driver ">=0.5.1"
448

  
449
figures@^1.0.0:
450
  version "1.7.0"
451
  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
452
  dependencies:
453
    escape-string-regexp "^1.0.5"
454
    object-assign "^4.1.0"
455

  
456
figures@^2.0.0:
457
  version "2.0.0"
458
  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
459
  dependencies:
460
    escape-string-regexp "^1.0.5"
461

  
462
find-up@^1.0.0:
463
  version "1.1.2"
464
  resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
465
  dependencies:
466
    path-exists "^2.0.0"
467
    pinkie-promise "^2.0.0"
468

  
469
findup-sync@~0.3.0:
470
  version "0.3.0"
471
  resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
472
  dependencies:
473
    glob "~5.0.0"
474

  
475
forever-agent@~0.6.1:
476
  version "0.6.1"
477
  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
478

  
479
form-data@~2.3.1:
480
  version "2.3.1"
481
  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
482
  dependencies:
483
    asynckit "^0.4.0"
484
    combined-stream "^1.0.5"
485
    mime-types "^2.1.12"
486

  
487
fs.realpath@^1.0.0:
488
  version "1.0.0"
489
  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
490

  
491
gaze@^1.0.0:
492
  version "1.1.2"
493
  resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
494
  dependencies:
495
    globule "^1.0.0"
496

  
497
get-stdin@^4.0.1:
498
  version "4.0.1"
499
  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
500

  
501
getobject@~0.1.0:
502
  version "0.1.0"
503
  resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
504

  
505
getpass@^0.1.1:
506
  version "0.1.7"
507
  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
508
  dependencies:
509
    assert-plus "^1.0.0"
510

  
511
glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
512
  version "7.1.2"
513
  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
514
  dependencies:
515
    fs.realpath "^1.0.0"
516
    inflight "^1.0.4"
517
    inherits "2"
518
    minimatch "^3.0.4"
519
    once "^1.3.0"
520
    path-is-absolute "^1.0.0"
521

  
522
glob@~5.0.0, glob@~5.0.15:
523
  version "5.0.15"
524
  resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
525
  dependencies:
526
    inflight "^1.0.4"
527
    inherits "2"
528
    minimatch "2 || 3"
529
    once "^1.3.0"
530
    path-is-absolute "^1.0.0"
531

  
532
glob@~7.0.0:
533
  version "7.0.6"
534
  resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
535
  dependencies:
536
    fs.realpath "^1.0.0"
537
    inflight "^1.0.4"
538
    inherits "2"
539
    minimatch "^3.0.2"
540
    once "^1.3.0"
541
    path-is-absolute "^1.0.0"
542

  
543
globule@^1.0.0:
544
  version "1.2.0"
545
  resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
546
  dependencies:
547
    glob "~7.1.1"
548
    lodash "~4.17.4"
549
    minimatch "~3.0.2"
550

  
551
graceful-fs@^4.1.2, graceful-fs@^4.1.4:
552
  version "4.1.11"
553
  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
554

  
555
"graceful-readlink@>= 1.0.0":
556
  version "1.0.1"
557
  resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
558

  
559
grunt-cli@~1.2.0:
560
  version "1.2.0"
561
  resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8"
562
  dependencies:
563
    findup-sync "~0.3.0"
564
    grunt-known-options "~1.1.0"
565
    nopt "~3.0.6"
566
    resolve "~1.1.0"
567

  
568
grunt-contrib-clean@^1.1.0:
569
  version "1.1.0"
570
  resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz#564abf2d0378a983a15b9e3f30ee75b738c40638"
571
  dependencies:
572
    async "^1.5.2"
573
    rimraf "^2.5.1"
574

  
575
grunt-contrib-csslint@^2.0.0:
576
  version "2.0.0"
577
  resolved "https://registry.yarnpkg.com/grunt-contrib-csslint/-/grunt-contrib-csslint-2.0.0.tgz#3129d94dfe507357f23337d24ae9e9aa4b9d57df"
578
  dependencies:
579
    chalk "^1.0.0"
580
    csslint "^1.0.0"
581
    lodash "^4.8.2"
582
    strip-json-comments "^2.0.1"
583

  
584
grunt-contrib-watch@^1.0.0:
585
  version "1.0.0"
586
  resolved "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz#84a1a7a1d6abd26ed568413496c73133e990018f"
587
  dependencies:
588
    async "^1.5.0"
589
    gaze "^1.0.0"
590
    lodash "^3.10.1"
591
    tiny-lr "^0.2.1"
592

  
593
grunt-githooks@^0.6.0:
594
  version "0.6.0"
595
  resolved "https://registry.yarnpkg.com/grunt-githooks/-/grunt-githooks-0.6.0.tgz#10c6a40c537c1b6c65648c6b7edf0018a00fc3f0"
596
  dependencies:
597
    handlebars "~1.0.12"
598

  
599
grunt-known-options@~1.1.0:
600
  version "1.1.0"
601
  resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.0.tgz#a4274eeb32fa765da5a7a3b1712617ce3b144149"
602

  
603
grunt-legacy-log-utils@~1.0.0:
604
  version "1.0.0"
605
  resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz#a7b8e2d0fb35b5a50f4af986fc112749ebc96f3d"
606
  dependencies:
607
    chalk "~1.1.1"
608
    lodash "~4.3.0"
609

  
610
grunt-legacy-log@~1.0.0:
611
  version "1.0.0"
612
  resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz#fb86f1809847bc07dc47843f9ecd6cacb62df2d5"
613
  dependencies:
614
    colors "~1.1.2"
615
    grunt-legacy-log-utils "~1.0.0"
616
    hooker "~0.2.3"
617
    lodash "~3.10.1"
618
    underscore.string "~3.2.3"
619

  
620
grunt-legacy-util@~1.0.0:
621
  version "1.0.0"
622
  resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz#386aa78dc6ed50986c2b18957265b1b48abb9b86"
623
  dependencies:
624
    async "~1.5.2"
625
    exit "~0.1.1"
626
    getobject "~0.1.0"
627
    hooker "~0.2.3"
628
    lodash "~4.3.0"
629
    underscore.string "~3.2.3"
630
    which "~1.2.1"
631

  
632
grunt@^1.0.1:
633
  version "1.0.1"
634
  resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.1.tgz#e8778764e944b18f32bb0f10b9078475c9dfb56b"
635
  dependencies:
636
    coffee-script "~1.10.0"
637
    dateformat "~1.0.12"
638
    eventemitter2 "~0.4.13"
639
    exit "~0.1.1"
640
    findup-sync "~0.3.0"
641
    glob "~7.0.0"
642
    grunt-cli "~1.2.0"
643
    grunt-known-options "~1.1.0"
644
    grunt-legacy-log "~1.0.0"
645
    grunt-legacy-util "~1.0.0"
646
    iconv-lite "~0.4.13"
647
    js-yaml "~3.5.2"
648
    minimatch "~3.0.0"
649
    nopt "~3.0.6"
650
    path-is-absolute "~1.0.0"
651
    rimraf "~2.2.8"
652

  
653
handlebars@~1.0.12:
654
  version "1.0.12"
655
  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-1.0.12.tgz#18c6d3440c35e91b19b3ff582b9151ab4985d4fc"
656
  dependencies:
657
    optimist "~0.3"
658
    uglify-js "~2.3"
659

  
660
har-schema@^2.0.0:
661
  version "2.0.0"
662
  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
663

  
664
har-validator@~5.0.3:
665
  version "5.0.3"
666
  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
667
  dependencies:
668
    ajv "^5.1.0"
669
    har-schema "^2.0.0"
670

  
671
has-ansi@^2.0.0:
672
  version "2.0.0"
673
  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
674
  dependencies:
675
    ansi-regex "^2.0.0"
676

  
677
has-flag@^1.0.0:
678
  version "1.0.0"
679
  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
680

  
681
has-flag@^2.0.0:
682
  version "2.0.0"
683
  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
684

  
685
hawk@~6.0.2:
686
  version "6.0.2"
687
  resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
688
  dependencies:
689
    boom "4.x.x"
690
    cryptiles "3.x.x"
691
    hoek "4.x.x"
692
    sntp "2.x.x"
693

  
694
hoek@4.x.x:
695
  version "4.2.0"
696
  resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
697

  
698
hooker@^0.2.3, hooker@~0.2.3:
699
  version "0.2.3"
700
  resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
701

  
702
hosted-git-info@^2.1.4:
703
  version "2.5.0"
704
  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
705

  
706
http-errors@~1.3.1:
707
  version "1.3.1"
708
  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942"
709
  dependencies:
710
    inherits "~2.0.1"
711
    statuses "1"
712

  
713
http-parser-js@>=0.4.0:
714
  version "0.4.9"
715
  resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1"
716

  
717
http-signature@~1.2.0:
718
  version "1.2.0"
719
  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
720
  dependencies:
721
    assert-plus "^1.0.0"
722
    jsprim "^1.2.2"
723
    sshpk "^1.7.0"
724

  
725
iconv-lite@0.4.13:
726
  version "0.4.13"
727
  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
728

  
729
iconv-lite@^0.4.17, iconv-lite@~0.4.13:
730
  version "0.4.19"
731
  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
732

  
733
image-size@~0.5.0:
734
  version "0.5.5"
735
  resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
736

  
737
indent-string@^2.1.0:
738
  version "2.1.0"
739
  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
740
  dependencies:
741
    repeating "^2.0.0"
742

  
743
inflight@^1.0.4:
744
  version "1.0.6"
745
  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
746
  dependencies:
747
    once "^1.3.0"
748
    wrappy "1"
749

  
750
inherit@^2.2.2:
751
  version "2.2.6"
752
  resolved "https://registry.yarnpkg.com/inherit/-/inherit-2.2.6.tgz#f1614b06c8544e8128e4229c86347db73ad9788d"
753

  
754
inherits@2, inherits@~2.0.0, inherits@~2.0.1:
755
  version "2.0.3"
756
  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
757

  
758
inquirer@^3.3.0:
759
  version "3.3.0"
760
  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
761
  dependencies:
762
    ansi-escapes "^3.0.0"
763
    chalk "^2.0.0"
764
    cli-cursor "^2.1.0"
765
    cli-width "^2.0.0"
766
    external-editor "^2.0.4"
767
    figures "^2.0.0"
768
    lodash "^4.3.0"
769
    mute-stream "0.0.7"
770
    run-async "^2.2.0"
771
    rx-lite "^4.0.8"
772
    rx-lite-aggregates "^4.0.8"
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff