diff --git a/src/WebformLibrariesManager.php b/src/WebformLibrariesManager.php
index 1e2c57bb..63c92d11 100644
--- a/src/WebformLibrariesManager.php
+++ b/src/WebformLibrariesManager.php
@@ -126,7 +126,7 @@ class WebformLibrariesManager implements WebformLibrariesManagerInterface {
       'description' => $this->t('The standard version of the CKEditor.'),
       'notes' => $this->t('Allows the Webform module to implement a basic and simpler CKEditor.'),
       'url' => Url::fromUri('http://ckeditor.com/'),
-      'version' => '4.5.11',
+      'version' => '4.6.2',
     ];
     $libraries['ckeditor_autogrow'] = [
       'title' => $this->t('CKEditor Autogrow'),
@@ -140,7 +140,7 @@ class WebformLibrariesManager implements WebformLibrariesManagerInterface {
       'description' => $this->t('Code Mirror is a versatile text editor implemented in JavaScript for the browser.'),
       'notes' => $this->t('Code Mirror is used to provide a text editor for YAML, HTML, CSS, and JavaScript configuration settings and messages.'),
       'url' => Url::fromUri('http://codemirror.net/'),
-      'version' => '5.21.0',
+      'version' => '5.24.0',
     ];
     $libraries['geocomplete'] = [
       'title' => $this->t('jQuery Geocoding and Places Autocomplete Plugin'),
@@ -149,69 +149,69 @@ class WebformLibrariesManager implements WebformLibrariesManagerInterface {
       'url' => Url::fromUri('http://ubilabs.github.io/geocomplete/'),
       'version' => '1.7.0',
     ];
-    $libraries['icheck'] = [
+    $libraries['jquery.icheck'] = [
       'title' => $this->t('iCheck'),
       'description' => $this->t('Highly customizable checkboxes and radio buttons for jQuery and Zepto.'),
       'notes' => $this->t('iCheck is used to optionally enhance checkboxes and radio buttons.'),
       'url' => Url::fromUri('http://icheck.fronteed.com/'),
       'version' => '1.0.2 ',
     ];
-    $libraries['inputmask'] = [
+    $libraries['jquery.inputmask'] = [
       'title' => $this->t('jQuery Input Mask'),
       'description' => $this->t('Input masks ensures a predefined format is entered. This can be useful for dates, numerics, phone numbers, etc...'),
       'notes' => $this->t('Input masks are used to ensure predefined and custom formats for text fields.'),
       'url' => Url::fromUri('http://robinherbots.github.io/jquery.inputmask/'),
       'version' => '3.3.3',
     ];
-    $libraries['intl-tel-input'] = [
+    $libraries['jquery.intl-tel-input'] = [
       'title' => $this->t('International Telephone Input'),
       'description' => $this->t('A jQuery plugin for entering and validating international telephone numbers. It adds a flag dropdown to any input, detects the user\'s country, displays a relevant placeholder and provides formatting/validation methods.'),
       'notes' => $this->t('International Telephone Input is used by the Telephone element'),
       'url' => Url::fromUri('https://github.com/jackocnr/intl-tel-input'),
       'version' => 'v11.0.0',
     ];
-    $libraries['rateit'] = [
+    $libraries['jquery.rateit'] = [
       'title' => $this->t('RateIt'),
       'description' => $this->t("Rating plugin for jQuery. Fast, progressive enhancement, touch support, customizable (just swap out the images, or change some CSS), unobtrusive JavaScript (using HTML5 data-* attributes), RTL support. The Rating plugin supports as many stars as you'd like, and also any step size."),
       'notes' => $this->t('RateIt is used to provide a customizable rating webform element.'),
       'version' => '1.1.1',
       'url' => Url::fromUri('https://github.com/gjunge/rateit.js'),
     ];
-    $libraries['select2'] = [
-      'title' => $this->t('Select2'),
-      'description' => $this->t('Select2 gives you a customizable select box with support for searching and tagging.'),
-      'notes' => $this->t('Select2 is used to improve the user experience for select menus.'),
-      'version' => '4.0.3',
-      'url' => Url::fromUri('https://select2.github.io/'),
-    ];
-    $libraries['signature_pad'] = [
-      'title' => $this->t('Signature Pad'),
-      'description' => $this->t("Signature Pad is a JavaScript library for drawing smooth signatures. It is HTML5 canvas based and uses variable width Bézier curve interpolation. It works in all modern desktop and mobile browsers and doesn't depend on any external libraries."),
-      'notes' => $this->t('Signature Pad is used to provide a signature element.'),
-      'url' => Url::fromUri('https://github.com/szimek/signature_pad'),
-      'version' => '1.5.3',
-    ];
-    $libraries['timepicker'] = [
+    $libraries['jquery.timepicker'] = [
       'title' => $this->t('jQuery Timepicker'),
       'description' => $this->t('A lightweight, customizable javascript timepicker plugin for jQuery, inspired by Google Calendar.'),
       'notes' => $this->t('Timepicker is used to provide a polyfill for HTML 5 time elements.'),
-      'version' => '1.11.8',
+      'version' => '1.11.10',
       'url' => Url::fromUri('https://github.com/jonthornton/jquery-timepicker'),
     ];
-    $libraries['toggles'] = [
+    $libraries['jquery.toggles'] = [
       'title' => $this->t('jQuery Toggles'),
       'description' => $this->t('Toggles is a lightweight jQuery plugin that creates easy-to-style toggle buttons.'),
       'notes' => $this->t('Toggles is used to provide a toggle element.'),
       'version' => 'v4.0.0',
       'url' => Url::fromUri('https://github.com/simontabor/jquery-toggles/'),
     ];
-    $libraries['word-and-character-counter'] = [
+    $libraries['jquery.word-and-character-counter'] = [
       'title' => $this->t('jQuery Word and character counter plug-in!'),
       'description' => $this->t('The jQuery word and character counter plug-in allows you to count characters or words'),
       'notes' => $this->t('Word or character counting, with server-side validation, is available for text fields and text areas.'),
       'version' => '1.6.0',
       'url' => Url::fromUri('https://github.com/qwertypants/jQuery-Word-and-Character-Counter-Plugin'),
     ];
+    $libraries['select2'] = [
+      'title' => $this->t('Select2'),
+      'description' => $this->t('Select2 gives you a customizable select box with support for searching and tagging.'),
+      'notes' => $this->t('Select2 is used to improve the user experience for select menus.'),
+      'version' => '4.0.3',
+      'url' => Url::fromUri('https://select2.github.io/'),
+    ];
+    $libraries['signature_pad'] = [
+      'title' => $this->t('Signature Pad'),
+      'description' => $this->t("Signature Pad is a JavaScript library for drawing smooth signatures. It is HTML5 canvas based and uses variable width Bézier curve interpolation. It works in all modern desktop and mobile browsers and doesn't depend on any external libraries."),
+      'notes' => $this->t('Signature Pad is used to provide a signature element.'),
+      'url' => Url::fromUri('https://github.com/szimek/signature_pad'),
+      'version' => '1.5.3',
+    ];
 
     // Append library info from 'webform.libraries.make.yml'.
     $info = Yaml::decode(file_get_contents(drupal_get_path('module', 'webform') . '/webform.libraries.make.yml'));
@@ -221,6 +221,10 @@ class WebformLibrariesManager implements WebformLibrariesManagerInterface {
         $libraries[$library_name]['name'] = $library_name;
         $libraries[$library_name] += $library_info;
       }
+      else {
+        throw new \Exception('Missing ' . $library_name . ' library definition.');
+      }
+
     }
     return $libraries;
   }
diff --git a/webform.libraries.make.yml b/webform.libraries.make.yml
index c912a9a0..47fb6354 100644
--- a/webform.libraries.make.yml
+++ b/webform.libraries.make.yml
@@ -2,19 +2,12 @@ core: 8.x
 api: 2
 libraries:
 
-  codemirror:
-    directory_name: codemirror
-    destination: libraries
-    download:
-      type: get
-      url: 'https://github.com/components/codemirror/archive/5.21.0.zip'
-
   ckeditor:
     directory_name: ckeditor
     destination: libraries
     download:
       type: get
-      url: 'http://download.cksource.com/CKEditor/CKEditor/CKEditor%204.5.11/ckeditor_4.5.11_standard.zip'
+      url: 'http://download.cksource.com/CKEditor/CKEditor/CKEditor%204.6.2/ckeditor_4.6.2_standard.zip'
 
   ckeditor_autogrow:
     directory_name: ckeditor_autogrow
@@ -23,6 +16,13 @@ libraries:
       type: get
       url: 'http://download.ckeditor.com/autogrow/releases/autogrow_4.6.2.zip'
 
+  codemirror:
+    directory_name: codemirror
+    destination: libraries
+    download:
+      type: get
+      url: 'https://github.com/codemirror/CodeMirror/archive/5.24.0.zip'
+
   geocomplete:
     directory_name: geocomplete
     destination: libraries
@@ -31,65 +31,66 @@ libraries:
       url: 'https://github.com/ubilabs/geocomplete.git'
       tag: '1.7.0'
 
-  icheck:
+  jquery.icheck:
     directory_name: jquery.icheck
     destination: libraries
     download:
       type: get
       url: 'https://github.com/fronteed/icheck/archive/1.0.2.zip'
 
-  inputmask:
+  jquery.inputmask:
     directory_name: jquery.inputmask
     destination: libraries
     download:
       type: get
       url: 'https://github.com/RobinHerbots/jquery.inputmask/archive/3.3.3.zip'
 
-  intl-tel-input:
+  jquery.intl-tel-input:
     directory_name: jquery.intl-tel-input
     destination: libraries
     download:
       type: get
       url: 'https://github.com/jackocnr/intl-tel-input/archive/v11.0.0.zip'
 
-  rateit:
+  jquery.rateit:
     directory_name: jquery.rateit
     destination: libraries
     download:
       type: get
       url: 'https://github.com/gjunge/rateit.js/archive/1.1.1.zip'
 
-  select2:
-    directory_name: select2
+  jquery.timepicker:
+    directory_name: jquery.timepicker
     destination: libraries
     download:
       type: get
-      url: 'https://github.com/select2/select2/archive/4.0.3.zip'
+      url: 'https://github.com/jonthornton/jquery-timepicker/archive/1.11.10.zip'
 
-  signature_pad:
-    directory_name: signature_pad
+  jquery.toggles:
+    directory_name: jquery.toggles
     destination: libraries
     download:
       type: get
-      url: 'https://github.com/szimek/signature_pad/archive/v1.5.3.zip'
+      url: 'https://github.com/simontabor/jquery-toggles/archive/v4.0.0.zip'
 
-  timepicker:
-    directory_name: jquery.timepicker
+  jquery.word-and-character-counter:
+    directory_name: jquery.word-and-character-counter
     destination: libraries
     download:
       type: get
-      url: 'https://github.com/jonthornton/jquery-timepicker/archive/1.11.8.zip'
+      url: 'https://github.com/qwertypants/jQuery-Word-and-Character-Counter-Plugin/archive/2.3.5.zip'
 
-  toggles:
-    directory_name: jquery.toggles
+  select2:
+    directory_name: select2
     destination: libraries
     download:
       type: get
-      url: 'https://github.com/simontabor/jquery-toggles/archive/v4.0.0.zip'
+      url: 'https://github.com/select2/select2/archive/4.0.3.zip'
 
-  word-and-character-counter:
-    directory_name: jquery.word-and-character-counter
+  signature_pad:
+    directory_name: signature_pad
     destination: libraries
     download:
       type: get
-      url: 'https://github.com/qwertypants/jQuery-Word-and-Character-Counter-Plugin/archive/2.3.5.zip'
+      url: 'https://github.com/szimek/signature_pad/archive/v1.5.3.zip'
+
diff --git a/webform.libraries.yml b/webform.libraries.yml
index aeed1074..67ddb68a 100644
--- a/webform.libraries.yml
+++ b/webform.libraries.yml
@@ -528,13 +528,13 @@ webform.element.video_file:
 
 ckeditor:
   remote: http://ckeditor.com/
-  version: '4.5.11'
+  version: '4.6.2'
   license:
-    name: MIT
-    url: http://codemirror.net/LICENSE
+    name: GNU-GPL-2.0-or-later
+    url: https://github.com/ckeditor/ckeditor-dev/blob/4.6.2/LICENSE.md
     gpl-compatible: true
   cdn:
-    /libraries/ckeditor/: 'https://cdn.ckeditor.com/4.5.11/standard/'
+    /libraries/ckeditor/: 'https://cdn.ckeditor.com/4.6.2/standard/'
   js:
     /libraries/ckeditor/ckeditor.js: { preprocess: false, minified: true }
 
@@ -542,8 +542,8 @@ ckeditor_autogrow:
   remote: http://ckeditor.com/addon/autogrow
   version: '4.6.2'
   license:
-    name: MIT
-    url: http://codemirror.net/LICENSE
+    name: GNU-GPL-2.0-or-later
+    url: https://github.com/ckeditor/ckeditor-dev/blob/4.6.2/LICENSE.md
     gpl-compatible: true
   cdn:
     /libraries/ckeditor_autogrow/: 'https://cdn.rawgit.com/ckeditor/ckeditor-dev/4.6.2/plugins/autogrow/'
@@ -552,14 +552,14 @@ ckeditor_autogrow:
 
 codemirror.text:
   remote: https://github.com/codemirror/codemirror
-  version: &webform_codemirror_version '5.21.0'
+  version: &webform_codemirror_version '5.24.0'
   license: &webform_codemirror_license
     name: MIT
     url: http://codemirror.net/LICENSE
     gpl-compatible: true
   cdn: &webform_codemirror_cdn
-    /libraries/codemirror/lib/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/
-    /libraries/codemirror/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.21.0/
+    /libraries/codemirror/lib/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.24.0/
+    /libraries/codemirror/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.24.0/
   css:
     theme:
       /libraries/codemirror/lib/codemirror.css: {}
@@ -745,13 +745,13 @@ jquery.select2:
 
 jquery.timepicker:
   remote: https://github.com/jonthornton/jquery-timepicker
-  version: '1.11.8'
+  version: '1.11.10'
   license:
     name: MIT
     url: http://opensource.org/licenses/mit-license.php
     gpl-compatible: true
   cdn:
-    /libraries/jquery.timepicker/: https://cdn.rawgit.com/jonthornton/jquery-timepicker/1.11.8/
+    /libraries/jquery.timepicker/: https://cdn.rawgit.com/jonthornton/jquery-timepicker/1.11.10/
   css:
     theme:
       /libraries/jquery.timepicker/jquery.timepicker.css: {}
