Issue #3020589 by markcarver, cilefen: Default to Bootstrap 3.4.0

parent db0eacba
......@@ -15,14 +15,14 @@ This base theme bridges the gap between Drupal and the [Bootstrap Framework].
- Extensive integration and template/preprocessor overrides for most of the
[Bootstrap Framework] CSS, Components and JavaScript
- Theme settings to further enhance the Drupal Bootstrap integration:
- [Breadcrumbs](https://getbootstrap.com/docs/3.3/components/#breadcrumbs)
- [Navbar](https://getbootstrap.com/docs/3.3/components/#navbar)
- [Popovers](https://getbootstrap.com/docs/3.3/javascript/#popovers)
- [Tooltips](https://getbootstrap.com/docs/3.3/javascript/#tooltips)
- [Wells](https://getbootstrap.com/docs/3.3/components/#wells) (per region)
- [Breadcrumbs](https://getbootstrap.com/docs/3.4/components/#breadcrumbs)
- [Navbar](https://getbootstrap.com/docs/3.4/components/#navbar)
- [Popovers](https://getbootstrap.com/docs/3.4/javascript/#popovers)
- [Tooltips](https://getbootstrap.com/docs/3.4/javascript/#tooltips)
- [Wells](https://getbootstrap.com/docs/3.4/components/#wells) (per region)
### Documentation
Visit the project's [official documentation site](https://drupal-bootstrap.org)
or the markdown files inside the `./docs` folder.
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
......@@ -125,11 +125,11 @@ settings[bootstrap_tooltip_container] = 'body'
; Advanced
; --------------
settings[bootstrap_cdn_provider] = 'jsdelivr'
settings[bootstrap_cdn_custom_css] = 'https://cdn.jsdelivr.net/bootstrap/3.3.7/css/bootstrap.css'
settings[bootstrap_cdn_custom_css_min] = 'https://cdn.jsdelivr.net/bootstrap/3.3.7/css/bootstrap.min.css'
settings[bootstrap_cdn_custom_js] = 'https://cdn.jsdelivr.net/bootstrap/3.3.7/js/bootstrap.js'
settings[bootstrap_cdn_custom_js_min] = 'https://cdn.jsdelivr.net/bootstrap/3.3.7/js/bootstrap.min.js'
settings[bootstrap_cdn_jsdelivr_version] = '3.3.7'
settings[bootstrap_cdn_custom_css] = 'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/css/bootstrap.css'
settings[bootstrap_cdn_custom_css_min] = 'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/css/bootstrap.min.css'
settings[bootstrap_cdn_custom_js] = 'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/js/bootstrap.js'
settings[bootstrap_cdn_custom_js_min] = 'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/js/bootstrap.min.js'
settings[bootstrap_cdn_jsdelivr_version] = '3.4.0'
settings[bootstrap_cdn_jsdelivr_theme] = 'bootstrap'
; Global
......
......@@ -64,7 +64,7 @@ you are attempting to integrate the base theme with.
**A: No, not "officially"**
The [Bootstrap Framework] itself does not officially support older Internet
Explorer [compatibility modes](https://getbootstrap.com/docs/3.3/getting-started/#support-ie-compatibility-modes).
Explorer [compatibility modes](https://getbootstrap.com/docs/3.4/getting-started/#support-ie-compatibility-modes).
To ensure you are using the latest rendering mode for IE, consider installing
the [HTML5 Tools](https://www.drupal.org/project/html5_tools) module.
......@@ -125,7 +125,7 @@ theme is updated. This makes keeping track of changes next to impossible.
Instead, you should create a custom sub-theme that isn't hosted on Drupal.org.
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[Respond.js]: https://github.com/scottjehl/Respond
---
......@@ -162,5 +162,5 @@ function hook_update_N() {
[Drush]: http://www.drush.org
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[jQuery Update]: https://www.drupal.org/project/jquery_update
......@@ -23,19 +23,19 @@ Generally speaking, you should really read the entire [Bootstrap Framework]
documentation site, if you haven't already. Here are the four basic "sections"
that site is split into:
- [Getting Started](https://getbootstrap.com/docs/3.3/getting-started) - An overview of
- [Getting Started](https://getbootstrap.com/docs/3.4/getting-started) - An overview of
the [Bootstrap Framework], how to download and use, basic templates and
examples, and more.
- [CSS](https://getbootstrap.com/docs/3.3/css/) - Global CSS settings, fundamental HTML
- [CSS](https://getbootstrap.com/docs/3.4/css/) - Global CSS settings, fundamental HTML
elements styled and enhanced with extensible classes, and an advanced grid
system.
- [Components](https://getbootstrap.com/docs/3.3/components/) - Over a dozen reusable
- [Components](https://getbootstrap.com/docs/3.4/components/) - Over a dozen reusable
components built to provide iconography, dropdowns, input groups, navigation,
alerts, and much more.
- [JavaScript](https://getbootstrap.com/docs/3.3/javascript/) - Bring the
- [JavaScript](https://getbootstrap.com/docs/3.4/javascript/) - Bring the
[Bootstrap Framework] components to life with over a dozen custom jQuery
plugins. Easily include them all, or one by one.
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[jQuery Update]: https://www.drupal.org/project/jquery_update
......@@ -47,7 +47,7 @@ documentation. For clarity, we will always attempt to use this word verbosely
in one of the following ways:
- **[Drupal Bootstrap]** refers to the Drupal base theme project.
- **[Bootstrap Framework](https://getbootstrap.com/docs/3.3/)** refers to the external
- **[Bootstrap Framework](https://getbootstrap.com/docs/3.4/)** refers to the external
front end framework.
- **[drupal_bootstrap](https://api.drupal.org/apis/drupal_bootstrap)** refers
to Drupal's bootstrapping process or phase.
......
......@@ -64,4 +64,4 @@ Please keep in mind though, this **IS NOT** a "support" channel. It's primary
use is to discuss issues and to help fix bugs with the base theme itself.
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
......@@ -58,7 +58,7 @@ set default` link next to your newly created sub-theme.
for additional documentation pertaining to the chosen Starterkit.
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[jsDelivr CDN]: https://www.jsdelivr.com
[Less]: http://lesscss.org
[Sass]: http://sass-lang.com
......@@ -144,14 +144,14 @@ base theme:
## Advanced
| Setting | Default value {.col-xs-4} |
| ------------------------------------------------ | ------------------------- |
| bootstrap_cdn_provider | `'jsdelivr'` |
| bootstrap_cdn_custom_css | `'https://cdn.jsdelivr.net/bootstrap/3.3.7/css/bootstrap.css'` |
| bootstrap_cdn_custom_css_min | `'https://cdn.jsdelivr.net/bootstrap/3.3.7/css/bootstrap.min.css'` |
| bootstrap_cdn_custom_js | `'https://cdn.jsdelivr.net/bootstrap/3.3.7/js/bootstrap.js'` |
| bootstrap_cdn_custom_js_min | `'https://cdn.jsdelivr.net/bootstrap/3.3.7/js/bootstrap.min.js'` |
| bootstrap_cdn_jsdelivr_version | `'3.3.7'` |
| bootstrap_cdn_jsdelivr_theme | `'bootstrap'` |
| bootstrap_cdn_provider | `'jsdelivr'` |
| bootstrap_cdn_custom_css | `'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/css/bootstrap.css'` |
| bootstrap_cdn_custom_css_min | `'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/css/bootstrap.min.css'` |
| bootstrap_cdn_custom_js | `'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/js/bootstrap.js'` |
| bootstrap_cdn_custom_js_min | `'https://cdn.jsdelivr.net/npm/bootstrap@3.4.0/dist/js/bootstrap.min.js'` |
| bootstrap_cdn_jsdelivr_version | `'3.4.0'` |
| bootstrap_cdn_jsdelivr_theme | `'bootstrap'` |
{.table.table-striped}
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
......@@ -86,6 +86,7 @@ module.exports = function (grunt) {
var lessPaths = [path.join(librariesPath)];
var latestVersion = [].concat(versions).pop();
var latestVariables = path.join(latestVersion, 'bootstrap', 'less', 'variables.less');
var latestMixins = path.join(latestVersion, 'bootstrap', 'less', 'mixins.less');
var themeVariables = path.join(version, library, (library === 'bootstrap' ? 'less' : theme), 'variables.less');
var backupVariables = path.join(version, 'bootstrap', 'less', 'variables.less');
var fileName = (library === 'bootstrap' ? 'overrides.min.css' : 'overrides-' + theme + '.min.css');
......@@ -107,8 +108,21 @@ module.exports = function (grunt) {
'@import "' + latestVariables + '"',
// Then, override variables with theme.
'@import "' + themeVariables + '"',
// Then, import latest bootstrap mixins.
'@import "' + latestMixins + '"',
// Then, import the variable overrides.
'@import "' + path.join('starterkits', 'less', 'less', 'variable-overrides.less') + '"',
// Finally, import the base-theme overrides.
'@import "' + path.join('starterkits', 'less', 'less', 'overrides.less') + '"'
'@import "' + path.join('starterkits', 'less', 'less', 'overrides.less') + '"',
// Add some default variables that may not be available.
'@form-group-margin-bottom: 15px',
'@screen-sm-min: @screen-sm',
'@screen-md-min: @screen-md',
'@screen-lg-min: @screen-lg',
'@container-sm: @container-tablet',
'@container-md: @container-desktop',
'@container-large-desktop: (1140px + @grid-gutter-width)',
'@container-lg: @container-large-desktop'
];
grunt.log.debug("\noptions: " + JSON.stringify(options, null, 2));
grunt.log.debug(imports.join("\n"));
......
......@@ -7,6 +7,12 @@ module.exports = function (grunt) {
var force = grunt.option('force');
var path = require('path');
var pkg = require('../package');
var mapSeries = require('promise-map-series');
var simpleJsonRequest = require('simple-json-request');
var semver = require('semver');
var getJson = function (uri) {
return simpleJsonRequest.get({url: uri});
};
// Internal variables.
var libraries = {};
......@@ -27,81 +33,117 @@ module.exports = function (grunt) {
grunt.verbose.writeln((expired ? 'EXPIRED' : 'VALID')[expired ? 'red' : 'green']);
}
var getApiV1Json = function ($package) {
var $json = {name: $package, assets: []};
var $latest = '0.0.0';
var $versions = [];
return getJson('https://data.jsdelivr.com/v1/package/npm/' + $package)
.catch(function (error) {
if (!(error instanceof Error)) {
error = new Error(error);
}
grunt.verbose.error(error);
})
.then(function ($packageJson) {
if (!$packageJson) {
$packageJson = {versions: []};
}
if ($packageJson.versions === void 0) {
$packageJson.versions = [];
}
return mapSeries($packageJson.versions, function ($version, $key) {
// Skip irrelevant versions.
if (!$version.match(/^3\.\d+\.\d+$/)) {
return Promise.resolve();
}
return getJson('https://data.jsdelivr.com/v1/package/npm/' + $package + '@' + $version + '/flat')
.then(function ($versionJson) {
// Skip empty files.
if (!$versionJson.files || !$versionJson.files.length) {
return;
}
$versions.push($version);
if (semver.compare($latest, $version) === -1) {
$latest = $version;
}
var $asset = {files: [], version: $version};
$versionJson.files.forEach(function ($file) {
// Skip old bootswatch file structure.
if ($package === 'bootswatch' && $file.name.match(/^\/2|\/bower_components/)) {
return;
}
var $matches = $file.name.match(/([^/]*)\/bootstrap(-theme)?(\.min)?\.(js|css)$/, $file['name']);
if ($matches && $matches[1] !== void 0 && $matches[4] !== void 0 && $matches[1] !== 'custom') {
$asset.files.push($file.name);
}
});
$json.assets.push($asset);
$json.lastversion = $latest;
$json.versions = $versions;
})
});
})
.then(function () {
return $json;
});
};
// Register a private sub-task. Doing this inside the main task prevents
// this private sub-task from being executed directly and also prevents it
// from showing up on the list of available tasks on --help.
grunt.registerTask('sync:api', function () {
var done = this.async();
var request = require('request');
grunt.verbose.write(pkg.urls.jsdelivr + ' ');
request(pkg.urls.jsdelivr, function (error, response, body) {
if (!error && response.statusCode == 200) {
grunt.verbose.ok();
var json;
grunt.verbose.write("\nParsing JSON response...");
try {
json = JSON.parse(body);
grunt.verbose.ok();
} catch (e) {
grunt.verbose.error();
throw grunt.util.error('Unable to parse the response value (' + e.message + ').', e);
}
grunt.verbose.write("\nExtracting versions and themes from libraries...");
libraries = {};
json.forEach(function (library) {
if (library.name === 'bootstrap' || library.name === 'bootswatch') {
library.assets.forEach(function (asset) {
if (asset.version.match(/^3.\d\.\d$/)) {
if (!libraries[library.name]) libraries[library.name] = {};
if (!libraries[library.name][asset.version]) libraries[library.name][asset.version] = {};
asset.files.forEach(function (file) {
if (!file.match(/bootstrap\.min\.css$/)) return;
if (library.name === 'bootstrap') {
libraries[library.name][asset.version]['bootstrap'] = true;
}
else {
libraries[library.name][asset.version][file.split(path.sep)[0]] = true;
}
});
}
});
}
});
grunt.verbose.ok();
// Flatten themes.
for (var library in libraries) {
grunt.verbose.header(library);
if (!libraries.hasOwnProperty(library)) continue;
var versions = Object.keys(libraries[library]);
grunt.verbose.ok('Versions: ' + versions.join(', '));
var themeCount = 0;
for (var version in libraries[library]) {
if (!libraries[library].hasOwnProperty(version)) continue;
var themes = Object.keys(libraries[library][version]).sort();
libraries[library][version] = themes;
if (themes.length > themeCount) {
themeCount = themes.length;
mapSeries(['bootstrap', 'bootswatch'], function ($package) {
return getApiV1Json($package);
}).then(function (json) {
grunt.verbose.write("\nExtracting versions and themes from libraries...");
libraries = {};
json.forEach(function (library) {
if (library.name === 'bootstrap' || library.name === 'bootswatch') {
library.assets.forEach(function (asset) {
if (asset.version.match(/^3.\d\.\d$/)) {
if (!libraries[library.name]) libraries[library.name] = {};
if (!libraries[library.name][asset.version]) libraries[library.name][asset.version] = {};
asset.files.forEach(function (file) {
if (!file.match(/bootstrap\.min\.css$/)) return;
if (library.name === 'bootstrap') {
libraries[library.name][asset.version]['bootstrap'] = true;
}
else {
libraries[library.name][asset.version][file.split(path.sep).filter(Boolean)[0]] = true;
}
});
}
});
}
});
grunt.verbose.ok();
// Flatten themes.
for (var library in libraries) {
grunt.verbose.header(library);
if (!libraries.hasOwnProperty(library)) continue;
var versions = Object.keys(libraries[library]);
grunt.verbose.ok('Versions: ' + versions.join(', '));
var themeCount = 0;
for (var version in libraries[library]) {
if (!libraries[library].hasOwnProperty(version)) continue;
var themes = Object.keys(libraries[library][version]).sort();
libraries[library][version] = themes;
if (themes.length > themeCount) {
themeCount = themes.length;
}
grunt.verbose.ok(grunt.util.pluralize(themeCount, 'Themes: 1/Themes: ' + themeCount));
}
grunt.verbose.writeln();
grunt.file.write(librariesCache, JSON.stringify(libraries, null, 2));
grunt.log.ok('Synced');
grunt.verbose.ok(grunt.util.pluralize(themeCount, 'Themes: 1/Themes: ' + themeCount));
}
else {
grunt.verbose.error();
if (error) grunt.verbose.error(error);
grunt.verbose.error('Request URL: ' + pkg.urls.jsdelivr);
grunt.verbose.error('Status Code: ' + response.statusCode);
grunt.verbose.error('Response Headers: ' + JSON.stringify(response.headers, null, 2));
grunt.verbose.error('Response:');
grunt.verbose.error(body);
grunt.fail.fatal('Unable to establish a connection. Run with --verbose to view the response received.');
}
return done(error);
grunt.verbose.writeln();
grunt.file.write(librariesCache, JSON.stringify(libraries, null, 2));
grunt.log.ok('Synced');
done();
});
});
......
......@@ -6,8 +6,8 @@
*/
define('BOOTSTRAP_VERSION_MAJOR', 3);
define('BOOTSTRAP_VERSION_MINOR', 3);
define('BOOTSTRAP_VERSION_PATCH', 5);
define('BOOTSTRAP_VERSION_MINOR', 4);
define('BOOTSTRAP_VERSION_PATCH', 0);
define('BOOTSTRAP_VERSION', BOOTSTRAP_VERSION_MAJOR . '.' . BOOTSTRAP_VERSION_MINOR . '.' . BOOTSTRAP_VERSION_PATCH);
/**
......@@ -923,6 +923,7 @@ function _bootstrap_glyphicons($version = NULL) {
$versions['3.3.5'] = $versions['3.3.4'];
$versions['3.3.6'] = $versions['3.3.5'];
$versions['3.3.7'] = $versions['3.3.6'];
$versions['3.4.0'] = $versions['3.3.7'];
}
// Return a specific versions icon set.
......
......@@ -15,8 +15,10 @@
"less-plugin-autoprefix": "^1.4.2",
"less-plugin-clean-css": "^1.5.1",
"load-grunt-config": "^0.19.2",
"promise-map-series": "^0.2.3",
"queue": "^4.4.1",
"request": "^2.60.0",
"semver": "^5.6.0",
"simple-json-request": "^0.5.2",
"sync-exec": "^0.6.1",
"time-grunt": "^1.2.1"
},
......@@ -31,9 +33,6 @@
"js": "js",
"libraries": "lib"
},
"urls": {
"jsdelivr": "https://api.jsdelivr.com/v1/bootstrap/libraries"
},
"githooks": {
"post-checkout": [
{
......
......@@ -25,5 +25,5 @@ Please refer to the @link subtheme_settings Sub-theme Settings @endlink topic.
Please refer to the @link registry Theme Registry @endlink topic.
[Drupal Bootstrap]: https://www.drupal.org/project/bootstrap
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[jsDelivr CDN]: https://www.jsdelivr.com
......@@ -59,6 +59,6 @@ the same file name, using a different extension of course).
- @link theme_settings Theme Settings @endlink
- @link registry Theme Registry @endlink
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[Bootstrap Framework Source Files]: https://github.com/twbs/bootstrap/releases
[Less]: http://lesscss.org
......@@ -54,6 +54,6 @@ name, using a different extension of course).
- @link subtheme_settings Theme Settings @endlink
- @link registry Theme Registry @endlink
[Bootstrap Framework]: https://getbootstrap.com/docs/3.3/
[Bootstrap Framework]: https://getbootstrap.com/docs/3.4/
[Bootstrap Framework Source Files]: https://github.com/twbs/bootstrap-sass
[Sass]: http://sass-lang.com
......@@ -24,7 +24,7 @@ function bootstrap_preprocess_webform_element(array &$variables) {
$wrapper_attributes = $element['#wrapper_attributes'];
}
// See https://getbootstrap.com/docs/3.3/css/#forms-controls.
// See https://getbootstrap.com/docs/3.4/css/#forms-controls.
if (isset($element['#type'])) {
if ($element['#type'] === 'radio') {
$wrapper_attributes['class'][] = 'radio';
......
......@@ -79,7 +79,7 @@ function bootstrap_form_system_theme_settings_alter(&$form, $form_state, $form_i
'#title' => t('Fluid container'),
'#default_value' => bootstrap_setting('fluid_container', $theme),
'#description' => t('Use <code>.container-fluid</code> class. See <a href="!url">Fluid container</a>', array(
'!url' => 'https://getbootstrap.com/docs/3.3/css/#grid-example-fluid',
'!url' => 'https://getbootstrap.com/docs/3.4/css/#grid-example-fluid',
)),
);
......@@ -106,7 +106,7 @@ function bootstrap_form_system_theme_settings_alter(&$form, $form_state, $form_i
'#title' => t('Colorize Buttons'),
'#default_value' => bootstrap_setting('button_colorize', $theme),
'#description' => t('Adds classes to buttons based on their text value. See: <a href="!bootstrap_url" target="_blank">Buttons</a> and <a href="!api_url" target="_blank">hook_bootstrap_colorize_text_alter()</a>', array(
'!bootstrap_url' => 'https://getbootstrap.com/docs/3.3/css/#buttons',
'!bootstrap_url' => 'https://getbootstrap.com/docs/3.4/css/#buttons',
'!api_url' => 'https://drupal-bootstrap.org/apis/hook_bootstrap_colorize_text_alter',
)),
);
......@@ -172,7 +172,7 @@ function bootstrap_form_system_theme_settings_alter(&$form, $form_state, $form_i
'#type' => 'select',
'#title' => t('Default image shape'),
'#description' => t('Add classes to an <code>&lt;img&gt;</code> element to easily style images in any project. Note: Internet Explorer 8 lacks support for rounded corners. See: <a href="!bootstrap_url" target="_blank">Image Shapes</a>', array(
'!bootstrap_url' => 'https://getbootstrap.com/docs/3.3/css/#images-shapes',
'!bootstrap_url' => 'https://getbootstrap.com/docs/3.4/css/#images-shapes',
)),
'#default_value' => bootstrap_setting('image_shape', $theme),
'#empty_option' => t('None'),
......@@ -342,7 +342,7 @@ function bootstrap_form_system_theme_settings_alter(&$form, $form_state, $form_i
'#type' => 'fieldset',
'#title' => t('Region wells'),
'#description' => t('Enable the <code>.well</code>, <code>.well-sm</code> or <code>.well-lg</code> classes for specified regions. See: documentation on <a href="!wells" target="_blank">Bootstrap Wells</a>.', array(
'!wells' => 'https://getbootstrap.com/docs/3.3/components/#wells',
'!wells' => 'https://getbootstrap.com/docs/3.4/components/#wells',
)),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
......@@ -526,7 +526,7 @@ function bootstrap_form_system_theme_settings_alter(&$form, $form_state, $form_i
'#type' => 'fieldset',
'#title' => t('Tooltips'),
'#description' => t('Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don\'t rely on images, use CSS3 for animations, and data-attributes for local title storage. See <a href="!url" target="_blank">Bootstrap tooltips</a> for more documentation.', array(
'!url' => 'https://getbootstrap.com/docs/3.3/javascript/#tooltips',
'!url' => 'https://getbootstrap.com/docs/3.4/javascript/#tooltips',
)),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
......
......@@ -351,6 +351,12 @@ decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
dependencies:
mimic-response "^1.0.0"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
......@@ -995,6 +1001,10 @@ mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
mimic-response@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.0, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
......@@ -1073,7 +1083,7 @@ on-finished@~2.3.0:
dependencies:
ee-first "1.1.1"
once@^1.3.0:
once@^1.3.0, once@^1.3.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
......@@ -1180,6 +1190,12 @@ pretty-ms@^2.1.0:
parse-ms "^1.0.0"
plur "^1.0.0"
promise-map-series@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847"
dependencies:
rsvp "^3.0.14"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
......@@ -1248,7 +1264,7 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
request@^2.60.0, request@^2.72.0:
request@^2.72.0:
version "2.83.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
dependencies:
......@@ -1302,6 +1318,10 @@ rimraf@~2.2.8:
version "2.2.8"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
rsvp@^3.0.14:
version "3.6.2"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
......@@ -1333,10 +1353,32 @@ safefs@^4.0.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
semver@^5.6.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
simple-concat@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
simple-get@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.0.3.tgz#924528ac3f9d7718ce5e9ec1b1a69c0be4d62efa"
dependencies:
decompress-response "^3.3.0"
once "^1.3.1"
simple-concat "^1.0.0"
simple-json-request@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/simple-json-request/-/simple-json-request-0.5.2.tgz#9ccb9376dbb600b150e666336197c9371c874075"
dependencies:
simple-get "^3.0.2"
sntp@2.x.x:
version "2.0.2"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment